From 0596f47afc85809f86c2b8c205e7176c5ce8f10b Mon Sep 17 00:00:00 2001 From: kdesnos Date: Tue, 29 Oct 2024 13:12:54 +0000 Subject: [PATCH] jekyll build from Action 559ccf7174b33157646e7a1c5edac91c500722a8 --- .nojekyll | 0 about/index.html | 278 ++ assets/css/main.css | 5 + assets/css/main.css.map | 1 + assets/images/android-chrome-192x192.png | Bin 0 -> 19742 bytes assets/images/android-chrome-512x512.png | Bin 0 -> 61084 bytes assets/images/apple-touch-icon.png | Bin 0 -> 18197 bytes assets/images/browserconfig.xml | 9 + assets/images/dotgraph.svg | 67 + assets/images/favicon-16x16.png | Bin 0 -> 1136 bytes assets/images/favicon-32x32.png | Bin 0 -> 2057 bytes assets/images/favicon.ico | Bin 0 -> 15086 bytes assets/images/mstile-150x150.png | Bin 0 -> 12632 bytes assets/images/safari-pinned-tab.svg | 82 + assets/images/site.webmanifest | 19 + assets/images/tpg00.png | Bin 0 -> 81139 bytes assets/js/lunr/lunr-en.js | 69 + assets/js/lunr/lunr-gr.js | 522 ++++ assets/js/lunr/lunr-store.js | 1 + assets/js/lunr/lunr.js | 3475 ++++++++++++++++++++++ assets/js/lunr/lunr.min.js | 6 + assets/js/main.min.js | 6 + banner.js | 19 + data/gegelati-tutorial-solution.zip | Bin 0 -> 78365 bytes data/gegelati-tutorial.zip | Bin 0 -> 73050 bytes data/main-inference.cpp | 85 + data/pendulum_wrapper_solution.zip | Bin 0 -> 6032 bytes feed.xml | 1 + img/pendulum_g6_200x200.gif | Bin 0 -> 144264 bytes index.html | 791 +++++ minimal-mistakes-jekyll.gemspec | 27 + robots.txt | 1 + screenshot-layouts.png | Bin 0 -> 124853 bytes screenshot.png | Bin 0 -> 210879 bytes sitemap.xml | 18 + staticman.yml | 104 + tutos/export-visualize-import.html | 561 ++++ tutos/index.html | 286 ++ 38 files changed, 6433 insertions(+) create mode 100644 .nojekyll create mode 100644 about/index.html create mode 100644 assets/css/main.css create mode 100644 assets/css/main.css.map create mode 100644 assets/images/android-chrome-192x192.png create mode 100644 assets/images/android-chrome-512x512.png create mode 100644 assets/images/apple-touch-icon.png create mode 100644 assets/images/browserconfig.xml create mode 100644 assets/images/dotgraph.svg create mode 100644 assets/images/favicon-16x16.png create mode 100644 assets/images/favicon-32x32.png create mode 100644 assets/images/favicon.ico create mode 100644 assets/images/mstile-150x150.png create mode 100644 assets/images/safari-pinned-tab.svg create mode 100644 assets/images/site.webmanifest create mode 100644 assets/images/tpg00.png create mode 100644 assets/js/lunr/lunr-en.js create mode 100644 assets/js/lunr/lunr-gr.js create mode 100644 assets/js/lunr/lunr-store.js create mode 100644 assets/js/lunr/lunr.js create mode 100644 assets/js/lunr/lunr.min.js create mode 100644 assets/js/main.min.js create mode 100644 banner.js create mode 100644 data/gegelati-tutorial-solution.zip create mode 100644 data/gegelati-tutorial.zip create mode 100644 data/main-inference.cpp create mode 100644 data/pendulum_wrapper_solution.zip create mode 100644 feed.xml create mode 100644 img/pendulum_g6_200x200.gif create mode 100644 index.html create mode 100644 minimal-mistakes-jekyll.gemspec create mode 100644 robots.txt create mode 100644 screenshot-layouts.png create mode 100644 screenshot.png create mode 100644 sitemap.xml create mode 100644 staticman.yml create mode 100644 tutos/export-visualize-import.html create mode 100644 tutos/index.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..77ba4fd --- /dev/null +++ b/about/index.html @@ -0,0 +1,278 @@ + + + + + + + + + +About - GEGELATI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+
+ + +
+ + + + +
+ + + +
+ + + + + +
+ +
+

+ +

+ + + +
+ + +
+ +

These Github Pages contain a hands-on tutorial providing a gentle introduction to GEGEGELATI usage.

+ +

Tutorial authors:

+
    +
  • Karol Desnos
  • +
+ + +
+ +
+ + + + + + +
+ + + + +
+ + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + diff --git a/assets/css/main.css b/assets/css/main.css new file mode 100644 index 0000000..21fa742 --- /dev/null +++ b/assets/css/main.css @@ -0,0 +1,5 @@ +.author__urls.social-icons i,.author__urls.social-icons .svg-inline--fa,.page__footer-follow .social-icons i,.page__footer-follow .social-icons .svg-inline--fa{color:inherit}.ais-search-box .ais-search-box--input{background-color:#1f242c}/*! + * Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose + * Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes + * Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE) +*/.mfp-counter{font-family:Georgia,Times,serif}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#000;opacity:.8;filter:alpha(opacity=80)}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:none !important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-container:before{content:"";display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none !important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-0.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:rgba(0,0,0,0);border:0;-webkit-appearance:none;display:block;outline:none;padding:0;z-index:1046;-webkit-box-shadow:none;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:1;filter:alpha(opacity=100);padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Georgia,Times,serif}.mfp-close:hover,.mfp-close:focus{opacity:1;filter:alpha(opacity=100)}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#fff}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px}.mfp-arrow{position:absolute;opacity:1;filter:alpha(opacity=100);margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1;filter:alpha(opacity=100)}.mfp-arrow:before,.mfp-arrow:after,.mfp-arrow .mfp-b,.mfp-arrow .mfp-a{content:"";display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset rgba(0,0,0,0)}.mfp-arrow:after,.mfp-arrow .mfp-a{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before,.mfp-arrow .mfp-b{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after,.mfp-arrow-left .mfp-a{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before,.mfp-arrow-left .mfp-b{margin-left:25px;border-right:27px solid #fff}.mfp-arrow-right{right:0}.mfp-arrow-right:after,.mfp-arrow-right .mfp-a{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before,.mfp-arrow-right .mfp-b{border-left:27px solid #fff}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:"";position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-figure figcaption{margin-top:0;margin-bottom:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width: 800px)and (orientation: landscape),screen and (max-height: 300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width: 900px){.mfp-arrow{-webkit-transform:scale(0.75);transform:scale(0.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-ie7 .mfp-img{padding:0}.mfp-ie7 .mfp-bottom-bar{width:600px;left:50%;margin-left:-300px;margin-top:5px;padding-bottom:5px}.mfp-ie7 .mfp-container{padding:0}.mfp-ie7 .mfp-content{padding-top:44px}.mfp-ie7 .mfp-close{top:0;right:0;padding-top:0}button:focus,a:focus{outline:thin dotted #00adb5;outline:5px auto #00adb5;outline-offset:-2px}*{box-sizing:border-box}html{box-sizing:border-box;background-color:#252a34;font-size:16px;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}@media(min-width: 48em){html{font-size:18px}}@media(min-width: 64em){html{font-size:20px}}@media(min-width: 80em){html{font-size:22px}}body{margin:0}::-moz-selection{color:#fff;background:#000}::selection{color:#fff;background:#000}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}a{color:#8cd2d5}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;width:auto\9 ;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}label,select,button,input[type=button],input[type=reset],input[type=submit],input[type=radio],input[type=checkbox]{cursor:pointer}input[type=search]{box-sizing:border-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}html{position:relative;min-height:100%}body{margin:0;padding:0;color:#eaeaea;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;line-height:1.5}body.overflow--hidden{overflow:hidden}h1,h2,h3,h4,h5,h6{margin:2em 0 .5em;line-height:1.2;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-weight:bold}h1{margin-top:0;font-size:1.25em}h2{font-size:1.125em}h3{font-size:1em}h4{font-size:.875em}h5{font-size:.75em}h6{font-size:.6875em}small,.small{font-size:.625em}p{margin-bottom:1.3em}u,ins{text-decoration:none;border-bottom:1px solid #eaeaea}u a,ins a{color:inherit}del a{color:inherit}p,pre,blockquote,ul,ol,dl,figure,table,fieldset{orphans:3;widows:3}abbr[title],abbr[data-original-title]{text-decoration:none;cursor:help;border-bottom:1px dotted #eaeaea}blockquote{margin:2em 1em 2em 0;padding-left:1em;padding-right:1em;font-style:italic;border-left:.25em solid #00adb5}blockquote cite{font-style:italic}blockquote cite:before{content:"—";padding-right:5px}a:visited{color:#699ea0}a:hover{color:#a9dde0;outline:0}tt,code,kbd,samp,pre{font-family:Monaco,Consolas,"Lucida Console",monospace}pre{overflow-x:auto}p>code,a>code,li>code,figcaption>code,td>code{padding-top:.1rem;padding-bottom:.1rem;font-size:.8em;background:#1f242c;border-radius:4px}p>code:before,p>code:after,a>code:before,a>code:after,li>code:before,li>code:after,figcaption>code:before,figcaption>code:after,td>code:before,td>code:after{letter-spacing:-0.2em;content:" "}hr{display:block;margin:1em 0;border:0;border-top:1px solid #51555d}ul li,ol li{margin-bottom:.5em}li ul,li ol{margin-top:.5em}figure{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:start;align-items:flex-start;flex-wrap:wrap;margin:2em 0}figure img,figure iframe,figure .fluid-width-video-wrapper{margin-bottom:1em}figure img{width:100%;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}figure>a{display:block}@media(min-width: 37.5em){figure.half>a,figure.half>img{width:calc(50% - .5em)}}figure.half figcaption{width:100%}@media(min-width: 37.5em){figure.third>a,figure.third>img{width:calc(33.3333% - .5em)}}figure.third figcaption{width:100%}figcaption{margin-bottom:.5em;color:#eee;font-family:Georgia,Times,serif;font-size:.625em}figcaption a{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}figcaption a:hover{color:#a9dde0}svg:not(:root){overflow:hidden}nav ul{margin:0;padding:0}nav li{list-style:none}nav a{text-decoration:none}nav ul li,nav ol li{margin-bottom:0}nav li ul,nav li ol{margin-top:0}b,i,strong,em,blockquote,p,q,span,figure,img,h1,h2,header,input,a,tr,td,form button,input[type=submit],.btn,.highlight,.archive__item-teaser{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}form{margin:0 0 5px 0;padding:1em;background-color:#1f242c}form fieldset{margin-bottom:5px;padding:0;border-width:0}form legend{display:block;width:100%;margin-bottom:10px;*margin-left:-7px;padding:0;color:#eaeaea;border:0;white-space:normal}form p{margin-bottom:2.5px}form ul{list-style-type:none;margin:0 0 5px 0;padding:0}form br{display:none}label,input,button,select,textarea{vertical-align:baseline;*vertical-align:middle}input,button,select,textarea{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}label{display:block;margin-bottom:.25em;color:#eaeaea;cursor:pointer}label small{font-size:.625em}label input,label textarea,label select{display:block}input,textarea,select{display:inline-block;width:100%;padding:.25em;margin-bottom:.5em;color:#eaeaea;background-color:#252a34;border:#51555d;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.125)}.input-mini{width:60px}.input-small{width:90px}input[type=image],input[type=checkbox],input[type=radio]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer;border-radius:0;border:0 \9 ;box-shadow:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*width:13px;*height:13px}input[type=image]{border:0}input[type=file]{width:auto;padding:initial;line-height:initial;border:initial;background-color:rgba(0,0,0,0);background-color:initial;box-shadow:none}input[type=button],input[type=reset],input[type=submit]{width:auto;height:auto;cursor:pointer;*overflow:visible}select,input[type=file]{*margin-top:4px}select{width:auto;background-color:#fff}select[multiple],select[size]{height:auto}textarea{resize:vertical;height:auto;overflow:auto;vertical-align:top}input[type=hidden]{display:none}.form{position:relative}.radio,.checkbox{padding-left:18px;font-weight:normal}.radio input[type=radio],.checkbox input[type=checkbox]{float:left;margin-left:-18px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{opacity:.5;cursor:not-allowed}input:focus,textarea:focus{border-color:#00adb5;outline:0;outline:thin dotted \9 ;box-shadow:inset 0 1px 3px rgba(234,234,234,.06),0 0 5px rgba(0,173,181,.7)}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus,select:focus{box-shadow:none}.help-block,.help-inline{color:#eee}.help-block{display:block;margin-bottom:1em;line-height:1em}.help-inline{display:inline-block;vertical-align:middle;padding-left:5px}.form-group{margin-bottom:5px;padding:0;border-width:0}.form-inline input,.form-inline textarea,.form-inline select{display:inline-block;margin-bottom:0}.form-inline label{display:inline-block}.form-inline .radio,.form-inline .checkbox,.form-inline .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:left;margin-left:0;margin-right:3px}.form-search input,.form-search textarea,.form-search select{display:inline-block;margin-bottom:0}.form-search .search-query{padding-left:14px;padding-right:14px;margin-bottom:0;border-radius:14px}.form-search label{display:inline-block}.form-search .radio,.form-search .checkbox,.form-inline .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type=radio],.form-search .checkbox input[type=checkbox]{float:left;margin-left:0;margin-right:3px}.form--loading:before{content:""}.form--loading .form__spinner{display:block}.form:before{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(255,255,255,.7);z-index:10}.form__spinner{display:none;position:absolute;top:50%;left:50%;z-index:11}table{display:block;margin-bottom:1em;width:100%;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em;border-collapse:collapse;overflow-x:auto}table+table{margin-top:1em}thead{background-color:#51555d;border-bottom:2px solid #3d4046}th{padding:.5em;font-weight:bold;text-align:left}td{padding:.5em;border-bottom:1px solid #3d4046}tr,td,th{vertical-align:middle}@-webkit-keyframes intro{0%{opacity:0}100%{opacity:1}}@keyframes intro{0%{opacity:0}100%{opacity:1}}.btn{display:inline-block;margin-bottom:.25em;padding:.5em 1em;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em;font-weight:bold;text-align:center;text-decoration:none;border-width:0;border-radius:4px;cursor:pointer}.btn .icon{margin-right:.5em}.btn .icon+.hidden{margin-left:-0.5em}.btn--primary{background-color:#00adb5;color:#fff}.btn--primary:visited{background-color:#00adb5;color:#fff}.btn--primary:hover{background-color:#008a91;color:#fff}.btn--inverse{background-color:#fff;color:#3d4144;border:1px solid #51555d}.btn--inverse:visited{background-color:#fff;color:#3d4144}.btn--inverse:hover{background-color:#ccc;color:#3d4144}.btn--light-outline{background-color:rgba(0,0,0,0);color:#fff;border:1px solid #fff}.btn--light-outline:visited{background-color:rgba(0,0,0,0);color:#fff}.btn--light-outline:hover{background-color:rgba(0,0,0,.2);color:#fff}.btn--success{background-color:#3fa63f;color:#fff}.btn--success:visited{background-color:#3fa63f;color:#fff}.btn--success:hover{background-color:#328532;color:#fff}.btn--warning{background-color:#d67f05;color:#fff}.btn--warning:visited{background-color:#d67f05;color:#fff}.btn--warning:hover{background-color:#ab6604;color:#fff}.btn--danger{background-color:#ee5f5b;color:#fff}.btn--danger:visited{background-color:#ee5f5b;color:#fff}.btn--danger:hover{background-color:#be4c49;color:#fff}.btn--info{background-color:#3b9cba;color:#fff}.btn--info:visited{background-color:#3b9cba;color:#fff}.btn--info:hover{background-color:#2f7d95;color:#fff}.btn--facebook{background-color:#3b5998;color:#fff}.btn--facebook:visited{background-color:#3b5998;color:#fff}.btn--facebook:hover{background-color:#2f477a;color:#fff}.btn--twitter{background-color:#55acee;color:#fff}.btn--twitter:visited{background-color:#55acee;color:#fff}.btn--twitter:hover{background-color:#448abe;color:#fff}.btn--linkedin{background-color:#007bb6;color:#fff}.btn--linkedin:visited{background-color:#007bb6;color:#fff}.btn--linkedin:hover{background-color:#006292;color:#fff}.btn--block{display:block;width:100%}.btn--block+.btn--block{margin-top:.25em}.btn--disabled{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);box-shadow:none;opacity:.65}.btn--x-large{font-size:1em}.btn--large{font-size:.75em}.btn--small{font-size:.563em}.notice{margin:2em 0 !important;padding:1em;color:#eaeaea;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em !important;text-indent:initial;background-color:#434851;border-radius:4px;box-shadow:0 1px 1px rgba(189,193,196,.25)}.notice h4{margin-top:0 !important;margin-bottom:.75em;line-height:inherit}.page__content .notice h4{margin-bottom:0;font-size:1em}.notice p:last-child{margin-bottom:0 !important}.notice h4+p{margin-top:0;padding-top:0}.notice a{color:#aaaeb0}.notice a:hover{color:#5f6162}.notice code{background-color:#343942}.notice pre code{background-color:inherit}.notice ul:last-child{margin-bottom:0}.notice--primary{margin:2em 0 !important;padding:1em;color:#eaeaea;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em !important;text-indent:initial;background-color:#1e444e;border-radius:4px;box-shadow:0 1px 1px rgba(0,173,181,.25)}.notice--primary h4{margin-top:0 !important;margin-bottom:.75em;line-height:inherit}.page__content .notice--primary h4{margin-bottom:0;font-size:1em}.notice--primary p:last-child{margin-bottom:0 !important}.notice--primary h4+p{margin-top:0;padding-top:0}.notice--primary a{color:#009ca3}.notice--primary a:hover{color:#00575b}.notice--primary code{background-color:#213741}.notice--primary pre code{background-color:inherit}.notice--primary ul:last-child{margin-bottom:0}.notice--info{margin:2em 0 !important;padding:1em;color:#eaeaea;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em !important;text-indent:initial;background-color:#29414f;border-radius:4px;box-shadow:0 1px 1px rgba(59,156,186,.25)}.notice--info h4{margin-top:0 !important;margin-bottom:.75em;line-height:inherit}.page__content .notice--info h4{margin-bottom:0;font-size:1em}.notice--info p:last-child{margin-bottom:0 !important}.notice--info h4+p{margin-top:0;padding-top:0}.notice--info a{color:#358ca7}.notice--info a:hover{color:#1e4e5d}.notice--info code{background-color:#273541}.notice--info pre code{background-color:inherit}.notice--info ul:last-child{margin-bottom:0}.notice--warning{margin:2em 0 !important;padding:1em;color:#eaeaea;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em !important;text-indent:initial;background-color:#483b2b;border-radius:4px;box-shadow:0 1px 1px rgba(214,127,5,.25)}.notice--warning h4{margin-top:0 !important;margin-bottom:.75em;line-height:inherit}.page__content .notice--warning h4{margin-bottom:0;font-size:1em}.notice--warning p:last-child{margin-bottom:0 !important}.notice--warning h4+p{margin-top:0;padding-top:0}.notice--warning a{color:#c17205}.notice--warning a:hover{color:#6b4003}.notice--warning code{background-color:#37332f}.notice--warning pre code{background-color:inherit}.notice--warning ul:last-child{margin-bottom:0}.notice--success{margin:2em 0 !important;padding:1em;color:#eaeaea;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em !important;text-indent:initial;background-color:#2a4336;border-radius:4px;box-shadow:0 1px 1px rgba(63,166,63,.25)}.notice--success h4{margin-top:0 !important;margin-bottom:.75em;line-height:inherit}.page__content .notice--success h4{margin-bottom:0;font-size:1em}.notice--success p:last-child{margin-bottom:0 !important}.notice--success h4+p{margin-top:0;padding-top:0}.notice--success a{color:#399539}.notice--success a:hover{color:#205320}.notice--success code{background-color:#283635}.notice--success pre code{background-color:inherit}.notice--success ul:last-child{margin-bottom:0}.notice--danger{margin:2em 0 !important;padding:1em;color:#eaeaea;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em !important;text-indent:initial;background-color:#4d353c;border-radius:4px;box-shadow:0 1px 1px rgba(238,95,91,.25)}.notice--danger h4{margin-top:0 !important;margin-bottom:.75em;line-height:inherit}.page__content .notice--danger h4{margin-bottom:0;font-size:1em}.notice--danger p:last-child{margin-bottom:0 !important}.notice--danger h4+p{margin-top:0;padding-top:0}.notice--danger a{color:#d65652}.notice--danger a:hover{color:#77302e}.notice--danger code{background-color:#392f38}.notice--danger pre code{background-color:inherit}.notice--danger ul:last-child{margin-bottom:0}.masthead{position:relative;border-bottom:1px solid #51555d;-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.15s;animation-delay:.15s;z-index:20}.masthead__inner-wrap{clear:both;margin-left:auto;margin-right:auto;padding:1em;max-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.masthead__inner-wrap::after{clear:both;content:"";display:table}@media(min-width: 80em){.masthead__inner-wrap{max-width:1280px}}.masthead__inner-wrap nav{z-index:10}.masthead__inner-wrap a{text-decoration:none}.site-logo img{max-height:2rem}.site-title{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:center;align-self:center;font-weight:bold}.site-subtitle{display:block;font-size:.5em}.masthead__menu{float:left;margin-left:0;margin-right:0;width:100%;clear:both}.masthead__menu .site-nav{margin-left:0}@media(min-width: 37.5em){.masthead__menu .site-nav{float:right}}.masthead__menu ul{margin:0;padding:0;clear:both;list-style-type:none}.masthead__menu-item{display:block;list-style-type:none;white-space:nowrap}.masthead__menu-item--lg{padding-right:2em;font-weight:700}.breadcrumbs{clear:both;margin:0 auto;max-width:100%;padding-left:1em;padding-right:1em;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.3s;animation-delay:.3s}.breadcrumbs::after{clear:both;content:"";display:table}@media(min-width: 80em){.breadcrumbs{max-width:1280px}}.breadcrumbs ol{padding:0;list-style:none;font-size:.625em}@media(min-width: 64em){.breadcrumbs ol{float:right;width:calc(100% - 200px)}}@media(min-width: 80em){.breadcrumbs ol{width:calc(100% - 300px)}}.breadcrumbs li{display:inline}.breadcrumbs .current{font-weight:bold}.pagination{clear:both;float:left;margin-top:1em;padding-top:1em;width:100%}.pagination::after{clear:both;content:"";display:table}.pagination ul{margin:0;padding:0;list-style-type:none;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.pagination li{display:block;float:left;margin-left:-1px}.pagination li a{display:block;margin-bottom:.25em;padding:.5em 1em;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:14px;font-weight:bold;line-height:1.5;text-align:center;text-decoration:none;color:#eee;border:1px solid #3d4046;border-radius:0}.pagination li a:hover{color:#a9dde0}.pagination li a.current,.pagination li a.current.disabled{color:#fff;background:#00adb5}.pagination li a.disabled{color:rgba(238,238,238,.5);pointer-events:none;cursor:not-allowed}.pagination li:first-child{margin-left:0}.pagination li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination--pager{display:block;padding:1em 2em;float:left;width:50%;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;font-weight:bold;text-align:center;text-decoration:none;color:#eee;border:1px solid #3d4046;border-radius:4px}.pagination--pager:hover{background-color:#eee;color:#3d4144}.pagination--pager:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.pagination--pager:last-child{margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.pagination--pager.disabled{color:rgba(238,238,238,.5);pointer-events:none;cursor:not-allowed}.page__content+.pagination,.page__meta+.pagination,.comment__date+.pagination,.page__share+.pagination,.page__comments+.pagination{margin-top:2em;padding-top:2em;border-top:1px solid #51555d}.greedy-nav{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:2em;background:#252a34}.greedy-nav a{display:block;margin:0 1rem;color:#eaeaea;text-decoration:none;-webkit-transition:none;transition:none}.greedy-nav a:hover{color:#bbb}.greedy-nav a.site-logo{margin-left:0;margin-right:.5rem}.greedy-nav a.site-title{margin-left:0}.greedy-nav img{-webkit-transition:none;transition:none}.greedy-nav__toggle{-ms-flex-item-align:center;align-self:center;height:2rem;border:0;outline:none;background-color:rgba(0,0,0,0);cursor:pointer}.greedy-nav .visible-links{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.greedy-nav .visible-links li{-webkit-box-flex:0;-ms-flex:none;flex:none}.greedy-nav .visible-links a{position:relative}.greedy-nav .visible-links a:before{content:"";position:absolute;left:0;bottom:0;height:4px;background:#00adb5;width:100%;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-webkit-transform:scaleX(0) translate3d(0, 0, 0);transform:scaleX(0) translate3d(0, 0, 0)}.greedy-nav .visible-links a:hover:before{-webkit-transform:scaleX(1);-ms-transform:scaleX(1);transform:scaleX(1)}.greedy-nav .hidden-links{position:absolute;top:100%;right:0;margin-top:15px;padding:5px;border:1px solid #51555d;border-radius:4px;background:#252a34;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.greedy-nav .hidden-links.hidden{display:none}.greedy-nav .hidden-links a{margin:0;padding:10px 20px;font-size:.75em}.greedy-nav .hidden-links a:hover{color:#bbb;background:#1a1d24}.greedy-nav .hidden-links:before{content:"";position:absolute;top:-11px;right:10px;width:0;border-style:solid;border-width:0 10px 10px;border-color:#51555d rgba(0,0,0,0);display:block;z-index:0}.greedy-nav .hidden-links:after{content:"";position:absolute;top:-10px;right:10px;width:0;border-style:solid;border-width:0 10px 10px;border-color:#252a34 rgba(0,0,0,0);display:block;z-index:1}.greedy-nav .hidden-links li{display:block;border-bottom:1px solid #51555d}.greedy-nav .hidden-links li:last-child{border-bottom:none}.no-js .greedy-nav .visible-links{-ms-flex-wrap:wrap;flex-wrap:wrap;overflow:visible}.nav__list{margin-bottom:1.5em}.nav__list input[type=checkbox],.nav__list label{display:none}@media(max-width: 63.9375em){.nav__list label{position:relative;display:inline-block;padding:.5em 2.5em .5em 1em;color:#7a8288;font-size:.625em;font-weight:bold;border:1px solid #bdc1c4;border-radius:4px;z-index:20;-webkit-transition:.2s ease-out;transition:.2s ease-out;cursor:pointer}.nav__list label:before,.nav__list label:after{content:"";position:absolute;right:1em;top:1.25em;width:.75em;height:.125em;line-height:1;background-color:#7a8288;-webkit-transition:.2s ease-out;transition:.2s ease-out}.nav__list label:after{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.nav__list label:hover{color:#fff;border-color:#7a8288;background-color:#333}.nav__list label:hover:before,.nav__list label:hover:after{background-color:#fff}.nav__list input:checked+label{color:#fff;background-color:#333}.nav__list input:checked+label:before,.nav__list input:checked+label:after{background-color:#fff}.nav__list label:hover:after{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.nav__list input:checked+label:hover:after{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}.nav__list ul{margin-bottom:1em}.nav__list a{display:block;padding:.25em 0}}@media(max-width: 63.9375em)and (min-width: 64em){.nav__list a{padding-top:.125em;padding-bottom:.125em}}@media(max-width: 63.9375em){.nav__list a:hover{text-decoration:underline}}.nav__list .nav__items{margin:0;font-size:1.25rem}.nav__list .nav__items a{color:inherit}.nav__list .nav__items .active{margin-left:-0.5em;padding-left:.5em;padding-right:.5em;font-weight:bold}@media(max-width: 63.9375em){.nav__list .nav__items{position:relative;max-height:0;opacity:0%;overflow:hidden;z-index:10;-webkit-transition:.3s ease-in-out;transition:.3s ease-in-out;-webkit-transform:translate(0, 10%);-ms-transform:translate(0, 10%);transform:translate(0, 10%)}}@media(max-width: 63.9375em){.nav__list input:checked~.nav__items{-webkit-transition:.5s ease-in-out;transition:.5s ease-in-out;max-height:9999px;overflow:visible;opacity:1;margin-top:1em;-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}}.nav__title{margin:0;padding:.5rem .75rem;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;font-weight:bold}.nav__sub-title{display:block;margin:.5rem 0;padding:.25rem 0;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em;font-weight:bold;text-transform:uppercase;border-bottom:1px solid #51555d}.toc{font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;color:#7a8288;background-color:#252a34;border:1px solid #51555d;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.125);box-shadow:0 1px 1px rgba(0,0,0,.125)}.toc .nav__title{color:#fff;font-size:.625em;background:#00adb5;border-top-left-radius:4px;border-top-right-radius:4px}.toc .active a{background-color:#cceff0;color:#3d4144}.toc__menu{margin:0;padding:0;width:100%;list-style:none;font-size:.625em}@media(min-width: 64em){.toc__menu{font-size:.563em}}.toc__menu a{display:block;padding:.25rem .75rem;color:#eee;font-weight:bold;line-height:1.5;border-bottom:1px solid #51555d}.toc__menu a:hover{color:#eaeaea}.toc__menu li ul>li a{padding-left:1.25rem;font-weight:normal}.toc__menu li ul li ul>li a{padding-left:1.75rem}.toc__menu li ul li ul li ul>li a{padding-left:2.25rem}.toc__menu li ul li ul li ul li ul>li a{padding-left:2.75rem}.toc__menu li ul li ul li ul li ul li ul>li a{padding-left:3.25rem}.page__footer{clear:both;float:left;margin-left:0;margin-right:0;width:100%;margin-top:3em;color:#eee;-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.45s;animation-delay:.45s;background-color:#1a1d24}.page__footer::after{clear:both;content:"";display:table}.page__footer footer{clear:both;margin-left:auto;margin-right:auto;margin-top:2em;max-width:100%;padding:0 1em 2em}.page__footer footer::after{clear:both;content:"";display:table}@media(min-width: 80em){.page__footer footer{max-width:1280px}}.page__footer a{color:inherit;text-decoration:none}.page__footer a:hover{text-decoration:underline}.page__footer .fas,.page__footer .fab,.page__footer .far,.page__footer .fal{color:#eee}.page__footer-copyright{font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.563em}.page__footer-follow ul{margin:0;padding:0;list-style-type:none}.page__footer-follow li{display:inline-block;padding-top:5px;padding-bottom:5px;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em;text-transform:uppercase}.page__footer-follow li+li:before{content:"";padding-right:5px}.page__footer-follow a{padding-right:10px;font-weight:bold}.page__footer-follow .social-icons a{white-space:nowrap}.layout--search .archive__item-teaser{margin-bottom:.25em}.search__toggle{margin-left:1rem;margin-right:1rem;height:2rem;border:0;outline:none;color:#00adb5;background-color:rgba(0,0,0,0);cursor:pointer;-webkit-transition:.2s;transition:.2s}.search__toggle:hover{color:#008288}.search-icon{width:100%;height:100%}.search-content{display:none;visibility:hidden;padding-top:1em;padding-bottom:1em}.search-content__inner-wrap{width:100%;margin-left:auto;margin-right:auto;padding-left:1em;padding-right:1em;-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.15s;animation-delay:.15s}@media(min-width: 80em){.search-content__inner-wrap{max-width:1280px}}.search-content__form{background-color:rgba(0,0,0,0)}.search-content .search-input{display:block;margin-bottom:0;padding:0;border:none;outline:none;box-shadow:none;background-color:rgba(0,0,0,0);font-size:1.25em}@media(min-width: 64em){.search-content .search-input{font-size:1.563em}}@media(min-width: 80em){.search-content .search-input{font-size:1.953em}}.search-content.is--visible{display:block;visibility:visible}.search-content.is--visible::after{content:"";display:block}.search-content .results__found{margin-top:.5em;font-size:.625em}.search-content .archive__item{margin-bottom:2em}@media(min-width: 64em){.search-content .archive__item{width:75%}}@media(min-width: 80em){.search-content .archive__item{width:50%}}.search-content .archive__item-title{margin-top:0}.search-content .archive__item-excerpt{margin-bottom:0}.ais-search-box{max-width:100% !important;margin-bottom:2em}.archive__item-title .ais-Highlight{color:#00adb5;font-style:normal;text-decoration:underline}.archive__item-excerpt .ais-Highlight{color:#00adb5;font-style:normal;font-weight:bold}div.highlighter-rouge,figure.highlight{position:relative;margin-bottom:1em;background:#263238;color:#eff;font-family:Monaco,Consolas,"Lucida Console",monospace;font-size:.625em;line-height:1.8;border-radius:4px}div.highlighter-rouge>pre,div.highlighter-rouge pre.highlight,figure.highlight>pre,figure.highlight pre.highlight{margin:0;padding:1em}.highlight table{margin-bottom:0;font-size:1em;border:0}.highlight table td{padding:0;width:calc(100% - 1em);border:0}.highlight table td.gutter,.highlight table td.rouge-gutter{padding-right:1em;width:1em;color:#b2ccd6;border-right:1px solid #b2ccd6;text-align:right}.highlight table td.code,.highlight table td.rouge-code{padding-left:1em}.highlight table pre{margin:0}.highlight pre{width:100%}.highlight .hll{background-color:#eff}.highlight .c{color:#b2ccd6}.highlight .err{color:#f07178}.highlight .k{color:#c792ea}.highlight .l{color:#f78c6c}.highlight .n{color:#eff}.highlight .o{color:#89ddff}.highlight .p{color:#eff}.highlight .cm{color:#b2ccd6}.highlight .cp{color:#b2ccd6}.highlight .c1{color:#b2ccd6}.highlight .cs{color:#b2ccd6}.highlight .gd{color:#f07178}.highlight .ge{font-style:italic}.highlight .gh{color:#eff;font-weight:bold}.highlight .gi{color:#c3e88d}.highlight .gp{color:#b2ccd6;font-weight:bold}.highlight .gs{font-weight:bold}.highlight .gu{color:#89ddff;font-weight:bold}.highlight .kc{color:#c792ea}.highlight .kd{color:#c792ea}.highlight .kn{color:#89ddff}.highlight .kp{color:#c792ea}.highlight .kr{color:#c792ea}.highlight .kt{color:#ffcb6b}.highlight .ld{color:#c3e88d}.highlight .m{color:#f78c6c}.highlight .s{color:#c3e88d}.highlight .na{color:#82aaff}.highlight .nb{color:#eff}.highlight .nc{color:#ffcb6b}.highlight .no{color:#f07178}.highlight .nd{color:#89ddff}.highlight .ni{color:#eff}.highlight .ne{color:#f07178}.highlight .nf{color:#82aaff}.highlight .nl{color:#eff}.highlight .nn{color:#ffcb6b}.highlight .nx{color:#82aaff}.highlight .py{color:#eff}.highlight .nt{color:#89ddff}.highlight .nv{color:#f07178}.highlight .ow{color:#89ddff}.highlight .w{color:#eff}.highlight .mf{color:#f78c6c}.highlight .mh{color:#f78c6c}.highlight .mi{color:#f78c6c}.highlight .mo{color:#f78c6c}.highlight .sb{color:#c3e88d}.highlight .sc{color:#eff}.highlight .sd{color:#b2ccd6}.highlight .s2{color:#c3e88d}.highlight .se{color:#f78c6c}.highlight .sh{color:#c3e88d}.highlight .si{color:#f78c6c}.highlight .sx{color:#c3e88d}.highlight .sr{color:#c3e88d}.highlight .s1{color:#c3e88d}.highlight .ss{color:#c3e88d}.highlight .bp{color:#eff}.highlight .vc{color:#f07178}.highlight .vg{color:#f07178}.highlight .vi{color:#f07178}.highlight .il{color:#f78c6c}.gist th,.gist td{border-bottom:0}.hidden,.is--hidden{display:none;visibility:hidden}.load{display:none}.transparent{opacity:0}.visually-hidden,.screen-reader-text,.screen-reader-text span,.screen-reader-shortcut{position:absolute !important;clip:rect(1px, 1px, 1px, 1px);height:1px !important;width:1px !important;border:0 !important;overflow:hidden}body:hover .visually-hidden a,body:hover .visually-hidden input,body:hover .visually-hidden button{display:none !important}.screen-reader-text:focus,.screen-reader-shortcut:focus{clip:auto !important;height:auto !important;width:auto !important;display:block;font-size:1em;font-weight:bold;padding:15px 23px 14px;background:#fff;z-index:100000;text-decoration:none;box-shadow:0 0 2px 2px rgba(0,0,0,.6)}.skip-link{position:fixed;z-index:20;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;white-space:nowrap}.skip-link li{height:0;width:0;list-style:none}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.task-list{padding:0}.task-list li{list-style-type:none}.task-list .task-list-item-checkbox{margin-right:.5em;opacity:1}.task-list .task-list{margin-left:1em}.cf{clear:both}.wrapper{margin-left:auto;margin-right:auto;width:100%}.align-left{display:block;margin-left:auto;margin-right:auto}@media(min-width: 37.5em){.align-left{float:left;margin-right:1em}}.align-right{display:block;margin-left:auto;margin-right:auto}@media(min-width: 37.5em){.align-right{float:right;margin-left:1em}}.align-center{display:block;margin-left:auto;margin-right:auto}@media(min-width: 64em){.full{margin-right:-20.3389830508% !important}}.icon{display:inline-block;fill:currentColor;width:1em;height:1.1em;line-height:1;position:relative;top:-0.1em;vertical-align:middle}.social-icons .fas,.social-icons .fab,.social-icons .far,.social-icons .fal{color:#eaeaea}.social-icons .fa-behance,.social-icons .fa-behance-square{color:#1769ff}.social-icons .fa-bitbucket{color:#205081}.social-icons .fa-dribbble,.social-icons .fa-dribble-square{color:#ea4c89}.social-icons .fa-facebook,.social-icons .fa-facebook-square,.social-icons .fa-facebook-f{color:#3b5998}.social-icons .fa-flickr{color:#ff0084}.social-icons .fa-foursquare{color:#0072b1}.social-icons .fa-github,.social-icons .fa-github-alt,.social-icons .fa-github-square{color:#171516}.social-icons .fa-gitlab{color:#e24329}.social-icons .fa-instagram{color:#517fa4}.social-icons .fa-keybase{color:#ef7639}.social-icons .fa-lastfm,.social-icons .fa-lastfm-square{color:#d51007}.social-icons .fa-linkedin,.social-icons .fa-linkedin-in{color:#007bb6}.social-icons .fa-mastodon,.social-icons .fa-mastodon-square{color:#2b90d9}.social-icons .fa-pinterest,.social-icons .fa-pinterest-p,.social-icons .fa-pinterest-square{color:#cb2027}.social-icons .fa-reddit{color:#ff4500}.social-icons .fa-rss,.social-icons .fa-rss-square{color:#fa9b39}.social-icons .fa-soundcloud{color:#f30}.social-icons .fa-stack-exchange,.social-icons .fa-stack-overflow{color:#fe7a15}.social-icons .fa-tumblr,.social-icons .fa-tumblr-square{color:#32506d}.social-icons .fa-twitter,.social-icons .fa-twitter-square{color:#55acee}.social-icons .fa-vimeo,.social-icons .fa-vimeo-square,.social-icons .fa-vimeo-v{color:#1ab7ea}.social-icons .fa-vine{color:#00bf8f}.social-icons .fa-youtube{color:#b00}.social-icons .fa-xing,.social-icons .fa-xing-square{color:#006567}.navicon{position:relative;width:1.5rem;height:.25rem;background:#00adb5;margin:auto;-webkit-transition:.3s;transition:.3s}.navicon:before,.navicon:after{content:"";position:absolute;left:0;width:1.5rem;height:.25rem;background:#00adb5;-webkit-transition:.3s;transition:.3s}.navicon:before{top:-0.5rem}.navicon:after{bottom:-0.5rem}.close .navicon{background:rgba(0,0,0,0)}.close .navicon:before,.close .navicon:after{-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;top:0;width:1.5rem}.close .navicon:before{-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg)}.close .navicon:after{-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg)}@supports(pointer-events: none){.greedy-nav__toggle:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;opacity:0;background-color:#252a34;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;pointer-events:none}}.greedy-nav__toggle.close:before{opacity:.9;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;pointer-events:auto}.greedy-nav__toggle:hover .navicon,.greedy-nav__toggle:hover .navicon:before,.greedy-nav__toggle:hover .navicon:after{background:#008288}.greedy-nav__toggle:hover.close .navicon{background:rgba(0,0,0,0)}@media(min-width: 64em){.sticky{clear:both;position:-webkit-sticky;position:sticky;top:2em}.sticky::after{clear:both;content:"";display:table}.sticky>*{display:block}}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.show-modal{overflow:hidden;position:relative}.show-modal:before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;z-index:999;background-color:rgba(255,255,255,.85)}.show-modal .modal{display:block}.modal{display:none;position:fixed;width:300px;top:50%;left:50%;margin-left:-150px;margin-top:-150px;min-height:0;z-index:9999;background:#fff;border:1px solid #51555d;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.125)}.modal__title{margin:0;padding:.5em 1em}.modal__supporting-text{padding:0 1em .5em 1em}.modal__actions{padding:.5em 1em;border-top:1px solid #51555d}.footnote{color:#9ba1a6;text-decoration:none}.footnotes{color:#9ba1a6}.footnotes ol,.footnotes li,.footnotes p{margin-bottom:0;font-size:.625em}a.reversefootnote{color:#7a8288;text-decoration:none}a.reversefootnote:hover{text-decoration:underline}.required{color:#ee5f5b;font-weight:bold}.gsc-control-cse table,.gsc-control-cse tr,.gsc-control-cse td{border:0}.responsive-video-container{position:relative;margin-bottom:1em;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%}.responsive-video-container iframe,.responsive-video-container object,.responsive-video-container embed{position:absolute;top:0;left:0;width:100%;height:100%}:-webkit-full-screen-ancestor .masthead,:-webkit-full-screen-ancestor .page__footer{position:static}#main{clear:both;margin-left:auto;margin-right:auto;padding-left:1em;padding-right:1em;-webkit-animation:intro .3s both;animation:intro .3s both;max-width:100%;-webkit-animation-delay:.15s;animation-delay:.15s}#main::after{clear:both;content:"";display:table}@media(min-width: 80em){#main{max-width:1280px}}body{display:-webkit-box;display:-ms-flexbox;display:flex;min-height:100vh;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.initial-content,.search-content{flex:1 0 auto}@media(min-width: 64em){.page{float:right;width:calc(100% - 200px);padding-right:200px}}@media(min-width: 80em){.page{width:calc(100% - 300px);padding-right:300px}}.page .page__inner-wrap{float:left;margin-top:1em;margin-left:0;margin-right:0;width:100%;clear:both}.page .page__inner-wrap .page__content,.page .page__inner-wrap .page__meta,.page .page__inner-wrap .comment__date,.page .page__inner-wrap .page__share{position:relative;float:left;margin-left:0;margin-right:0;width:100%;clear:both}.page__title{margin-top:0;line-height:1}.page__title a{color:#eaeaea;text-decoration:none}.page__title+.page__meta,.page__title+.comment__date{margin-top:-0.5em}.page__lead{font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:1em}.page__content h2{padding-bottom:.5em;border-bottom:1px solid #51555d}.page__content h1 .header-link,.page__content h2 .header-link,.page__content h3 .header-link,.page__content h4 .header-link,.page__content h5 .header-link,.page__content h6 .header-link{position:relative;left:.5em;opacity:0;font-size:.625em;-webkit-transition:opacity .2s ease-in-out .1s;-moz-transition:opacity .2s ease-in-out .1s;-o-transition:opacity .2s ease-in-out .1s;transition:opacity .2s ease-in-out .1s}.page__content h1:hover .header-link,.page__content h2:hover .header-link,.page__content h3:hover .header-link,.page__content h4:hover .header-link,.page__content h5:hover .header-link,.page__content h6:hover .header-link{opacity:1}.page__content p,.page__content li,.page__content dl{font-size:.75em}.page__content p{margin:0 0 1.3em}.page__content a:not(.btn):hover{text-decoration:underline}.page__content a:not(.btn):hover img{box-shadow:0 0 10px rgba(0,0,0,.25)}.page__content dt{margin-top:1em;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-weight:bold}.page__content dd{margin-left:1em;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em}.page__content .small{font-size:.625em}.page__content blockquote+.small{margin-top:-1.5em;padding-left:1.25rem}.page__hero{position:relative;margin-bottom:2em;clear:both;-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.25s;animation-delay:.25s}.page__hero::after{clear:both;content:"";display:table}.page__hero--overlay{position:relative;margin-bottom:2em;padding:3em 0;clear:both;background-size:cover;background-repeat:no-repeat;background-position:center;-webkit-animation:intro .3s both;animation:intro .3s both;-webkit-animation-delay:.25s;animation-delay:.25s}.page__hero--overlay::after{clear:both;content:"";display:table}.page__hero--overlay a{color:#fff}.page__hero--overlay .wrapper{padding-left:1em;padding-right:1em}@media(min-width: 80em){.page__hero--overlay .wrapper{max-width:1280px}}.page__hero--overlay .page__title,.page__hero--overlay .page__meta,.page__hero--overlay .comment__date,.page__hero--overlay .page__lead,.page__hero--overlay .btn{color:#fff;text-shadow:1px 1px 4px rgba(0,0,0,.5)}.page__hero--overlay .page__lead{max-width:768px}.page__hero--overlay .page__title{font-size:1.563em}@media(min-width: 37.5em){.page__hero--overlay .page__title{font-size:1.953em}}.page__hero-image{width:100%;height:auto;-ms-interpolation-mode:bicubic}.page__hero-caption{position:absolute;bottom:0;right:0;margin:0 auto;padding:2px 5px;color:#fff;font-family:Georgia,Times,serif;font-size:.563em;background:#000;text-align:right;z-index:5;opacity:.5;border-radius:4px 0 0 0}@media(min-width: 64em){.page__hero-caption{padding:5px 10px}}.page__hero-caption a{color:#fff;text-decoration:none}.page__share{margin-top:2em;padding-top:1em;border-top:1px solid #51555d}@media(max-width: 37.5em){.page__share .btn span{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}}.page__share-title{margin-bottom:10px;font-size:.625em;text-transform:uppercase}.page__meta,.comment__date{margin-top:2em;color:#eee;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em}.page__meta p,.comment__date p{margin:0}.page__meta a,.comment__date a{color:inherit}.page__meta-title{margin-bottom:10px;font-size:.625em;text-transform:uppercase}.page__meta-sep::before{content:"•";padding-left:.5em;padding-right:.5em}.page__taxonomy .sep{display:none}.page__taxonomy strong{margin-right:10px}.page__taxonomy-item{display:inline-block;margin-right:5px;margin-bottom:8px;padding:5px 10px;text-decoration:none;border:1px solid #3d4046;border-radius:4px}.page__taxonomy-item:hover{text-decoration:none;color:#a9dde0}.taxonomy__section{margin-bottom:2em;padding-bottom:1em}.taxonomy__section:not(:last-child){border-bottom:solid 1px #51555d}.taxonomy__section .archive__item-title{margin-top:0}.taxonomy__section .archive__subtitle{clear:both;border:0}.taxonomy__section+.taxonomy__section{margin-top:2em}.taxonomy__title{margin-bottom:.5em;color:#eee}.taxonomy__count{color:#eee}.taxonomy__index{display:grid;grid-column-gap:2em;grid-template-columns:repeat(2, 1fr);margin:1.414em 0;padding:0;font-size:.625em;list-style:none}@media(min-width: 64em){.taxonomy__index{grid-template-columns:repeat(3, 1fr)}}.taxonomy__index a{display:-webkit-box;display:-ms-flexbox;display:flex;padding:.25em 0;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;color:inherit;text-decoration:none;border-bottom:1px solid #51555d}.back-to-top{display:block;clear:both;color:#eee;font-size:.5em;text-transform:uppercase;text-align:right;text-decoration:none}.page__comments{float:left;margin-left:0;margin-right:0;width:100%;clear:both}.page__comments-title{margin-top:2rem;margin-bottom:10px;padding-top:2rem;font-size:.625em;border-top:1px solid #51555d;text-transform:uppercase}.page__comments-form{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.page__comments-form.disabled input,.page__comments-form.disabled button,.page__comments-form.disabled textarea,.page__comments-form.disabled label{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);box-shadow:none;opacity:.65}.comment{clear:both;margin:1em 0}.comment::after{clear:both;content:"";display:table}.comment:not(:last-child){border-bottom:1px solid #51555d}.comment__avatar-wrapper{float:left;width:60px;height:60px}@media(min-width: 64em){.comment__avatar-wrapper{width:100px;height:100px}}.comment__avatar{width:40px;height:40px;border-radius:50%}@media(min-width: 64em){.comment__avatar{width:80px;height:80px;padding:5px;border:1px solid #51555d}}.comment__content-wrapper{float:right;width:calc(100% - 60px)}@media(min-width: 64em){.comment__content-wrapper{width:calc(100% - 100px)}}.comment__author{margin:0}.comment__author a{text-decoration:none}.comment__date{margin:0}.comment__date a{text-decoration:none}.page__related{clear:both;float:left;margin-top:2em;padding-top:1em;border-top:1px solid #51555d}.page__related::after{clear:both;content:"";display:table}@media(min-width: 64em){.page__related{float:right;width:calc(100% - 200px)}}@media(min-width: 80em){.page__related{width:calc(100% - 300px)}}.page__related a{color:inherit;text-decoration:none}.page__related-title{margin-bottom:10px;font-size:.625em;text-transform:uppercase}@media(min-width: 64em){.wide .page{padding-right:0}}@media(min-width: 80em){.wide .page{padding-right:0}}@media(min-width: 64em){.wide .page__related{padding-right:0}}@media(min-width: 80em){.wide .page__related{padding-right:0}}.archive{margin-top:1em;margin-bottom:2em}@media(min-width: 64em){.archive{float:right;width:calc(100% - 200px);padding-right:200px}}@media(min-width: 80em){.archive{width:calc(100% - 300px);padding-right:300px}}.archive__item{position:relative}.archive__item a{position:relative;z-index:10}.archive__item a[rel=permalink]{position:static}.archive__subtitle{margin:1.414em 0 .5em;padding-bottom:.5em;font-size:.75em;color:#eee;border-bottom:1px solid #51555d}.archive__subtitle+.list__item .archive__item-title{margin-top:.5em}.archive__item-title{margin-bottom:.25em;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;line-height:initial;overflow:hidden;text-overflow:ellipsis}.archive__item-title a[rel=permalink]::before{content:"";position:absolute;left:0;top:0;right:0;bottom:0}.archive__item-title a+a{opacity:.5}.page__content .archive__item-title{margin-top:1em;border-bottom:none}.archive__item-excerpt{margin-top:0;font-size:.625em}.archive__item-excerpt+p{text-indent:0}.archive__item-excerpt a{position:relative}.archive__item-teaser{position:relative;border-radius:4px;overflow:hidden}.archive__item-teaser img{width:100%}.archive__item-caption{position:absolute;bottom:0;right:0;margin:0 auto;padding:2px 5px;color:#fff;font-family:Georgia,Times,serif;font-size:.5em;background:#000;text-align:right;z-index:5;opacity:.5;border-radius:4px 0 0 0}@media(min-width: 64em){.archive__item-caption{padding:5px 10px}}.archive__item-caption a{color:#fff;text-decoration:none}.list__item .page__meta,.list__item .comment__date{margin:0 0 4px;font-size:.6em}@media(min-width: 64em){.archive .grid__wrapper{margin-right:-200px}}@media(min-width: 80em){.archive .grid__wrapper{margin-right:-300px}}.grid__item{margin-bottom:2em}@media(min-width: 37.5em){.grid__item{float:left;width:48.9795918367%}.grid__item:nth-child(2n+1){clear:both;margin-left:0}.grid__item:nth-child(2n+2){clear:none;margin-left:2.0408163265%}}@media(min-width: 48em){.grid__item{margin-left:0;margin-right:0;width:23.7288135593%}.grid__item:nth-child(2n+1){clear:none}.grid__item:nth-child(4n+1){clear:both}.grid__item:nth-child(4n+2){clear:none;margin-left:1.6949152542%}.grid__item:nth-child(4n+3){clear:none;margin-left:1.6949152542%}.grid__item:nth-child(4n+4){clear:none;margin-left:1.6949152542%}}.grid__item .page__meta,.grid__item .comment__date{margin:0 0 4px;font-size:.6em}.grid__item .page__meta-sep{display:block}.grid__item .page__meta-sep::before{display:none}.grid__item .archive__item-title{margin-top:.5em;font-size:.75em}.grid__item .archive__item-excerpt{display:none}@media(min-width: 48em){.grid__item .archive__item-excerpt{display:block;font-size:.625em}}@media(min-width: 37.5em){.grid__item .archive__item-teaser{max-height:200px}}@media(min-width: 48em){.grid__item .archive__item-teaser{max-height:120px}}.feature__wrapper{clear:both;margin-bottom:2em;border-bottom:1px solid #51555d}.feature__wrapper::after{clear:both;content:"";display:table}.feature__wrapper .archive__item-title{margin-bottom:0}.feature__item{position:relative;margin-bottom:2em;font-size:1.125em}@media(min-width: 37.5em){.feature__item{float:left;margin-bottom:0;width:32.2033898305%}.feature__item:nth-child(3n+1){clear:both;margin-left:0}.feature__item:nth-child(3n+2){clear:none;margin-left:1.6949152542%}.feature__item:nth-child(3n+3){clear:none;margin-left:1.6949152542%}.feature__item .feature__item-teaser{max-height:200px;overflow:hidden}}.feature__item .archive__item-body{padding-left:1.6949152542%;padding-right:1.6949152542%}.feature__item a.btn::before{content:"";position:absolute;left:0;top:0;right:0;bottom:0}.feature__item--left{position:relative;float:left;margin-left:0;margin-right:0;width:100%;clear:both;font-size:1.125em}.feature__item--left .archive__item{float:left}.feature__item--left .archive__item-teaser{margin-bottom:2em}.feature__item--left a.btn::before{content:"";position:absolute;left:0;top:0;right:0;bottom:0}@media(min-width: 37.5em){.feature__item--left .archive__item-teaser{float:left;width:40.6779661017%}.feature__item--left .archive__item-body{float:right;padding-left:1.6949152542%;padding-right:1.6949152542%;width:57.6271186441%}}.feature__item--right{position:relative;float:left;margin-left:0;margin-right:0;width:100%;clear:both;font-size:1.125em}.feature__item--right .archive__item{float:left}.feature__item--right .archive__item-teaser{margin-bottom:2em}.feature__item--right a.btn::before{content:"";position:absolute;left:0;top:0;right:0;bottom:0}@media(min-width: 37.5em){.feature__item--right{text-align:right}.feature__item--right .archive__item-teaser{float:right;width:40.6779661017%}.feature__item--right .archive__item-body{float:left;width:57.6271186441%;padding-left:1.6949152542%;padding-right:1.6949152542%}}.feature__item--center{position:relative;float:left;margin-left:0;margin-right:0;width:100%;clear:both;font-size:1.125em}.feature__item--center .archive__item{float:left;width:100%}.feature__item--center .archive__item-teaser{margin-bottom:2em}.feature__item--center a.btn::before{content:"";position:absolute;left:0;top:0;right:0;bottom:0}@media(min-width: 37.5em){.feature__item--center{text-align:center}.feature__item--center .archive__item-teaser{margin:0 auto;width:40.6779661017%}.feature__item--center .archive__item-body{margin:0 auto;width:57.6271186441%}}.archive .feature__wrapper .archive__item-title{margin-top:.25em;font-size:1em}.archive .feature__item,.archive .feature__item--left,.archive .feature__item--center,.archive .feature__item--right{font-size:1em}@media(min-width: 64em){.wide .archive{padding-right:0}}@media(min-width: 80em){.wide .archive{padding-right:0}}.layout--single .feature__wrapper{display:inline-block}.sidebar{clear:both}.sidebar::after{clear:both;content:"";display:table}@media(min-width: 64em){.sidebar{float:left;width:calc(200px - 1em);opacity:.75;-webkit-transition:opacity .2s ease-in-out;transition:opacity .2s ease-in-out}.sidebar:hover{opacity:1}.sidebar.sticky{overflow-y:auto;max-height:calc(100vh - 2em - 2em)}}@media(min-width: 80em){.sidebar{width:calc(300px - 1em)}}.sidebar>*{margin-top:1em;margin-bottom:1em}.sidebar h2,.sidebar h3,.sidebar h4,.sidebar h5,.sidebar h6{margin-bottom:0;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.sidebar p,.sidebar li{font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.625em;line-height:1.5}.sidebar img{width:100%}.sidebar img.emoji{width:20px;height:20px}.sidebar__right{margin-bottom:1em}@media(min-width: 64em){.sidebar__right{position:absolute;top:0;right:0;width:200px;margin-right:-200px;padding-left:1em;z-index:10}.sidebar__right.sticky{clear:both;position:-webkit-sticky;position:sticky;top:2em;float:right}.sidebar__right.sticky::after{clear:both;content:"";display:table}.sidebar__right.sticky .toc .toc__menu{overflow-y:auto;max-height:calc(100vh - 7em)}}@media(min-width: 80em){.sidebar__right{width:300px;margin-right:-300px}}@media(min-width: 64em){.splash .sidebar__right{position:relative;float:right;margin-right:0}}@media(min-width: 80em){.splash .sidebar__right{margin-right:0}}.author__avatar{display:table-cell;vertical-align:top;width:36px;height:36px}@media(min-width: 64em){.author__avatar{display:block;width:auto;height:auto}}.author__avatar img{max-width:110px;border-radius:50%}@media(min-width: 64em){.author__avatar img{padding:5px;border:1px solid #51555d}}.author__content{display:table-cell;vertical-align:top;padding-left:15px;padding-right:25px;line-height:1}@media(min-width: 64em){.author__content{display:block;width:100%;padding-left:0;padding-right:0}}.author__content a{color:inherit;text-decoration:none}.author__name{margin:0}@media(min-width: 64em){.author__name{margin-top:10px;margin-bottom:10px}}.sidebar .author__name{font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em}.author__bio{margin:0}@media(min-width: 64em){.author__bio{margin-top:10px;margin-bottom:20px}}.author__urls-wrapper{position:relative;display:table-cell;vertical-align:middle;font-family:-apple-system,BlinkMacSystemFont,"Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;z-index:20;cursor:pointer}.author__urls-wrapper li:last-child a{margin-bottom:0}.author__urls-wrapper .author__urls span.label{padding-left:5px}@media(min-width: 64em){.author__urls-wrapper{display:block}}.author__urls-wrapper button{position:relative;margin-bottom:0}@supports(pointer-events: none){.author__urls-wrapper button:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none}}.author__urls-wrapper button.open:before{pointer-events:auto}@media(min-width: 64em){.author__urls-wrapper button{display:none}}.author__urls{display:none;position:absolute;right:0;margin-top:15px;padding:10px;list-style-type:none;border:1px solid #51555d;border-radius:4px;background:#252a34;box-shadow:0 2px 4px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);cursor:default}.author__urls.is--visible{display:block}@media(min-width: 64em){.author__urls{display:block;position:relative;margin:0;padding:0;border:0;background:rgba(0,0,0,0);box-shadow:none}}.author__urls:before{display:block;content:"";position:absolute;top:-11px;left:calc(50% - 10px);width:0;border-style:solid;border-width:0 10px 10px;border-color:#51555d rgba(0,0,0,0);z-index:0}@media(min-width: 64em){.author__urls:before{display:none}}.author__urls:after{display:block;content:"";position:absolute;top:-10px;left:calc(50% - 10px);width:0;border-style:solid;border-width:0 10px 10px;border-color:#252a34 rgba(0,0,0,0);z-index:1}@media(min-width: 64em){.author__urls:after{display:none}}.author__urls ul{padding:10px;list-style-type:none}.author__urls li{white-space:nowrap}.author__urls a{display:block;margin-bottom:5px;padding-right:5px;padding-top:2px;padding-bottom:2px;color:inherit;font-size:.75em;text-decoration:none}.author__urls a:hover{text-decoration:underline}.wide .sidebar__right{margin-bottom:1em}@media(min-width: 64em){.wide .sidebar__right{position:initial;top:initial;right:initial;width:initial;margin-right:initial;padding-left:initial;z-index:initial}.wide .sidebar__right.sticky{float:none}}@media(min-width: 80em){.wide .sidebar__right{width:initial;margin-right:initial}}@media print{[hidden]{display:none}*{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}html{margin:0;padding:0;min-height:auto !important;font-size:16px}body{margin:0 auto;background:#fff !important;color:#000 !important;font-size:1rem;line-height:1.5;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{color:#000;line-height:1.2;margin-bottom:.75rem;margin-top:0}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}a,a:visited{color:#000;text-decoration:underline;word-wrap:break-word}table{border-collapse:collapse}thead{display:table-header-group}table,th,td{border-bottom:1px solid #000}td,th{padding:8px 16px}img{border:0;display:block;max-width:100% !important;vertical-align:middle}hr{border:0;border-bottom:2px solid #bbb;height:0;margin:2.25rem 0;padding:0}dt{font-weight:bold}dd{margin:0;margin-bottom:.75rem}abbr[title],acronym[title]{border:0;text-decoration:none}table,blockquote,pre,code,figure,li,hr,ul,ol,a,tr{page-break-inside:avoid}h2,h3,h4,p,a{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid;page-break-inside:avoid}h1+p,h2+p,h3+p{page-break-before:avoid}img{page-break-after:auto;page-break-before:auto;page-break-inside:avoid}pre{white-space:pre-wrap !important;word-wrap:break-word}a[href^="http://"]:after,a[href^="https://"]:after,a[href^="ftp://"]:after{content:" (" attr(href) ")";font-size:80%}abbr[title]:after,acronym[title]:after{content:" (" attr(title) ")"}#main{max-width:100%}.page{margin:0;padding:0;width:100%}.page-break,.page-break-before{page-break-before:always}.page-break-after{page-break-after:always}.no-print{display:none}a.no-reformat:after{content:""}abbr[title].no-reformat:after,acronym[title].no-reformat:after{content:""}.page__hero-caption{color:#000 !important;background:#fff !important;opacity:1}.page__hero-caption a{color:#000 !important}.masthead,.toc,.page__share,.page__related,.pagination,.ads,.page__footer,.page__comments-form,.author__avatar,.author__content,.author__urls-wrapper,.nav__list,.sidebar,.adsbygoogle{display:none !important;height:1px !important}}.page__content{text-align:justify}h2,h3{margin-bottom:0px;font-weight:bold}h4{font-size:.75em;margin-bottom:0px;font-style:italic}summary{font-size:.75em}.MathJax_Display{font-size:.75em}.toc__menu a{font-size:1.25em}/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/assets/css/main.css.map b/assets/css/main.css.map new file mode 100644 index 0000000..2bc09b8 --- /dev/null +++ b/assets/css/main.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["../../_sass/minimal-mistakes/skins/_dark.scss","../../_sass/minimal-mistakes.scss","../../_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss","../../_sass/minimal-mistakes/_variables.scss","../../_sass/minimal-mistakes/vendor/magnific-popup/_magnific-popup.scss","../../_sass/minimal-mistakes/_mixins.scss","../../_sass/minimal-mistakes/_reset.scss","../../_sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss","../../_sass/minimal-mistakes/_base.scss","../../_sass/minimal-mistakes/_forms.scss","../../_sass/minimal-mistakes/_tables.scss","../../_sass/minimal-mistakes/_animations.scss","../../_sass/minimal-mistakes/_buttons.scss","../../_sass/minimal-mistakes/_notices.scss","../../_sass/minimal-mistakes/_masthead.scss","../../_sass/minimal-mistakes/_navigation.scss","../../_sass/minimal-mistakes/_footer.scss","../../_sass/minimal-mistakes/_search.scss","../../_sass/minimal-mistakes/_syntax.scss","../../_sass/minimal-mistakes/_utilities.scss","../../_sass/minimal-mistakes/_page.scss","../../_sass/minimal-mistakes/_archive.scss","../../_sass/minimal-mistakes/_sidebar.scss","../../_sass/minimal-mistakes/_print.scss","main.scss"],"names":[],"mappings":"CAoBA,gKAIE,cAGF,uCACE,iBAjBsB,QCXxB;AAAA;AAAA;AAAA;AAAA,EC0CA,yBC3BQ,oBC8DR,QACE,MACA,OACA,WACA,YACA,aACA,gBACA,eAEA,WFjFoC,KEkFpC,QFjFoC,GEmFlC,yBAKJ,UACE,MACA,OACA,WACA,YACA,aACA,eACA,wBACA,mCAIF,eACE,kBACA,kBACA,WACA,YACA,OACA,MACA,cACA,8BACA,2BACA,sBAKA,sBACE,WACA,qBACA,YACA,sBAOA,qCACE,aAMN,aACE,kBACA,qBACA,sBACA,cACA,gBACA,aAIA,8DACE,WACA,YAKJ,cACE,gBAGA,iEACE,qBACA,wBACA,gBAGJ,UACE,eACA,uBACA,oBACA,eAGA,8BACE,YAIJ,kDAIE,yBACA,sBACA,iBAKA,wBACE,aAkBF,UACE,wBAUJ,eACE,MFvMoC,KEwMpC,kBACA,QACA,WACA,kBACA,kBACA,SACA,UACA,aACA,iBACE,MFjNkC,KEkNlC,uBACE,MFlNgC,KEyNpC,4BACE,aAMF,0BACE,aAMF,kCAEE,iBACA,eACA,yBACA,SACA,wBACA,cACA,aACA,UACA,aACA,wBACA,gBAEF,yBACI,UACA,SAMN,WACE,WACA,YACA,iBAEA,kBACA,QACA,MACA,qBACA,kBACA,QF5QoC,EE8QlC,0BAEF,sBACA,MFhRoC,KEkRpC,kBACA,eACA,YDvRM,oBCyRN,kCAEE,UAEE,0BAIJ,kBACE,QAIF,6BACE,MFlSkC,KEuSpC,2DACE,MF1SkC,KE2SlC,WACA,iBACA,kBACA,WAKJ,aACE,kBACA,MACA,QACA,MFpToC,KEqTpC,eACA,iBAKA,WACE,kBACA,QFjUkC,EEmUhC,0BAEF,SACA,QACA,iBACA,UACA,WACA,aACA,0CACA,kBACE,iBAEF,kCAEE,UAEE,0BAGJ,uEAIE,WACA,cACA,QACA,SACA,kBACA,OACA,MACA,gBACA,iBACA,kCAGF,mCAGE,sBACA,yBACA,QAGF,oCAEE,sBACA,yBACA,WAKJ,gBACE,OAEA,6CAEE,6BACA,iBAEF,8CAEE,iBACA,6BAIJ,iBACE,QACA,+CAEE,4BACA,iBAEF,gDAEE,4BASJ,mBACE,YF/YkC,KEgZlC,eFhZkC,KEiZlC,gCACE,cACA,WACA,UFlZgC,MEoZlC,8BACE,UAGJ,mBACE,WACA,SACA,gBACA,mBACA,0BACE,kBACA,cACA,MACA,OACA,WACA,YACA,WF1bgC,uBE2bhC,WFtagC,KEkblC,YACE,WACA,eACA,YACA,cACA,cACA,8BACA,2BACA,sBACA,oBACA,cAKJ,YACE,cACA,kBACE,WACA,kBACA,OACA,IFhcgC,KEichC,OFhcgC,KEichC,cACA,QACA,WACA,YACA,WACA,WFnegC,uBEoehC,WFzcgC,KE2clC,kBACE,MFrcgC,QEschC,cACA,eACA,iBAEF,mBACE,SAEF,uBACE,aACA,gBAGJ,gBACE,iBACA,kBACA,SACA,OACA,WACA,YAEF,WACE,gBACA,iBACA,MF9dkC,QE+dlC,qBACA,mBAIA,+BACE,eAMA,2CACE,eAOJ,gGAKI,kCACE,eACA,gBAGA,4BACE,UAKF,kCACE,MACA,SAEF,kCACE,eACA,gBAGJ,gCACE,0BACA,SACA,SACA,SACA,gBACA,eACA,8BACA,2BACA,sBACA,sCACE,UAGJ,6BACE,UACA,QAEF,2BACE,MACA,QACA,WACA,YACA,iBACA,0BACA,eACA,kBACA,WAUV,kCACE,WACE,8BACA,sBAEF,gBACE,2BACA,mBAEF,iBACE,8BACA,sBAEF,eACE,aF5lBkC,IE6lBlC,cF7lBkC,KEumBlC,kBACE,UAEF,yBACE,YACA,SACA,mBACA,eACA,mBAEF,wBACE,UAEF,sBACE,iBAEF,oBACE,MACA,QACA,cCjoBN,qBAEE,4BAEA,yBACA,oBCLF,wBAEA,KAEE,sBACA,iBNJiB,QMKjB,eAcA,8BACA,0BCuCE,wBD1DJ,KAOI,gBCmDA,wBD1DJ,KAWI,gBC+CA,wBD1DJ,KAeI,gBASJ,cAIA,iBACE,WACA,gBAGF,YACE,WACA,gBAKF,8EAWE,cAKF,mBAGE,qBACA,gBACA,QAKF,sBACE,aAGF,EACE,MNhEW,QM2Eb,iBAEE,UAKF,QAEE,kBACA,cACA,cACA,wBAGF,IACE,WAGF,IACE,e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CF,yBACE,GACE,UAEF,KACE,WAIJ,iBACE,GACE,UAEF,KACE,WCVJ,KAEE,qBACA,oBACA,iBACA,YTGW,uGSFX,UToCY,OSnCZ,iBACA,kBACA,qBACA,eACA,cTmKc,ISlKd,eAEA,WACE,kBAGF,mBACE,mBAiBA,cP6CF,iBOzDA,QP0DA,WOrCI,sBPoCJ,iBOzDA,QP0DA,WOjCI,oBPgCJ,iBO/B8B,QPgC9B,WO9CE,cP6CF,iBOzDA,KP0DA,cO3CM,yBAMF,sBPoCJ,iBOzDA,KP0DA,cOjCI,oBPgCJ,iBO/B8B,KPgC9B,cO9CE,oBP6CF,iBOzDA,cP0DA,WOxCM,sBAGF,4BPoCJ,iBOzDA,cP0DA,WOjCI,0BPgCJ,iBO/B8B,ePgC9B,WO9CE,cP6CF,iBOzDA,QP0DA,WOrCI,sBPoCJ,iBOzDA,QP0DA,WOjCI,oBPgCJ,iBO/B8B,QPgC9B,WO9CE,cP6CF,iBOzDA,QP0DA,WOrCI,sBPoCJ,iBOzDA,QP0DA,WOjCI,oBPgCJ,iBO/B8B,QPgC9B,WO9CE,aP6CF,iBOzDA,QP0DA,WOrCI,qBPoCJ,iBOzDA,QP0DA,WOjCI,mBPgCJ,iBO/B8B,QPgC9B,WO9CE,WP6CF,iBOzDA,QP0DA,WOrCI,mBPoCJ,iBOzDA,QP0DA,WOjCI,iBPgCJ,iBO/B8B,QPgC9B,WO9CE,eP6CF,iBOzDA,QP0DA,WOrCI,uBPoCJ,iBOzDA,QP0DA,WOjCI,qBPgCJ,iBO/B8B,QPgC9B,WO9CE,cP6CF,iBOzDA,QP0DA,WOrCI,sBPoCJ,iBOzDA,QP0DA,WOjCI,oBPgCJ,iBO/B8B,QPgC9B,WO9CE,eP6CF,iBOzDA,QP0DA,WOrCI,uBPoCJ,iBOzDA,QP0DA,WOjCI,qBPgCJ,iBO/B8B,QPgC9B,WO1BA,YACE,cACA,WAEA,wBACE,iBAKJ,eACE,oBACA,mBACA,yBACA,gBACA,YAIF,cACE,UTpCU,ISwCZ,YACE,UTxCU,MS4CZ,YACE,UT3CU,OUqBd,QA3DE,wBACA,YACA,MbTW,QaUX,mHACA,4BACA,oBACA,yBACA,cVkKc,IUjKd,2CAEA,WACE,wBACA,oBACA,oBAGO,0BAEP,gBACA,cAIA,qBACE,2BAIJ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BACA,+BACA,UdpBU,OIiBV,wBULF,8BAWI,UdxBQ,SIkBV,wBULF,8BAeI,Ud7BQ,SciCZ,4BACE,cACA,mBAEA,mCACE,WACA,cAIJ,gCACE,gBACA,UdxCU,Oc2CZ,+BACE,kBV9BA,wBU6BF,+BAII,WVjCF,wBU6BF,+BAQI,WAIJ,qCACE,aAGF,uCACE,gBAMJ,gBACE,0BACA,kBAGF,oCACE,MjBnHc,QiBoHd,kBACA,0BAGF,sCACE,MjBzHc,QiB0Hd,kBACA,iBC9HF,uCAEE,kBACA,kBACA,WfsIO,QerIP,Mf0IO,KezIP,YfQU,2CePV,UfuCY,OetCZ,gBACA,cfyKc,IevKd,kHAEE,SACA,YAIJ,iBACE,gBACA,cACA,SAEA,oBACE,UACA,uBACA,SAGA,4DAEE,kBACA,UACA,Mf6GG,Qe5GH,+BACA,iBAIF,wDAEE,iBAIJ,qBACE,SAIJ,eACE,WAGF,gBACE,iBfyFO,KetFP,cAEE,MfkFK,QehFP,gBAEE,MfkFK,QehFP,cAEE,MfoFK,QelFP,cAEE,Mf2EK,QezEP,cAEE,MfmEK,KejEP,cAEE,MfsEK,QepEP,cAEE,Mf2DK,KezDP,eAEE,MfsDK,QepDP,eAEE,MfkDK,QehDP,eAEE,Mf8CK,Qe5CP,eAEE,Mf0CK,QexCP,eAEE,Mf0CK,QexCP,eAEE,kBAEF,eAEE,Mf+BK,Ke9BL,iBAEF,eAEE,MfgCK,Qe9BP,eAEE,MfqBK,QepBL,iBAEF,eAEE,iBAEF,eAEE,MfoBK,QenBL,iBAEF,eAEE,MfiBK,QefP,eAEE,MfaK,QeXP,eAEE,MfOK,QeLP,eAEE,MfKK,QeHP,eAEE,MfCK,QeCP,eAEE,MfPK,QeSP,eAEE,MfVK,QeYP,cAEE,MfhBK,QekBP,cAEE,MflBK,QeoBP,eAEE,MfpBK,QesBP,eAEE,MfhCK,KekCP,eAEE,Mf/BK,QeiCP,eAEE,MfrCK,QeuCP,eAEE,MfrCK,QeuCP,eAEE,MfhDK,KekDP,eAEE,MfjDK,QemDP,eAEE,MfhDK,QekDP,eAEE,Mf5DK,Ke8DP,eAEE,Mf3DK,Qe6DP,eAEE,Mf5DK,Qe8DP,eAEE,MfxEK,Ke0EP,eAEE,MfrEK,QeuEP,eAEE,M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vFE,wBekFJ,iBAQI,cACA,WACA,eACA,iBAGF,mBACE,cACA,qBAIJ,cACE,SfvGE,wBesGJ,cAII,gBACA,oBAGJ,uBACE,YnB/JW,uGmBgKX,UnB/HY,MmBkId,aACE,SfpHE,wBemHJ,aAII,gBACA,oBAIJ,sBACE,kBACA,mBACA,sBACA,YnBhLW,uGmBiLX,WACA,eAGE,sCACE,gBAKF,+CACE,iBf5IF,wBe4HJ,sBAqBI,eAGF,6BACE,kBACA,gBAGE,gCADF,oCAEI,WACA,eACA,MACA,OACA,WACA,YACA,qBAKF,yCACE,oBftKJ,wBeoJF,6BAuBI,cAKN,cACE,aACA,kBACA,QACA,gBACA,aACA,qBACA,yBACA,cnBlEc,ImBmEd,WtBpPiB,QsBqPjB,oEACA,eAEA,0BACE,cf9LA,wBegLJ,cAkBI,cACA,kBACA,SACA,UACA,SACA,yBACA,iBAGF,qBACE,cACA,WACA,kBACA,UACA,sBACA,QACA,mBACA,yBACA,mCACA,UfrNA,wBe2MF,qBAaI,cAIJ,oBACE,cACA,WACA,kBACA,UACA,sBACA,QACA,mBACA,yBACA,mCACA,UftOA,wBe4NF,oBAaI,cAIJ,iBACE,aACA,qBAGF,iBACE,mBAGF,gBACE,cACA,kBACA,kBACA,gBACA,mBACA,cACA,UnB5QU,MmB6QV,qBAEA,sBACE,0BASN,sBACE,kBf3QE,wBe0QJ,sBAII,iBACA,YACA,cACA,cACA,qBACA,qBACA,gBAEA,6BACE,YfvRF,wBe0QJ,sBAkBI,cACA,sBCzVJ,aAEE,SACE,aAGF,EACE,2BACA,8BACA,sBAGF,KACE,SACA,UACA,2BACA,eAGF,KACE,cACA,2BACA,sBACA,eACA,gBACA,kCACA,mCACA,kCAGF,kBAME,WACA,gBACA,qBACA,aAGF,GACE,iBAGF,GACE,eAGF,GACE,kBAGF,GACE,iBAGF,GACE,kBAGF,GACE,eAGF,YAEE,WACA,0BACA,qBAGF,MACE,yBAGF,MACE,2BAGF,YAGE,6BAGF,MAEE,iBAGF,IACE,SACA,cACA,0BACA,sBAGF,GACE,SACA,6BACA,SACA,iBACA,UAGF,GACE,iBAGF,GACE,SACA,qBAGF,2BAEE,SACA,qBAGF,kDAWE,wBAGF,aAKE,UACA,SAGF,kBAME,uBACA,wBAGF,eAGE,wBAGF,IACE,sBACA,uBACA,wBAGF,IACE,gCACA,qBAGF,2EAGE,4BACA,cAGF,uCAEE,6BAGF,MACE,eAGF,MACE,SACA,UACA,WAGF,+BAEE,yBAGF,kBACE,wBAGF,UACE,aAGF,oBACE,WAGF,+DAEE,WAGF,oBACE,sBACA,2BACA,UAEA,sBACE,sBAQJ,uLAcE,wBACA,uBCpPJ,eACC,mBAGD,MACC,kBACA,iBAGD,GACC,UrBoDU,MqBnDV,kBACA,kBAGD,QACC,UrB4Ba,MqBzBd,iBACC,UrBwBa,MqBrBd,aACC,UrBkBa","sourcesContent":["/* ==========================================================================\n Dark skin\n ========================================================================== */\n\n/* Colors */\n$background-color: #252a34 !default;\n$text-color: #eaeaea !default;\n$primary-color: #00adb5 !default;\n$border-color: mix(#fff, $background-color, 20%) !default;\n$code-background-color: mix(#000, $background-color, 15%) !default;\n$code-background-color-dark: mix(#000, $background-color, 20%) !default;\n$form-background-color: mix(#000, $background-color, 15%) !default;\n$footer-background-color: mix(#000, $background-color, 30%) !default;\n$link-color: mix($primary-color, $text-color, 40%) !default;\n$link-color-hover: mix(#fff, $link-color, 25%) !default;\n$link-color-visited: mix(#000, $link-color, 25%) !default;\n$masthead-link-color: $text-color !default;\n$masthead-link-color-hover: mix(#000, $text-color, 20%) !default;\n$navicon-link-color-hover: mix(#000, $background-color, 30%) !default;\n\n.author__urls.social-icons i,\n.author__urls.social-icons .svg-inline--fa,\n.page__footer-follow .social-icons i,\n.page__footer-follow .social-icons .svg-inline--fa {\n color: inherit;\n}\n\n.ais-search-box .ais-search-box--input {\n background-color: $form-background-color;\n}\n","/*!\n * Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose\n * Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes\n * Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE)\n*/\n\n/* Variables */\n@import \"minimal-mistakes/variables\";\n\n/* Mixins and functions */\n@import \"minimal-mistakes/vendor/breakpoint/breakpoint\";\n@include breakpoint-set(\"to ems\", true);\n@import \"minimal-mistakes/vendor/magnific-popup/magnific-popup\"; // Magnific Popup\n@import \"minimal-mistakes/vendor/susy/susy\";\n@import \"minimal-mistakes/mixins\";\n\n/* Core CSS */\n@import \"minimal-mistakes/reset\";\n@import \"minimal-mistakes/base\";\n@import \"minimal-mistakes/forms\";\n@import \"minimal-mistakes/tables\";\n@import \"minimal-mistakes/animations\";\n\n/* Components */\n@import \"minimal-mistakes/buttons\";\n@import \"minimal-mistakes/notices\";\n@import \"minimal-mistakes/masthead\";\n@import \"minimal-mistakes/navigation\";\n@import \"minimal-mistakes/footer\";\n@import \"minimal-mistakes/search\";\n@import \"minimal-mistakes/syntax\";\n\n/* Utility classes */\n@import \"minimal-mistakes/utilities\";\n\n/* Layout specific */\n@import \"minimal-mistakes/page\";\n@import \"minimal-mistakes/archive\";\n@import \"minimal-mistakes/sidebar\";\n@import \"minimal-mistakes/print\";\n","////////////////////////\n// Settings //\n////////////////////////\n\n// overlay\n$mfp-overlay-color: #000; // Color of overlay screen\n$mfp-overlay-opacity: 0.8; // Opacity of overlay screen\n$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6); // Shadow on image or iframe\n\n// spacing\n$mfp-popup-padding-left: 8px; // Padding from left and from right side\n$mfp-popup-padding-left-mobile: 6px; // Same as above, but is applied when width of window is less than 800px\n\n$mfp-z-index-base: 1040; // Base z-index of popup\n\n// controls\n$mfp-include-arrows: true; // Include styles for nav arrows\n$mfp-controls-opacity: 1; // Opacity of controls\n$mfp-controls-color: #fff; // Color of controls\n$mfp-controls-border-color: #fff; // Border color of controls\n$mfp-inner-close-icon-color: #fff; // Color of close button when inside\n$mfp-controls-text-color: #ccc; // Color of preloader and \"1 of X\" indicator\n$mfp-controls-text-color-hover: #fff; // Hover color of preloader and \"1 of X\" indicator\n$mfp-IE7support: true; // Very basic IE7 support\n\n// Iframe-type options\n$mfp-include-iframe-type: true; // Enable Iframe-type popups\n$mfp-iframe-padding-top: 40px; // Iframe padding top\n$mfp-iframe-background: #000; // Background color of iframes\n$mfp-iframe-max-width: 900px; // Maximum width of iframes\n$mfp-iframe-ratio: 9/16; // Ratio of iframe (9/16 = widescreen, 3/4 = standard, etc.)\n\n// Image-type options\n$mfp-include-image-type: true; // Enable Image-type popups\n$mfp-image-background: #444 !default;\n$mfp-image-padding-top: 40px; // Image padding top\n$mfp-image-padding-bottom: 40px; // Image padding bottom\n$mfp-include-mobile-layout-for-image: true; // Removes paddings from top and bottom\n\n// Image caption options\n$mfp-caption-title-color: #f3f3f3; // Caption title color\n$mfp-caption-subtitle-color: #bdbdbd; // Caption subtitle color\n.mfp-counter { font-family: $serif; } // Caption font family\n\n// A11y\n$mfp-use-visuallyhidden: false;","/* ==========================================================================\n Variables\n ========================================================================== */\n\n/*\n Typography\n ========================================================================== */\n\n$doc-font-size: 16 !default;\n\n/* paragraph indention */\n$paragraph-indent: false !default; // true, false (default)\n$indent-var: 1.3em !default;\n\n/* system typefaces */\n$serif: Georgia, Times, serif !default;\n$sans-serif: -apple-system, BlinkMacSystemFont, \"Roboto\", \"Segoe UI\",\n \"Helvetica Neue\", \"Lucida Grande\", Arial, sans-serif !default;\n$monospace: Monaco, Consolas, \"Lucida Console\", monospace !default;\n\n/* sans serif typefaces */\n$sans-serif-narrow: $sans-serif !default;\n$helvetica: Helvetica, \"Helvetica Neue\", Arial, sans-serif !default;\n\n/* serif typefaces */\n$georgia: Georgia, serif !default;\n$times: Times, serif !default;\n$bodoni: \"Bodoni MT\", serif !default;\n$calisto: \"Calisto MT\", serif !default;\n$garamond: Garamond, serif !default;\n\n$global-font-family: $sans-serif !default;\n$header-font-family: $sans-serif !default;\n$caption-font-family: $serif !default;\n\n/* type scale */\n// $type-size-1: 2.441em !default; // ~39.056px\n// $type-size-2: 1.953em !default; // ~31.248px\n// $type-size-3: 1.563em !default; // ~25.008px\n// $type-size-4: 1.25em !default; // ~20px\n// $type-size-5: 1em !default; // ~16px\n// $type-size-6: 0.75em !default; // ~12px\n// $type-size-7: 0.6875em !default; // ~11px\n// $type-size-8: 0.625em !default; // ~10px\n\n$type-size-1: 1.953em !default; // ~39.056px\n$type-size-2: 1.563em !default; // ~31.248px\n$type-size-3: 1.250em !default; // ~25.008px\n$type-size-4: 1.000em !default; // ~20px\n$type-size-5: 0.750em !default; // ~16px\n$type-size-6: 0.625em !default; // ~12px\n$type-size-7: 0.563em !default; // ~11px\n$type-size-8: 0.500em !default; // ~10px\n\n/* headline scale */\n// $h-size-1: 1.563em !default; // ~25.008px\n// $h-size-2: 1.25em !default; // ~20px\n// $h-size-3: 1.125em !default; // ~18px\n// $h-size-4: 1.0625em !default; // ~17px\n// $h-size-5: 1.03125em !default; // ~16.5px\n// $h-size-6: 1em !default; // ~16px\n\n/* headline scale */\n$h-size-1: 1.250em !default;\n$h-size-2: 1.125em !default;\n$h-size-3: 1.00em !default; \n$h-size-4: 0.875em !default;\n$h-size-5: 0.75em !default; \n$h-size-6: 0.6875em !default;\n\n/*\n Colors\n ========================================================================== */\n\n$gray: #7a8288 !default;\n$dark-gray: mix(#000, $gray, 50%) !default;\n$darker-gray: mix(#000, $gray, 60%) !default;\n$light-gray: mix(#fff, $gray, 50%) !default;\n$lighter-gray: mix(#fff, $gray, 90%) !default;\n\n$background-color: #fff !default;\n$code-background-color: #fafafa !default;\n$code-background-color-dark: $light-gray !default;\n$text-color: $dark-gray !default;\n$muted-text-color: mix(#fff, $text-color, 20%) !default;\n$border-color: $lighter-gray !default;\n$form-background-color: $lighter-gray !default;\n$footer-background-color: $lighter-gray !default;\n\n$primary-color: #6f777d !default;\n$success-color: #3fa63f !default;\n$warning-color: #d67f05 !default;\n$danger-color: #ee5f5b !default;\n$info-color: #3b9cba !default;\n$focus-color: $primary-color !default;\n$active-color: mix(#fff, $primary-color, 80%) !default;\n\n/* YIQ color contrast */\n$yiq-contrasted-dark-default: $dark-gray !default;\n$yiq-contrasted-light-default: #fff !default;\n$yiq-contrasted-threshold: 175 !default;\n$yiq-debug: false !default;\n\n/* brands */\n$behance-color: #1769ff !default;\n$bitbucket-color: #205081 !default;\n$dribbble-color: #ea4c89 !default;\n$facebook-color: #3b5998 !default;\n$flickr-color: #ff0084 !default;\n$foursquare-color: #0072b1 !default;\n$github-color: #171516 !default;\n$gitlab-color: #e24329 !default;\n$instagram-color: #517fa4 !default;\n$keybase-color: #ef7639 !default;\n$lastfm-color: #d51007 !default;\n$linkedin-color: #007bb6 !default;\n$mastodon-color: #2b90d9 !default;\n$pinterest-color: #cb2027 !default;\n$reddit-color: #ff4500 !default;\n$rss-color: #fa9b39 !default;\n$soundcloud-color: #ff3300 !default;\n$stackoverflow-color: #fe7a15 !default;\n$tumblr-color: #32506d !default;\n$twitter-color: #55acee !default;\n$vimeo-color: #1ab7ea !default;\n$vine-color: #00bf8f !default;\n$youtube-color: #bb0000 !default;\n$xing-color: #006567 !default;\n\n/* links */\n$link-color: mix(#000, $info-color, 20%) !default;\n$link-color-hover: mix(#000, $link-color, 25%) !default;\n$link-color-visited: mix(#fff, $link-color, 15%) !default;\n$masthead-link-color: $primary-color !default;\n$masthead-link-color-hover: mix(#000, $primary-color, 25%) !default;\n$navicon-link-color-hover: mix(#fff, $primary-color, 75%) !default;\n\n/* notices */\n$notice-background-mix: 80% !default;\n$code-notice-background-mix: 90% !default;\n\n/* syntax highlighting (base16) */\n$base00: #263238 !default;\n$base01: #2e3c43 !default;\n$base02: #314549 !default;\n$base03: #546e7a !default;\n$base04: #b2ccd6 !default;\n$base05: #eeffff !default;\n$base06: #eeffff !default;\n$base07: #ffffff !default;\n$base08: #f07178 !default;\n$base09: #f78c6c !default;\n$base0a: #ffcb6b !default;\n$base0b: #c3e88d !default;\n$base0c: #89ddff !default;\n$base0d: #82aaff !default;\n$base0e: #c792ea !default;\n$base0f: #ff5370 !default;\n\n/*\n Breakpoints\n ========================================================================== */\n\n$small: 600px !default;\n$medium: 768px !default;\n$medium-wide: 900px !default;\n$large: 1024px !default;\n$x-large: 1280px !default;\n$max-width: $x-large !default;\n\n/*\n Grid\n ========================================================================== */\n\n$right-sidebar-width-narrow: 200px !default;\n$right-sidebar-width: 300px !default;\n$right-sidebar-width-wide: 400px !default;\n\n/*\n Other\n ========================================================================== */\n\n$border-radius: 4px !default;\n$box-shadow: 0 1px 1px rgba(0, 0, 0, 0.125) !default;\n$nav-height: 2em !default;\n$nav-toggle-height: 2rem !default;\n$navicon-width: 1.5rem !default;\n$navicon-height: 0.25rem !default;\n$global-transition: all 0.2s ease-in-out !default;\n$intro-transition: intro 0.3s both !default;\n","/* Magnific Popup CSS */\n\n@import \"settings\";\n\n////////////////////////\n//\n// Contents:\n//\n// 1. Default Settings\n// 2. General styles\n// - Transluscent overlay\n// - Containers, wrappers\n// - Cursors\n// - Helper classes\n// 3. Appearance\n// - Preloader & text that displays error messages\n// - CSS reset for buttons\n// - Close icon\n// - \"1 of X\" counter\n// - Navigation (left/right) arrows\n// - Iframe content type styles\n// - Image content type styles\n// - Media query where size of arrows is reduced\n// - IE7 support\n//\n////////////////////////\n\n\n\n////////////////////////\n// 1. Default Settings\n////////////////////////\n\n$mfp-overlay-color: #0b0b0b !default;\n$mfp-overlay-opacity: 0.8 !default;\n$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6) !default; // shadow on image or iframe\n$mfp-popup-padding-left: 8px !default; // Padding from left and from right side\n$mfp-popup-padding-left-mobile: 6px !default; // Same as above, but is applied when width of window is less than 800px\n\n$mfp-z-index-base: 1040 !default; // Base z-index of popup\n$mfp-include-arrows: true !default; // include styles for nav arrows\n$mfp-controls-opacity: 0.65 !default;\n$mfp-controls-color: #FFF !default;\n$mfp-controls-border-color: #3F3F3F !default;\n$mfp-inner-close-icon-color: #333 !default;\n$mfp-controls-text-color: #CCC !default; // Color of preloader and \"1 of X\" indicator\n$mfp-controls-text-color-hover: #FFF !default;\n$mfp-IE7support: true !default; // Very basic IE7 support\n\n// Iframe-type options\n$mfp-include-iframe-type: true !default;\n$mfp-iframe-padding-top: 40px !default;\n$mfp-iframe-background: #000 !default;\n$mfp-iframe-max-width: 900px !default;\n$mfp-iframe-ratio: 9/16 !default;\n\n// Image-type options\n$mfp-include-image-type: true !default;\n$mfp-image-background: #444 !default;\n$mfp-image-padding-top: 40px !default;\n$mfp-image-padding-bottom: 40px !default;\n$mfp-include-mobile-layout-for-image: true !default; // Removes paddings from top and bottom\n\n// Image caption options\n$mfp-caption-title-color: #F3F3F3 !default;\n$mfp-caption-subtitle-color: #BDBDBD !default;\n\n// A11y\n$mfp-use-visuallyhidden: false !default; // Hide content from browsers, but make it available for screen readers\n\n\n\n////////////////////////\n// 2. General styles\n////////////////////////\n\n// Transluscent overlay\n.mfp-bg {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: $mfp-z-index-base + 2;\n overflow: hidden;\n position: fixed;\n\n background: $mfp-overlay-color;\n opacity: $mfp-overlay-opacity;\n @if $mfp-IE7support {\n filter: unquote(\"alpha(opacity=#{$mfp-overlay-opacity*100})\");\n }\n}\n\n// Wrapper for popup\n.mfp-wrap {\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: $mfp-z-index-base + 3;\n position: fixed;\n outline: none !important;\n -webkit-backface-visibility: hidden; // fixes webkit bug that can cause \"false\" scrollbar\n}\n\n// Root container\n.mfp-container {\n text-align: center;\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n padding: 0 $mfp-popup-padding-left;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n// Vertical centerer helper\n.mfp-container {\n &:before {\n content: '';\n display: inline-block;\n height: 100%;\n vertical-align: middle;\n }\n}\n\n// Remove vertical centering when popup has class `mfp-align-top`\n.mfp-align-top {\n .mfp-container {\n &:before {\n display: none;\n }\n }\n}\n\n// Popup content holder\n.mfp-content {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n margin: 0 auto;\n text-align: left;\n z-index: $mfp-z-index-base + 5;\n}\n.mfp-inline-holder,\n.mfp-ajax-holder {\n .mfp-content {\n width: 100%;\n cursor: auto;\n }\n}\n\n// Cursors\n.mfp-ajax-cur {\n cursor: progress;\n}\n.mfp-zoom-out-cur {\n &, .mfp-image-holder .mfp-close {\n cursor: -moz-zoom-out;\n cursor: -webkit-zoom-out;\n cursor: zoom-out;\n }\n}\n.mfp-zoom {\n cursor: pointer;\n cursor: -webkit-zoom-in;\n cursor: -moz-zoom-in;\n cursor: zoom-in;\n}\n.mfp-auto-cursor {\n .mfp-content {\n cursor: auto;\n }\n}\n\n.mfp-close,\n.mfp-arrow,\n.mfp-preloader,\n.mfp-counter {\n -webkit-user-select:none;\n -moz-user-select: none;\n user-select: none;\n}\n\n// Hide the image during the loading\n.mfp-loading {\n &.mfp-figure {\n display: none;\n }\n}\n\n// Helper class that hides stuff\n@if $mfp-use-visuallyhidden {\n // From HTML5 Boilerplate https://github.com/h5bp/html5-boilerplate/blob/v4.2.0/doc/css.md#visuallyhidden\n .mfp-hide {\n border: 0 !important;\n clip: rect(0 0 0 0) !important;\n height: 1px !important;\n margin: -1px !important;\n overflow: hidden !important;\n padding: 0 !important;\n position: absolute !important;\n width: 1px !important;\n }\n} @else {\n .mfp-hide {\n display: none !important;\n }\n}\n\n\n////////////////////////\n// 3. Appearance\n////////////////////////\n\n// Preloader and text that displays error messages\n.mfp-preloader {\n color: $mfp-controls-text-color;\n position: absolute;\n top: 50%;\n width: auto;\n text-align: center;\n margin-top: -0.8em;\n left: 8px;\n right: 8px;\n z-index: $mfp-z-index-base + 4;\n a {\n color: $mfp-controls-text-color;\n &:hover {\n color: $mfp-controls-text-color-hover;\n }\n }\n}\n\n// Hide preloader when content successfully loaded\n.mfp-s-ready {\n .mfp-preloader {\n display: none;\n }\n}\n\n// Hide content when it was not loaded\n.mfp-s-error {\n .mfp-content {\n display: none;\n }\n}\n\n// CSS-reset for buttons\nbutton {\n &.mfp-close,\n &.mfp-arrow {\n overflow: visible;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n display: block;\n outline: none;\n padding: 0;\n z-index: $mfp-z-index-base + 6;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n &::-moz-focus-inner {\n padding: 0;\n border: 0\n }\n}\n\n\n// Close icon\n.mfp-close {\n width: 44px;\n height: 44px;\n line-height: 44px;\n\n position: absolute;\n right: 0;\n top: 0;\n text-decoration: none;\n text-align: center;\n opacity: $mfp-controls-opacity;\n @if $mfp-IE7support {\n filter: unquote(\"alpha(opacity=#{$mfp-controls-opacity*100})\");\n }\n padding: 0 0 18px 10px;\n color: $mfp-controls-color;\n\n font-style: normal;\n font-size: 28px;\n font-family: $serif;\n\n &:hover,\n &:focus {\n opacity: 1;\n @if $mfp-IE7support {\n filter: unquote(\"alpha(opacity=#{1*100})\");\n }\n }\n\n &:active {\n top: 1px;\n }\n}\n.mfp-close-btn-in {\n .mfp-close {\n color: $mfp-inner-close-icon-color;\n }\n}\n.mfp-image-holder,\n.mfp-iframe-holder {\n .mfp-close {\n color: $mfp-controls-color;\n right: -6px;\n text-align: right;\n padding-right: 6px;\n width: 100%;\n }\n}\n\n// \"1 of X\" counter\n.mfp-counter {\n position: absolute;\n top: 0;\n right: 0;\n color: $mfp-controls-text-color;\n font-size: 12px;\n line-height: 18px;\n}\n\n// Navigation arrows\n@if $mfp-include-arrows {\n .mfp-arrow {\n position: absolute;\n opacity: $mfp-controls-opacity;\n @if $mfp-IE7support {\n filter: unquote(\"alpha(opacity=#{$mfp-controls-opacity*100})\");\n }\n margin: 0;\n top: 50%;\n margin-top: -55px;\n padding: 0;\n width: 90px;\n height: 110px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n &:active {\n margin-top: -54px;\n }\n &:hover,\n &:focus {\n opacity: 1;\n @if $mfp-IE7support {\n filter: unquote(\"alpha(opacity=#{1*100})\");\n }\n }\n &:before,\n &:after,\n .mfp-b,\n .mfp-a {\n content: '';\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n left: 0;\n top: 0;\n margin-top: 35px;\n margin-left: 35px;\n border: medium inset transparent;\n }\n\n &:after,\n .mfp-a {\n\n border-top-width: 13px;\n border-bottom-width: 13px;\n top:8px;\n }\n\n &:before,\n .mfp-b {\n border-top-width: 21px;\n border-bottom-width: 21px;\n opacity: 0.7;\n }\n\n }\n\n .mfp-arrow-left {\n left: 0;\n\n &:after,\n .mfp-a {\n border-right: 17px solid $mfp-controls-color;\n margin-left: 31px;\n }\n &:before,\n .mfp-b {\n margin-left: 25px;\n border-right: 27px solid $mfp-controls-border-color;\n }\n }\n\n .mfp-arrow-right {\n right: 0;\n &:after,\n .mfp-a {\n border-left: 17px solid $mfp-controls-color;\n margin-left: 39px\n }\n &:before,\n .mfp-b {\n border-left: 27px solid $mfp-controls-border-color;\n }\n }\n}\n\n\n\n// Iframe content type\n@if $mfp-include-iframe-type {\n .mfp-iframe-holder {\n padding-top: $mfp-iframe-padding-top;\n padding-bottom: $mfp-iframe-padding-top;\n .mfp-content {\n line-height: 0;\n width: 100%;\n max-width: $mfp-iframe-max-width;\n }\n .mfp-close {\n top: -40px;\n }\n }\n .mfp-iframe-scaler {\n width: 100%;\n height: 0;\n overflow: hidden;\n padding-top: $mfp-iframe-ratio * 100%;\n iframe {\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-shadow: $mfp-shadow;\n background: $mfp-iframe-background;\n }\n }\n}\n\n\n\n// Image content type\n@if $mfp-include-image-type {\n\n /* Main image in popup */\n img {\n &.mfp-img {\n width: auto;\n max-width: 100%;\n height: auto;\n display: block;\n line-height: 0;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n padding: $mfp-image-padding-top 0 $mfp-image-padding-bottom;\n margin: 0 auto;\n }\n }\n\n /* The shadow behind the image */\n .mfp-figure {\n line-height: 0;\n &:after {\n content: '';\n position: absolute;\n left: 0;\n top: $mfp-image-padding-top;\n bottom: $mfp-image-padding-bottom;\n display: block;\n right: 0;\n width: auto;\n height: auto;\n z-index: -1;\n box-shadow: $mfp-shadow;\n background: $mfp-image-background;\n }\n small {\n color: $mfp-caption-subtitle-color;\n display: block;\n font-size: 12px;\n line-height: 14px;\n }\n figure {\n margin: 0;\n }\n figcaption {\n margin-top: 0;\n margin-bottom: 0; // reset for bottom spacing\n }\n }\n .mfp-bottom-bar {\n margin-top: -$mfp-image-padding-bottom + 4;\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n cursor: auto;\n }\n .mfp-title {\n text-align: left;\n line-height: 18px;\n color: $mfp-caption-title-color;\n word-wrap: break-word;\n padding-right: 36px; // leave some space for counter at right side\n }\n\n .mfp-image-holder {\n .mfp-content {\n max-width: 100%;\n }\n }\n\n .mfp-gallery {\n .mfp-image-holder {\n .mfp-figure {\n cursor: pointer;\n }\n }\n }\n\n\n @if $mfp-include-mobile-layout-for-image {\n @media screen and (max-width: 800px) and (orientation:landscape), screen and (max-height: 300px) {\n /**\n * Remove all paddings around the image on small screen\n */\n .mfp-img-mobile {\n .mfp-image-holder {\n padding-left: 0;\n padding-right: 0;\n }\n img {\n &.mfp-img {\n padding: 0;\n }\n }\n .mfp-figure {\n // The shadow behind the image\n &:after {\n top: 0;\n bottom: 0;\n }\n small {\n display: inline;\n margin-left: 5px;\n }\n }\n .mfp-bottom-bar {\n background: rgba(0,0,0,0.6);\n bottom: 0;\n margin: 0;\n top: auto;\n padding: 3px 5px;\n position: fixed;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n &:empty {\n padding: 0;\n }\n }\n .mfp-counter {\n right: 5px;\n top: 3px;\n }\n .mfp-close {\n top: 0;\n right: 0;\n width: 35px;\n height: 35px;\n line-height: 35px;\n background: rgba(0, 0, 0, 0.6);\n position: fixed;\n text-align: center;\n padding: 0;\n }\n }\n }\n }\n}\n\n\n\n// Scale navigation arrows and reduce padding from sides\n@media all and (max-width: 900px) {\n .mfp-arrow {\n -webkit-transform: scale(0.75);\n transform: scale(0.75);\n }\n .mfp-arrow-left {\n -webkit-transform-origin: 0;\n transform-origin: 0;\n }\n .mfp-arrow-right {\n -webkit-transform-origin: 100%;\n transform-origin: 100%;\n }\n .mfp-container {\n padding-left: $mfp-popup-padding-left-mobile;\n padding-right: $mfp-popup-padding-left-mobile;\n }\n}\n\n\n\n// IE7 support\n// Styles that make popup look nicier in old IE\n@if $mfp-IE7support {\n .mfp-ie7 {\n .mfp-img {\n padding: 0;\n }\n .mfp-bottom-bar {\n width: 600px;\n left: 50%;\n margin-left: -300px;\n margin-top: 5px;\n padding-bottom: 5px;\n }\n .mfp-container {\n padding: 0;\n }\n .mfp-content {\n padding-top: 44px;\n }\n .mfp-close {\n top: 0;\n right: 0;\n padding-top: 0;\n }\n }\n}\n","/* ==========================================================================\n MIXINS\n ========================================================================== */\n\n%tab-focus {\n /* Default*/\n outline: thin dotted $focus-color;\n /* Webkit*/\n outline: 5px auto $focus-color;\n outline-offset: -2px;\n}\n\n/*\n em function\n ========================================================================== */\n\n@function em($target, $context: $doc-font-size) {\n @return ($target / $context) * 1em;\n}\n\n\n/*\n Bourbon clearfix\n ========================================================================== */\n\n/*\n * Provides an easy way to include a clearfix for containing floats.\n * link http://cssmojo.com/latest_new_clearfix_so_far/\n *\n * example scss - Usage\n *\n * .element {\n * @include clearfix;\n * }\n *\n * example css - CSS Output\n *\n * .element::after {\n * clear: both;\n * content: \"\";\n * display: table;\n * }\n*/\n\n@mixin clearfix {\n clear: both;\n\n &::after {\n clear: both;\n content: \"\";\n display: table;\n }\n}\n\n/*\n Compass YIQ Color Contrast\n https://github.com/easy-designs/yiq-color-contrast\n ========================================================================== */\n\n@function yiq-is-light(\n $color,\n $threshold: $yiq-contrasted-threshold\n) {\n $red: red($color);\n $green: green($color);\n $blue: blue($color);\n\n $yiq: (($red*299)+($green*587)+($blue*114))/1000;\n\n @if $yiq-debug { @debug $yiq, $threshold; }\n\n @return if($yiq >= $threshold, true, false);\n}\n\n@function yiq-contrast-color(\n $color,\n $dark: $yiq-contrasted-dark-default,\n $light: $yiq-contrasted-light-default,\n $threshold: $yiq-contrasted-threshold\n) {\n @return if(yiq-is-light($color, $threshold), $yiq-contrasted-dark-default, $yiq-contrasted-light-default);\n}\n\n@mixin yiq-contrasted(\n $background-color,\n $dark: $yiq-contrasted-dark-default,\n $light: $yiq-contrasted-light-default,\n $threshold: $yiq-contrasted-threshold\n) {\n background-color: $background-color;\n color: yiq-contrast-color($background-color, $dark, $light, $threshold);\n}","/* ==========================================================================\n STYLE RESETS\n ========================================================================== */\n\n* { box-sizing: border-box; }\n\nhtml {\n /* apply a natural box layout model to all elements */\n box-sizing: border-box;\n background-color: $background-color;\n font-size: 16px;\n\n @include breakpoint($medium) {\n font-size: 18px;\n }\n\n @include breakpoint($large) {\n font-size: 20px;\n }\n\n @include breakpoint($x-large) {\n font-size: 22px;\n }\n\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n}\n\n/* Remove margin */\n\nbody { margin: 0; }\n\n/* Selected elements */\n\n::-moz-selection {\n color: #fff;\n background: #000;\n}\n\n::selection {\n color: #fff;\n background: #000;\n}\n\n/* Display HTML5 elements in IE6-9 and FF3 */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection {\n display: block;\n}\n\n/* Display block in IE6-9 and FF3 */\n\naudio,\ncanvas,\nvideo {\n display: inline-block;\n *display: inline;\n *zoom: 1;\n}\n\n/* Prevents modern browsers from displaying 'audio' without controls */\n\naudio:not([controls]) {\n display: none;\n}\n\na {\n color: $link-color;\n}\n\n/* Apply focus state */\n\na:focus {\n @extend %tab-focus;\n}\n\n/* Remove outline from links */\n\na:hover,\na:active {\n outline: 0;\n}\n\n/* Prevent sub and sup affecting line-height in all browsers */\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* img border in anchor's and image quality */\n\nimg {\n /* Responsive images (ensure images don't scale beyond their parents) */\n max-width: 100%; /* part 1: Set a maximum relative to the parent*/\n width: auto\\9; /* IE7-8 need help adjusting responsive images*/\n height: auto; /* part 2: Scale the height according to the width, otherwise you get stretching*/\n\n vertical-align: middle;\n border: 0;\n -ms-interpolation-mode: bicubic;\n}\n\n/* Prevent max-width from affecting Google Maps */\n\n#map_canvas img,\n.google-maps img {\n max-width: none;\n}\n\n/* Consistent form font size in all browsers, margin changes, misc */\n\nbutton,\ninput,\nselect,\ntextarea {\n margin: 0;\n font-size: 100%;\n vertical-align: middle;\n}\n\nbutton,\ninput {\n *overflow: visible; /* inner spacing ie IE6/7*/\n line-height: normal; /* FF3/4 have !important on line-height in UA stylesheet*/\n}\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner { /* inner padding and border oddities in FF3/4*/\n padding: 0;\n border: 0;\n}\n\nbutton,\nhtml input[type=\"button\"], // avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* corrects inability to style clickable `input` types in iOS*/\n cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/\n}\n\nlabel,\nselect,\nbutton,\ninput[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"],\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/\n}\n\ninput[type=\"search\"] { /* Appearance in Safari/Chrome*/\n box-sizing: border-box;\n -webkit-appearance: textfield;\n}\n\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-cancel-button {\n -webkit-appearance: none; /* inner-padding issues in Chrome OSX, Safari 5*/\n}\n\ntextarea {\n overflow: auto; /* remove vertical scrollbar in IE6-9*/\n vertical-align: top; /* readability and alignment cross-browser*/\n}","//////////////////////////////\n// Default Variables\n//////////////////////////////\n$Breakpoint-Settings: (\n 'default media': all,\n 'default feature': min-width,\n 'default pair': width,\n\n 'force all media type': false,\n 'to ems': false,\n 'transform resolutions': true,\n\n 'no queries': false,\n 'no query fallbacks': false,\n\n 'base font size': 16px,\n\n 'legacy syntax': false\n);\n\n$breakpoint: () !default;\n\n//////////////////////////////\n// Imports\n//////////////////////////////\n@import \"settings\";\n@import \"context\";\n@import \"helpers\";\n@import \"parsers\";\n@import \"no-query\";\n\n@import \"respond-to\";\n\n@import \"legacy-settings\";\n\n//////////////////////////////\n// Breakpoint Mixin\n//////////////////////////////\n\n@mixin breakpoint($query, $no-query: false) {\n @include legacy-settings-warning;\n\n // Reset contexts\n @include private-breakpoint-reset-contexts();\n\n $breakpoint: breakpoint($query, false);\n\n $query-string: map-get($breakpoint, 'query');\n $query-fallback: map-get($breakpoint, 'fallback');\n\n $private-breakpoint-context-holder: map-get($breakpoint, 'context holder') !global;\n $private-breakpoint-query-count: map-get($breakpoint, 'query count') !global;\n\n // Allow for an as-needed override or usage of no query fallback.\n @if $no-query != false {\n $query-fallback: $no-query;\n }\n\n @if $query-fallback != false {\n $context-setter: private-breakpoint-set-context('no-query', $query-fallback);\n }\n\n // Print Out Query String\n @if not breakpoint-get('no queries') {\n @media #{$query-string} {\n @content;\n }\n }\n\n @if breakpoint-get('no query fallbacks') != false or breakpoint-get('no queries') == true {\n\n $type: type-of(breakpoint-get('no query fallbacks'));\n $print: false;\n\n @if ($type == 'bool') {\n $print: true;\n }\n @else if ($type == 'string') {\n @if $query-fallback == breakpoint-get('no query fallbacks') {\n $print: true;\n }\n }\n @else if ($type == 'list') {\n @each $wrapper in breakpoint-get('no query fallbacks') {\n @if $query-fallback == $wrapper {\n $print: true;\n }\n }\n }\n\n // Write Fallback\n @if ($query-fallback != false) and ($print == true) {\n $type-fallback: type-of($query-fallback);\n\n @if ($type-fallback != 'bool') {\n #{$query-fallback} & {\n @content;\n }\n }\n @else {\n @content;\n }\n }\n }\n\n @include private-breakpoint-reset-contexts();\n}\n\n\n@mixin mq($query, $no-query: false) {\n @include breakpoint($query, $no-query) {\n @content;\n }\n}\n","/* ==========================================================================\n BASE ELEMENTS\n ========================================================================== */\n\nhtml {\n /* sticky footer fix */\n position: relative;\n min-height: 100%;\n}\n\nbody {\n margin: 0;\n padding: 0;\n color: $text-color;\n font-family: $global-font-family;\n line-height: 1.5;\n\n &.overflow--hidden {\n /* when primary navigation is visible, the content in the background won't scroll */\n overflow: hidden;\n }\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n margin: 2em 0 0.5em;\n line-height: 1.2;\n font-family: $header-font-family;\n font-weight: bold;\n}\n\nh1 {\n margin-top: 0;\n font-size: $h-size-1;\n}\n\nh2 {\n font-size: $h-size-2;\n}\n\nh3 {\n font-size: $h-size-3;\n}\n\nh4 {\n font-size: $h-size-4;\n}\n\nh5 {\n font-size: $h-size-5;\n}\n\nh6 {\n font-size: $h-size-6;\n}\n\nsmall,\n.small {\n font-size: $type-size-6;\n}\n\np {\n margin-bottom: 1.3em;\n}\n\nu,\nins {\n text-decoration: none;\n border-bottom: 1px solid $text-color;\n a {\n color: inherit;\n }\n}\n\ndel a {\n color: inherit;\n}\n\n/* reduce orphans and widows when printing */\n\np,\npre,\nblockquote,\nul,\nol,\ndl,\nfigure,\ntable,\nfieldset {\n orphans: 3;\n widows: 3;\n}\n\n/* abbreviations */\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: none;\n cursor: help;\n border-bottom: 1px dotted $text-color;\n}\n\n/* blockquotes */\n\nblockquote {\n margin: 2em 1em 2em 0;\n padding-left: 1em;\n padding-right: 1em;\n font-style: italic;\n border-left: 0.25em solid $primary-color;\n\n cite {\n font-style: italic;\n\n &:before {\n content: \"\\2014\";\n padding-right: 5px;\n }\n }\n}\n\n/* links */\n\na {\n &:focus {\n @extend %tab-focus;\n }\n\n &:visited {\n color: $link-color-visited;\n }\n\n &:hover {\n color: $link-color-hover;\n outline: 0;\n }\n}\n\n/* buttons */\n\nbutton:focus {\n @extend %tab-focus;\n}\n\n/* code */\n\ntt,\ncode,\nkbd,\nsamp,\npre {\n font-family: $monospace;\n}\n\npre {\n overflow-x: auto; /* add scrollbars to wide code blocks*/\n}\n\np > code,\na > code,\nli > code,\nfigcaption > code,\ntd > code {\n padding-top: 0.1rem;\n padding-bottom: 0.1rem;\n font-size: 0.8em;\n background: $code-background-color;\n border-radius: $border-radius;\n\n &:before,\n &:after {\n letter-spacing: -0.2em;\n content: \"\\00a0\"; /* non-breaking space*/\n }\n}\n\n/* horizontal rule */\n\nhr {\n display: block;\n margin: 1em 0;\n border: 0;\n border-top: 1px solid $border-color;\n}\n\n/* lists */\n\nul li,\nol li {\n margin-bottom: 0.5em;\n}\n\nli ul,\nli ol {\n margin-top: 0.5em;\n}\n\n/*\n Media and embeds\n ========================================================================== */\n\n/* Figures and images */\n\nfigure {\n display: -webkit-box;\n display: flex;\n -webkit-box-pack: justify;\n justify-content: space-between;\n -webkit-box-align: start;\n align-items: flex-start;\n flex-wrap: wrap;\n margin: 2em 0;\n\n img,\n iframe,\n .fluid-width-video-wrapper {\n margin-bottom: 1em;\n }\n\n img {\n width: 100%;\n border-radius: $border-radius;\n -webkit-transition: $global-transition;\n transition: $global-transition;\n }\n\n > a {\n display: block;\n }\n\n &.half {\n > a,\n > img {\n @include breakpoint($small) {\n width: calc(50% - 0.5em);\n }\n }\n\n figcaption {\n width: 100%;\n }\n }\n\n &.third {\n > a,\n > img {\n @include breakpoint($small) {\n width: calc(33.3333% - 0.5em);\n }\n }\n\n figcaption {\n width: 100%;\n }\n }\n}\n\n/* Figure captions */\n\nfigcaption {\n margin-bottom: 0.5em;\n color: $muted-text-color;\n font-family: $caption-font-family;\n font-size: $type-size-6;\n\n a {\n -webkit-transition: $global-transition;\n transition: $global-transition;\n\n &:hover {\n color: $link-color-hover;\n }\n }\n}\n\n/* Fix IE9 SVG bug */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/*\n Navigation lists\n ========================================================================== */\n\n/**\n * Removes margins, padding, and bullet points from navigation lists\n *\n * Example usage:\n * \n */\n\nnav {\n ul {\n margin: 0;\n padding: 0;\n }\n\n li {\n list-style: none;\n }\n\n a {\n text-decoration: none;\n }\n\n /* override white-space for nested lists */\n ul li,\n ol li {\n margin-bottom: 0;\n }\n\n li ul,\n li ol {\n margin-top: 0;\n }\n}\n\n/*\n Global animation transition\n ========================================================================== */\n\nb,\ni,\nstrong,\nem,\nblockquote,\np,\nq,\nspan,\nfigure,\nimg,\nh1,\nh2,\nheader,\ninput,\na,\ntr,\ntd,\nform button,\ninput[type=\"submit\"],\n.btn,\n.highlight,\n.archive__item-teaser {\n -webkit-transition: $global-transition;\n transition: $global-transition;\n}\n","/* ==========================================================================\n Forms\n ========================================================================== */\n\nform {\n margin: 0 0 5px 0;\n padding: 1em;\n background-color: $form-background-color;\n\n fieldset {\n margin-bottom: 5px;\n padding: 0;\n border-width: 0;\n }\n\n legend {\n display: block;\n width: 100%;\n margin-bottom: 5px * 2;\n *margin-left: -7px;\n padding: 0;\n color: $text-color;\n border: 0;\n white-space: normal;\n }\n\n p {\n margin-bottom: (5px / 2);\n }\n\n ul {\n list-style-type: none;\n margin: 0 0 5px 0;\n padding: 0;\n }\n\n br {\n display: none;\n }\n}\n\nlabel,\ninput,\nbutton,\nselect,\ntextarea {\n vertical-align: baseline;\n *vertical-align: middle;\n}\n\ninput,\nbutton,\nselect,\ntextarea {\n box-sizing: border-box;\n font-family: $sans-serif;\n}\n\nlabel {\n display: block;\n margin-bottom: 0.25em;\n color: $text-color;\n cursor: pointer;\n\n small {\n font-size: $type-size-6;\n }\n\n input,\n textarea,\n select {\n display: block;\n }\n}\n\ninput,\ntextarea,\nselect {\n display: inline-block;\n width: 100%;\n padding: 0.25em;\n margin-bottom: 0.5em;\n color: $text-color;\n background-color: $background-color;\n border: $border-color;\n border-radius: $border-radius;\n box-shadow: $box-shadow;\n}\n\n.input-mini {\n width: 60px;\n}\n\n.input-small {\n width: 90px;\n}\n\ninput[type=\"image\"],\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n width: auto;\n height: auto;\n padding: 0;\n margin: 3px 0;\n *margin-top: 0;\n line-height: normal;\n cursor: pointer;\n border-radius: 0;\n border: 0 \\9;\n box-shadow: none;\n}\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n *width: 13px;\n *height: 13px;\n}\n\ninput[type=\"image\"] {\n border: 0;\n}\n\ninput[type=\"file\"] {\n width: auto;\n padding: initial;\n line-height: initial;\n border: initial;\n background-color: transparent;\n background-color: initial;\n box-shadow: none;\n}\n\ninput[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n width: auto;\n height: auto;\n cursor: pointer;\n *overflow: visible;\n}\n\nselect,\ninput[type=\"file\"] {\n *margin-top: 4px;\n}\n\nselect {\n width: auto;\n background-color: #fff;\n}\n\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\ntextarea {\n resize: vertical;\n height: auto;\n overflow: auto;\n vertical-align: top;\n}\n\ninput[type=\"hidden\"] {\n display: none;\n}\n\n.form {\n position: relative;\n}\n\n.radio,\n.checkbox {\n padding-left: 18px;\n font-weight: normal;\n}\n\n.radio input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"] {\n float: left;\n margin-left: -18px;\n}\n\n.radio.inline,\n.checkbox.inline {\n display: inline-block;\n padding-top: 5px;\n margin-bottom: 0;\n vertical-align: middle;\n}\n\n.radio.inline + .radio.inline,\n.checkbox.inline + .checkbox.inline {\n margin-left: 10px;\n}\n\n/*\n Disabled state\n ========================================================================== */\n\ninput[disabled],\nselect[disabled],\ntextarea[disabled],\ninput[readonly],\nselect[readonly],\ntextarea[readonly] {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/*\n Focus & active state\n ========================================================================== */\n\ninput:focus,\ntextarea:focus {\n border-color: $primary-color;\n outline: 0;\n outline: thin dotted \\9;\n box-shadow: inset 0 1px 3px rgba($text-color, 0.06),\n 0 0 5px rgba($primary-color, 0.7);\n}\n\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus,\nselect:focus {\n box-shadow: none;\n}\n\n/*\n Help text\n ========================================================================== */\n\n.help-block,\n.help-inline {\n color: $muted-text-color;\n}\n\n.help-block {\n display: block;\n margin-bottom: 1em;\n line-height: 1em;\n}\n\n.help-inline {\n display: inline-block;\n vertical-align: middle;\n padding-left: 5px;\n}\n\n/*\n .form-group\n ========================================================================== */\n\n.form-group {\n margin-bottom: 5px;\n padding: 0;\n border-width: 0;\n}\n\n/*\n .form-inline\n ========================================================================== */\n\n.form-inline input,\n.form-inline textarea,\n.form-inline select {\n display: inline-block;\n margin-bottom: 0;\n}\n\n.form-inline label {\n display: inline-block;\n}\n\n.form-inline .radio,\n.form-inline .checkbox,\n.form-inline .radio {\n padding-left: 0;\n margin-bottom: 0;\n vertical-align: middle;\n}\n\n.form-inline .radio input[type=\"radio\"],\n.form-inline .checkbox input[type=\"checkbox\"] {\n float: left;\n margin-left: 0;\n margin-right: 3px;\n}\n\n/*\n .form-search\n ========================================================================== */\n\n.form-search input,\n.form-search textarea,\n.form-search select {\n display: inline-block;\n margin-bottom: 0;\n}\n\n.form-search .search-query {\n padding-left: 14px;\n padding-right: 14px;\n margin-bottom: 0;\n border-radius: 14px;\n}\n\n.form-search label {\n display: inline-block;\n}\n\n.form-search .radio,\n.form-search .checkbox,\n.form-inline .radio {\n padding-left: 0;\n margin-bottom: 0;\n vertical-align: middle;\n}\n\n.form-search .radio input[type=\"radio\"],\n.form-search .checkbox input[type=\"checkbox\"] {\n float: left;\n margin-left: 0;\n margin-right: 3px;\n}\n\n/*\n .form--loading\n ========================================================================== */\n\n.form--loading:before {\n content: \"\";\n}\n\n.form--loading .form__spinner {\n display: block;\n}\n\n.form:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(255, 255, 255, 0.7);\n z-index: 10;\n}\n\n.form__spinner {\n display: none;\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 11;\n}\n","/* ==========================================================================\n TABLES\n ========================================================================== */\n\ntable {\n display: block;\n margin-bottom: 1em;\n width: 100%;\n font-family: $global-font-family;\n font-size: $type-size-6;\n border-collapse: collapse;\n overflow-x: auto;\n\n & + table {\n margin-top: 1em;\n }\n}\n\nthead {\n background-color: $border-color;\n border-bottom: 2px solid mix(#000, $border-color, 25%);\n}\n\nth {\n padding: 0.5em;\n font-weight: bold;\n text-align: left;\n}\n\ntd {\n padding: 0.5em;\n border-bottom: 1px solid mix(#000, $border-color, 25%);\n}\n\ntr,\ntd,\nth {\n vertical-align: middle;\n}","/* ==========================================================================\n ANIMATIONS\n ========================================================================== */\n\n@-webkit-keyframes intro {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes intro {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}","/* ==========================================================================\n BUTTONS\n ========================================================================== */\n\n/*\n Default button\n ========================================================================== */\n\n.btn {\n /* default */\n display: inline-block;\n margin-bottom: 0.25em;\n padding: 0.5em 1em;\n font-family: $sans-serif;\n font-size: $type-size-6;\n font-weight: bold;\n text-align: center;\n text-decoration: none;\n border-width: 0;\n border-radius: $border-radius;\n cursor: pointer;\n\n .icon {\n margin-right: 0.5em;\n }\n\n .icon + .hidden {\n margin-left: -0.5em; /* override for hidden text*/\n }\n\n /* button colors */\n $buttoncolors:\n (primary, $primary-color),\n (inverse, #fff),\n (light-outline, transparent),\n (success, $success-color),\n (warning, $warning-color),\n (danger, $danger-color),\n (info, $info-color),\n (facebook, $facebook-color),\n (twitter, $twitter-color),\n (linkedin, $linkedin-color);\n\n @each $buttoncolor, $color in $buttoncolors {\n &--#{$buttoncolor} {\n @include yiq-contrasted($color);\n @if ($buttoncolor == inverse) {\n border: 1px solid $border-color;\n }\n @if ($buttoncolor == light-outline) {\n border: 1px solid #fff;\n }\n\n &:visited {\n @include yiq-contrasted($color);\n }\n\n &:hover {\n @include yiq-contrasted(mix(#000, $color, 20%));\n }\n }\n }\n\n /* fills width of parent container */\n &--block {\n display: block;\n width: 100%;\n\n + .btn--block {\n margin-top: 0.25em;\n }\n }\n\n /* disabled */\n &--disabled {\n pointer-events: none;\n cursor: not-allowed;\n filter: alpha(opacity=65);\n box-shadow: none;\n opacity: 0.65;\n }\n\n /* extra large button */\n &--x-large {\n font-size: $type-size-4;\n }\n\n /* large button */\n &--large {\n font-size: $type-size-5;\n }\n\n /* small button */\n &--small {\n font-size: $type-size-7;\n }\n}","/* ==========================================================================\n NOTICE TEXT BLOCKS\n ========================================================================== */\n\n/**\n * Default Kramdown usage (no indents!):\n *
\n * #### Headline for the Notice\n * Text for the notice\n *
\n */\n\n@mixin notice($notice-color) {\n margin: 2em 0 !important; /* override*/\n padding: 1em;\n color: $text-color;\n font-family: $global-font-family;\n font-size: $type-size-6 !important;\n text-indent: initial; /* override*/\n background-color: mix($background-color, $notice-color, $notice-background-mix);\n border-radius: $border-radius;\n box-shadow: 0 1px 1px rgba($notice-color, 0.25);\n\n h4 {\n margin-top: 0 !important; /* override*/\n margin-bottom: 0.75em;\n line-height: inherit;\n }\n\n @at-root .page__content #{&} h4 {\n /* using at-root to override .page-content h4 font size*/\n margin-bottom: 0;\n font-size: 1em;\n }\n\n p {\n &:last-child {\n margin-bottom: 0 !important; /* override*/\n }\n }\n\n h4 + p {\n /* remove space above paragraphs that appear directly after notice headline*/\n margin-top: 0;\n padding-top: 0;\n }\n\n a {\n color: mix(#000, $notice-color, 10%);\n\n &:hover {\n color: mix(#000, $notice-color, 50%);\n }\n }\n\n code {\n background-color: mix($background-color, $notice-color, $code-notice-background-mix)\n }\n\n\tpre code {\n\t\tbackground-color: inherit;\n\t}\n\n ul {\n &:last-child {\n margin-bottom: 0; /* override*/\n }\n }\n}\n\n/* Default notice */\n\n.notice {\n @include notice($light-gray);\n}\n\n/* Primary notice */\n\n.notice--primary {\n @include notice($primary-color);\n}\n\n/* Info notice */\n\n.notice--info {\n @include notice($info-color);\n}\n\n/* Warning notice */\n\n.notice--warning {\n @include notice($warning-color);\n}\n\n/* Success notice */\n\n.notice--success {\n @include notice($success-color);\n}\n\n/* Danger notice */\n\n.notice--danger {\n @include notice($danger-color);\n}\n","/* ==========================================================================\n MASTHEAD\n ========================================================================== */\n\n.masthead {\n position: relative;\n border-bottom: 1px solid $border-color;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n -webkit-animation-delay: 0.15s;\n animation-delay: 0.15s;\n z-index: 20;\n\n &__inner-wrap {\n @include clearfix;\n margin-left: auto;\n margin-right: auto;\n padding: 1em;\n max-width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n font-family: $sans-serif-narrow;\n\n @include breakpoint($x-large) {\n max-width: $max-width;\n }\n\n nav {\n z-index: 10;\n }\n\n a {\n text-decoration: none;\n }\n }\n}\n\n.site-logo img {\n max-height: 2rem;\n}\n\n.site-title {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-item-align: center;\n align-self: center;\n font-weight: bold;\n // z-index: 20;\n}\n\n.site-subtitle {\n display: block;\n font-size: $type-size-8;\n}\n\n.masthead__menu {\n float: left;\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n clear: both;\n\n .site-nav {\n margin-left: 0;\n\n @include breakpoint($small) {\n float: right;\n }\n }\n\n ul {\n margin: 0;\n padding: 0;\n clear: both;\n list-style-type: none;\n }\n}\n\n.masthead__menu-item {\n display: block;\n list-style-type: none;\n white-space: nowrap;\n\n &--lg {\n padding-right: 2em;\n font-weight: 700;\n }\n}\n","/* ==========================================================================\n NAVIGATION\n ========================================================================== */\n\n/*\n Breadcrumb navigation links\n ========================================================================== */\n\n.breadcrumbs {\n @include clearfix;\n margin: 0 auto;\n max-width: 100%;\n padding-left: 1em;\n padding-right: 1em;\n font-family: $sans-serif;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n -webkit-animation-delay: 0.3s;\n animation-delay: 0.3s;\n\n @include breakpoint($x-large) {\n max-width: $x-large;\n }\n\n ol {\n padding: 0;\n list-style: none;\n font-size: $type-size-6;\n\n @include breakpoint($large) {\n float: right;\n width: calc(100% - #{$right-sidebar-width-narrow});\n }\n\n @include breakpoint($x-large) {\n width: calc(100% - #{$right-sidebar-width});\n }\n }\n\n li {\n display: inline;\n }\n\n .current {\n font-weight: bold;\n }\n}\n\n/*\n Post pagination navigation links\n ========================================================================== */\n\n.pagination {\n @include clearfix();\n float: left;\n margin-top: 1em;\n padding-top: 1em;\n width: 100%;\n\n ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n font-family: $sans-serif;\n }\n\n li {\n display: block;\n float: left;\n margin-left: -1px;\n\n a {\n display: block;\n margin-bottom: 0.25em;\n padding: 0.5em 1em;\n font-family: $sans-serif;\n font-size: 14px;\n font-weight: bold;\n line-height: 1.5;\n text-align: center;\n text-decoration: none;\n color: $muted-text-color;\n border: 1px solid mix(#000, $border-color, 25%);\n border-radius: 0;\n\n &:hover {\n color: $link-color-hover;\n }\n\n &.current,\n &.current.disabled {\n color: #fff;\n background: $primary-color;\n }\n\n &.disabled {\n color: rgba($muted-text-color, 0.5);\n pointer-events: none;\n cursor: not-allowed;\n }\n }\n\n &:first-child {\n margin-left: 0;\n\n a {\n border-top-left-radius: $border-radius;\n border-bottom-left-radius: $border-radius;\n }\n }\n\n &:last-child {\n a {\n border-top-right-radius: $border-radius;\n border-bottom-right-radius: $border-radius;\n }\n }\n }\n\n /* next/previous buttons */\n &--pager {\n display: block;\n padding: 1em 2em;\n float: left;\n width: 50%;\n font-family: $sans-serif;\n font-size: $type-size-5;\n font-weight: bold;\n text-align: center;\n text-decoration: none;\n color: $muted-text-color;\n border: 1px solid mix(#000, $border-color, 25%);\n border-radius: $border-radius;\n\n &:hover {\n @include yiq-contrasted($muted-text-color);\n }\n\n &:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &:last-child {\n margin-left: -1px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n &.disabled {\n color: rgba($muted-text-color, 0.5);\n pointer-events: none;\n cursor: not-allowed;\n }\n }\n}\n\n.page__content + .pagination,\n.page__meta + .pagination,\n.page__share + .pagination,\n.page__comments + .pagination {\n margin-top: 2em;\n padding-top: 2em;\n border-top: 1px solid $border-color;\n}\n\n/*\n Priority plus navigation\n ========================================================================== */\n\n.greedy-nav {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n min-height: $nav-height;\n background: $background-color;\n\n a {\n display: block;\n margin: 0 1rem;\n color: $masthead-link-color;\n text-decoration: none;\n -webkit-transition: none;\n transition: none;\n\n &:hover {\n color: $masthead-link-color-hover;\n }\n\n &.site-logo {\n margin-left: 0;\n margin-right: 0.5rem;\n }\n\n &.site-title {\n margin-left: 0;\n }\n }\n\n img {\n -webkit-transition: none;\n transition: none;\n }\n\n &__toggle {\n -ms-flex-item-align: center;\n align-self: center;\n height: $nav-toggle-height;\n border: 0;\n outline: none;\n background-color: transparent;\n cursor: pointer;\n }\n\n .visible-links {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n overflow: hidden;\n\n li {\n -webkit-box-flex: 0;\n -ms-flex: none;\n flex: none;\n }\n\n a {\n position: relative;\n\n &:before {\n content: \"\";\n position: absolute;\n left: 0;\n bottom: 0;\n height: 4px;\n background: $primary-color;\n width: 100%;\n -webkit-transition: $global-transition;\n transition: $global-transition;\n -webkit-transform: scaleX(0) translate3d(0, 0, 0);\n transform: scaleX(0) translate3d(0, 0, 0); // hide\n }\n\n &:hover:before {\n -webkit-transform: scaleX(1);\n -ms-transform: scaleX(1);\n transform: scaleX(1); // reveal\n }\n }\n }\n\n .hidden-links {\n position: absolute;\n top: 100%;\n right: 0;\n margin-top: 15px;\n padding: 5px;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n background: $background-color;\n -webkit-box-shadow: 0 2px 4px 0 rgba(#000, 0.16),\n 0 2px 10px 0 rgba(#000, 0.12);\n box-shadow: 0 2px 4px 0 rgba(#000, 0.16), 0 2px 10px 0 rgba(#000, 0.12);\n\n &.hidden {\n display: none;\n }\n\n a {\n margin: 0;\n padding: 10px 20px;\n font-size: $type-size-5;\n\n &:hover {\n color: $masthead-link-color-hover;\n background: $navicon-link-color-hover;\n }\n }\n\n &:before {\n content: \"\";\n position: absolute;\n top: -11px;\n right: 10px;\n width: 0;\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: $border-color transparent;\n display: block;\n z-index: 0;\n }\n\n &:after {\n content: \"\";\n position: absolute;\n top: -10px;\n right: 10px;\n width: 0;\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: $background-color transparent;\n display: block;\n z-index: 1;\n }\n\n li {\n display: block;\n border-bottom: 1px solid $border-color;\n\n &:last-child {\n border-bottom: none;\n }\n }\n }\n}\n\n.no-js {\n .greedy-nav {\n .visible-links {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n overflow: visible;\n }\n }\n}\n\n/*\n Navigation list\n ========================================================================== */\n\n.nav__list {\n margin-bottom: 1.5em;\n\n input[type=\"checkbox\"],\n label {\n display: none;\n }\n\n @include breakpoint(max-width $large - 1px) {\n label {\n position: relative;\n display: inline-block;\n padding: 0.5em 2.5em 0.5em 1em;\n color: $gray;\n font-size: $type-size-6;\n font-weight: bold;\n border: 1px solid $light-gray;\n border-radius: $border-radius;\n z-index: 20;\n -webkit-transition: 0.2s ease-out;\n transition: 0.2s ease-out;\n cursor: pointer;\n\n &:before,\n &:after {\n content: \"\";\n position: absolute;\n right: 1em;\n top: 1.25em;\n width: 0.75em;\n height: 0.125em;\n line-height: 1;\n background-color: $gray;\n -webkit-transition: 0.2s ease-out;\n transition: 0.2s ease-out;\n }\n\n &:after {\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n }\n\n &:hover {\n color: #fff;\n border-color: $gray;\n background-color: mix(white, #000, 20%);\n\n &:before,\n &:after {\n background-color: #fff;\n }\n }\n }\n\n /* selected*/\n input:checked + label {\n color: white;\n background-color: mix(white, #000, 20%);\n\n &:before,\n &:after {\n background-color: #fff;\n }\n }\n\n /* on hover show expand*/\n label:hover:after {\n -webkit-transform: rotate(90deg);\n -ms-transform: rotate(90deg);\n transform: rotate(90deg);\n }\n\n input:checked + label:hover:after {\n -webkit-transform: rotate(0);\n -ms-transform: rotate(0);\n transform: rotate(0);\n }\n\n ul {\n margin-bottom: 1em;\n }\n\n a {\n display: block;\n padding: 0.25em 0;\n\n @include breakpoint($large) {\n padding-top: 0.125em;\n padding-bottom: 0.125em;\n }\n\n &:hover {\n text-decoration: underline;\n }\n }\n }\n}\n\n.nav__list .nav__items {\n margin: 0;\n font-size: 1.25rem;\n\n a {\n color: inherit;\n }\n\n .active {\n margin-left: -0.5em;\n padding-left: 0.5em;\n padding-right: 0.5em;\n font-weight: bold;\n }\n\n @include breakpoint(max-width $large - 1px) {\n position: relative;\n max-height: 0;\n opacity: 0%;\n overflow: hidden;\n z-index: 10;\n -webkit-transition: 0.3s ease-in-out;\n transition: 0.3s ease-in-out;\n -webkit-transform: translate(0, 10%);\n -ms-transform: translate(0, 10%);\n transform: translate(0, 10%);\n }\n}\n\n@include breakpoint(max-width $large - 1px) {\n .nav__list input:checked ~ .nav__items {\n -webkit-transition: 0.5s ease-in-out;\n transition: 0.5s ease-in-out;\n max-height: 9999px; /* exaggerate max-height to accommodate tall lists*/\n overflow: visible;\n opacity: 1;\n margin-top: 1em;\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n transform: translate(0, 0);\n }\n}\n\n.nav__title {\n margin: 0;\n padding: 0.5rem 0.75rem;\n font-family: $sans-serif-narrow;\n font-size: $type-size-5;\n font-weight: bold;\n}\n\n.nav__sub-title {\n display: block;\n margin: 0.5rem 0;\n padding: 0.25rem 0;\n font-family: $sans-serif-narrow;\n font-size: $type-size-6;\n font-weight: bold;\n text-transform: uppercase;\n border-bottom: 1px solid $border-color;\n}\n\n/*\n Table of contents navigation\n ========================================================================== */\n\n.toc {\n font-family: $sans-serif-narrow;\n color: $gray;\n background-color: $background-color;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n -webkit-box-shadow: $box-shadow;\n box-shadow: $box-shadow;\n\n .nav__title {\n color: #fff;\n font-size: $type-size-6;\n background: $primary-color;\n border-top-left-radius: $border-radius;\n border-top-right-radius: $border-radius;\n }\n\n // Scrollspy marks toc items as .active when they are in focus\n .active a {\n @include yiq-contrasted($active-color);\n }\n}\n\n.toc__menu {\n margin: 0;\n padding: 0;\n width: 100%;\n list-style: none;\n font-size: $type-size-6;\n\n @include breakpoint($large) {\n font-size: $type-size-7;\n }\n\n a {\n display: block;\n padding: 0.25rem 0.75rem;\n color: $muted-text-color;\n font-weight: bold;\n line-height: 1.5;\n border-bottom: 1px solid $border-color;\n\n &:hover {\n color: $text-color;\n }\n }\n\n li ul > li a {\n padding-left: 1.25rem;\n font-weight: normal;\n }\n\n li ul li ul > li a {\n padding-left: 1.75rem;\n }\n\n li ul li ul li ul > li a {\n padding-left: 2.25rem;\n }\n\n li ul li ul li ul li ul > li a {\n padding-left: 2.75rem;\n }\n\n li ul li ul li ul li ul li ul > li a {\n padding-left: 3.25rem\n }\n}\n","/* ==========================================================================\n FOOTER\n ========================================================================== */\n\n.page__footer {\n @include clearfix;\n float: left;\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n margin-top: 3em;\n color: $muted-text-color;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n -webkit-animation-delay: 0.45s;\n animation-delay: 0.45s;\n background-color: $footer-background-color;\n\n footer {\n @include clearfix;\n margin-left: auto;\n margin-right: auto;\n margin-top: 2em;\n max-width: 100%;\n padding: 0 1em 2em;\n\n @include breakpoint($x-large) {\n max-width: $x-large;\n }\n }\n\n a {\n color: inherit;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n .fas,\n .fab,\n .far,\n .fal {\n color: $muted-text-color;\n }\n}\n\n.page__footer-copyright {\n font-family: $global-font-family;\n font-size: $type-size-7;\n}\n\n.page__footer-follow {\n ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n\n li {\n display: inline-block;\n padding-top: 5px;\n padding-bottom: 5px;\n font-family: $sans-serif-narrow;\n font-size: $type-size-6;\n text-transform: uppercase;\n }\n\n li + li:before {\n content: \"\";\n padding-right: 5px;\n }\n\n a {\n padding-right: 10px;\n font-weight: bold;\n }\n\n .social-icons {\n a {\n white-space: nowrap;\n }\n }\n}\n","/* ==========================================================================\n SEARCH\n ========================================================================== */\n\n.layout--search {\n .archive__item-teaser {\n margin-bottom: 0.25em;\n }\n}\n\n.search__toggle {\n margin-left: 1rem;\n margin-right: 1rem;\n height: $nav-toggle-height;\n border: 0;\n outline: none;\n color: $primary-color;\n background-color: transparent;\n cursor: pointer;\n -webkit-transition: 0.2s;\n transition: 0.2s;\n\n &:hover {\n color: mix(#000, $primary-color, 25%);\n }\n}\n\n.search-icon {\n width: 100%;\n height: 100%;\n}\n\n.search-content {\n display: none;\n visibility: hidden;\n padding-top: 1em;\n padding-bottom: 1em;\n\n &__inner-wrap {\n width: 100%;\n margin-left: auto;\n margin-right: auto;\n padding-left: 1em;\n padding-right: 1em;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n -webkit-animation-delay: 0.15s;\n animation-delay: 0.15s;\n\n @include breakpoint($x-large) {\n max-width: $max-width;\n }\n\n }\n\n &__form {\n background-color: transparent;\n }\n\n .search-input {\n display: block;\n margin-bottom: 0;\n padding: 0;\n border: none;\n outline: none;\n box-shadow: none;\n background-color: transparent;\n font-size: $type-size-3;\n\n @include breakpoint($large) {\n font-size: $type-size-2;\n }\n\n @include breakpoint($x-large) {\n font-size: $type-size-1;\n }\n }\n\n &.is--visible {\n display: block;\n visibility: visible;\n\n &::after {\n content: \"\";\n display: block;\n }\n }\n\n .results__found {\n margin-top: 0.5em;\n font-size: $type-size-6;\n }\n\n .archive__item {\n margin-bottom: 2em;\n\n @include breakpoint($large) {\n width: 75%;\n }\n\n @include breakpoint($x-large) {\n width: 50%;\n }\n }\n\n .archive__item-title {\n margin-top: 0;\n }\n\n .archive__item-excerpt {\n margin-bottom: 0;\n }\n}\n\n/* Algolia search */\n\n.ais-search-box {\n max-width: 100% !important;\n margin-bottom: 2em;\n}\n\n.archive__item-title .ais-Highlight {\n color: $primary-color;\n font-style: normal;\n text-decoration: underline;\n}\n\n.archive__item-excerpt .ais-Highlight {\n color: $primary-color;\n font-style: normal;\n font-weight: bold;\n}\n","/* ==========================================================================\n Syntax highlighting\n ========================================================================== */\n\ndiv.highlighter-rouge,\nfigure.highlight {\n position: relative;\n margin-bottom: 1em;\n background: $base00;\n color: $base05;\n font-family: $monospace;\n font-size: $type-size-6;\n line-height: 1.8;\n border-radius: $border-radius;\n\n > pre,\n pre.highlight {\n margin: 0;\n padding: 1em;\n }\n}\n\n.highlight table {\n margin-bottom: 0;\n font-size: 1em;\n border: 0;\n\n td {\n padding: 0;\n width: calc(100% - 1em);\n border: 0;\n\n /* line numbers*/\n &.gutter,\n &.rouge-gutter {\n padding-right: 1em;\n width: 1em;\n color: $base04;\n border-right: 1px solid $base04;\n text-align: right;\n }\n\n /* code */\n &.code,\n &.rouge-code {\n padding-left: 1em;\n }\n }\n\n pre {\n margin: 0;\n }\n}\n\n.highlight pre {\n width: 100%;\n}\n\n.highlight .hll {\n background-color: $base06;\n}\n.highlight {\n .c {\n /* Comment */\n color: $base04;\n }\n .err {\n /* Error */\n color: $base08;\n }\n .k {\n /* Keyword */\n color: $base0e;\n }\n .l {\n /* Literal */\n color: $base09;\n }\n .n {\n /* Name */\n color: $base05;\n }\n .o {\n /* Operator */\n color: $base0c;\n }\n .p {\n /* Punctuation */\n color: $base05;\n }\n .cm {\n /* Comment.Multiline */\n color: $base04;\n }\n .cp {\n /* Comment.Preproc */\n color: $base04;\n }\n .c1 {\n /* Comment.Single */\n color: $base04;\n }\n .cs {\n /* Comment.Special */\n color: $base04;\n }\n .gd {\n /* Generic.Deleted */\n color: $base08;\n }\n .ge {\n /* Generic.Emph */\n font-style: italic;\n }\n .gh {\n /* Generic.Heading */\n color: $base05;\n font-weight: bold;\n }\n .gi {\n /* Generic.Inserted */\n color: $base0b;\n }\n .gp {\n /* Generic.Prompt */\n color: $base04;\n font-weight: bold;\n }\n .gs {\n /* Generic.Strong */\n font-weight: bold;\n }\n .gu {\n /* Generic.Subheading */\n color: $base0c;\n font-weight: bold;\n }\n .kc {\n /* Keyword.Constant */\n color: $base0e;\n }\n .kd {\n /* Keyword.Declaration */\n color: $base0e;\n }\n .kn {\n /* Keyword.Namespace */\n color: $base0c;\n }\n .kp {\n /* Keyword.Pseudo */\n color: $base0e;\n }\n .kr {\n /* Keyword.Reserved */\n color: $base0e;\n }\n .kt {\n /* Keyword.Type */\n color: $base0a;\n }\n .ld {\n /* Literal.Date */\n color: $base0b;\n }\n .m {\n /* Literal.Number */\n color: $base09;\n }\n .s {\n /* Literal.String */\n color: $base0b;\n }\n .na {\n /* Name.Attribute */\n color: $base0d;\n }\n .nb {\n /* Name.Builtin */\n color: $base05;\n }\n .nc {\n /* Name.Class */\n color: $base0a;\n }\n .no {\n /* Name.Constant */\n color: $base08;\n }\n .nd {\n /* Name.Decorator */\n color: $base0c;\n }\n .ni {\n /* Name.Entity */\n color: $base05;\n }\n .ne {\n /* Name.Exception */\n color: $base08;\n }\n .nf {\n /* Name.Function */\n color: $base0d;\n }\n .nl {\n /* Name.Label */\n color: $base05;\n }\n .nn {\n /* Name.Namespace */\n color: $base0a;\n }\n .nx {\n /* Name.Other */\n color: $base0d;\n }\n .py {\n /* Name.Property */\n color: $base05;\n }\n .nt {\n /* Name.Tag */\n color: $base0c;\n }\n .nv {\n /* Name.Variable */\n color: $base08;\n }\n .ow {\n /* Operator.Word */\n color: $base0c;\n }\n .w {\n /* Text.Whitespace */\n color: $base05;\n }\n .mf {\n /* Literal.Number.Float */\n color: $base09;\n }\n .mh {\n /* Literal.Number.Hex */\n color: $base09;\n }\n .mi {\n /* Literal.Number.Integer */\n color: $base09;\n }\n .mo {\n /* Literal.Number.Oct */\n color: $base09;\n }\n .sb {\n /* Literal.String.Backtick */\n color: $base0b;\n }\n .sc {\n /* Literal.String.Char */\n color: $base05;\n }\n .sd {\n /* Literal.String.Doc */\n color: $base04;\n }\n .s2 {\n /* Literal.String.Double */\n color: $base0b;\n }\n .se {\n /* Literal.String.Escape */\n color: $base09;\n }\n .sh {\n /* Literal.String.Heredoc */\n color: $base0b;\n }\n .si {\n /* Literal.String.Interpol */\n color: $base09;\n }\n .sx {\n /* Literal.String.Other */\n color: $base0b;\n }\n .sr {\n /* Literal.String.Regex */\n color: $base0b;\n }\n .s1 {\n /* Literal.String.Single */\n color: $base0b;\n }\n .ss {\n /* Literal.String.Symbol */\n color: $base0b;\n }\n .bp {\n /* Name.Builtin.Pseudo */\n color: $base05;\n }\n .vc {\n /* Name.Variable.Class */\n color: $base08;\n }\n .vg {\n /* Name.Variable.Global */\n color: $base08;\n }\n .vi {\n /* Name.Variable.Instance */\n color: $base08;\n }\n .il {\n /* Literal.Number.Integer.Long */\n color: $base09;\n }\n}\n\n.gist {\n th, td {\n border-bottom: 0;\n }\n}","/* ==========================================================================\n UTILITY CLASSES\n ========================================================================== */\n\n/*\n Visibility\n ========================================================================== */\n\n/* http://www.456bereastreet.com/archive/200711/screen_readers_sometimes_ignore_displaynone/ */\n\n.hidden,\n.is--hidden {\n display: none;\n visibility: hidden;\n}\n\n/* for preloading images */\n\n.load {\n display: none;\n}\n\n.transparent {\n opacity: 0;\n}\n\n/* https://developer.yahoo.com/blogs/ydn/clip-hidden-content-better-accessibility-53456.html */\n\n.visually-hidden,\n.screen-reader-text,\n.screen-reader-text span,\n.screen-reader-shortcut {\n position: absolute !important;\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px !important;\n width: 1px !important;\n border: 0 !important;\n overflow: hidden;\n}\n\nbody:hover .visually-hidden a,\nbody:hover .visually-hidden input,\nbody:hover .visually-hidden button {\n display: none !important;\n}\n\n/* screen readers */\n\n.screen-reader-text:focus,\n.screen-reader-shortcut:focus {\n clip: auto !important;\n height: auto !important;\n width: auto !important;\n display: block;\n font-size: 1em;\n font-weight: bold;\n padding: 15px 23px 14px;\n background: #fff;\n z-index: 100000;\n text-decoration: none;\n box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);\n}\n\n/*\n Skip links\n ========================================================================== */\n\n.skip-link {\n position: fixed;\n z-index: 20;\n margin: 0;\n font-family: $sans-serif;\n white-space: nowrap;\n}\n\n.skip-link li {\n height: 0;\n width: 0;\n list-style: none;\n}\n\n/*\n Type\n ========================================================================== */\n\n.text-left {\n text-align: left;\n}\n\n.text-center {\n text-align: center;\n}\n\n.text-right {\n text-align: right;\n}\n\n.text-justify {\n text-align: justify;\n}\n\n.text-nowrap {\n white-space: nowrap;\n}\n\n/*\n Task lists\n ========================================================================== */\n\n.task-list {\n padding:0;\n\n li {\n list-style-type: none;\n }\n\n .task-list-item-checkbox {\n margin-right: 0.5em;\n opacity: 1;\n }\n}\n\n.task-list .task-list {\n margin-left: 1em;\n}\n\n/*\n Alignment\n ========================================================================== */\n\n/* clearfix */\n\n.cf {\n clear: both;\n}\n\n.wrapper {\n margin-left: auto;\n margin-right: auto;\n width: 100%;\n}\n\n/*\n Images\n ========================================================================== */\n\n/* image align left */\n\n.align-left {\n display: block;\n margin-left: auto;\n margin-right: auto;\n\n @include breakpoint($small) {\n float: left;\n margin-right: 1em;\n }\n}\n\n/* image align right */\n\n.align-right {\n display: block;\n margin-left: auto;\n margin-right: auto;\n\n @include breakpoint($small) {\n float: right;\n margin-left: 1em;\n }\n}\n\n/* image align center */\n\n.align-center {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* file page content container */\n\n.full {\n @include breakpoint($large) {\n margin-right: -1 * span(2.5 of 12) !important;\n }\n}\n\n/*\n Icons\n ========================================================================== */\n\n.icon {\n display: inline-block;\n fill: currentColor;\n width: 1em;\n height: 1.1em;\n line-height: 1;\n position: relative;\n top: -0.1em;\n vertical-align: middle;\n}\n\n/* social icons*/\n\n.social-icons {\n .fas,\n .fab,\n .far,\n .fal {\n color: $text-color;\n }\n\n .fa-behance,\n .fa-behance-square {\n color: $behance-color;\n }\n\n .fa-bitbucket {\n color: $bitbucket-color;\n }\n\n .fa-dribbble,\n .fa-dribble-square {\n color: $dribbble-color;\n }\n\n .fa-facebook,\n .fa-facebook-square,\n .fa-facebook-f {\n color: $facebook-color;\n }\n\n .fa-flickr {\n color: $flickr-color;\n }\n\n .fa-foursquare {\n color: $foursquare-color;\n }\n\n .fa-github,\n .fa-github-alt,\n .fa-github-square {\n color: $github-color;\n }\n\n .fa-gitlab {\n color: $gitlab-color;\n }\n\n .fa-instagram {\n color: $instagram-color;\n }\n\n .fa-keybase {\n color: $keybase-color;\n }\n\n .fa-lastfm,\n .fa-lastfm-square {\n color: $lastfm-color;\n }\n\n .fa-linkedin,\n .fa-linkedin-in {\n color: $linkedin-color;\n }\n\n .fa-mastodon,\n .fa-mastodon-square {\n color: $mastodon-color;\n }\n\n .fa-pinterest,\n .fa-pinterest-p,\n .fa-pinterest-square {\n color: $pinterest-color;\n }\n\n .fa-reddit {\n color: $reddit-color;\n }\n\n .fa-rss,\n .fa-rss-square {\n color: $rss-color;\n }\n\n .fa-soundcloud {\n color: $soundcloud-color;\n }\n\n .fa-stack-exchange,\n .fa-stack-overflow {\n color: $stackoverflow-color;\n }\n\n .fa-tumblr,\n .fa-tumblr-square {\n color: $tumblr-color;\n }\n\n .fa-twitter,\n .fa-twitter-square {\n color: $twitter-color;\n }\n\n .fa-vimeo,\n .fa-vimeo-square,\n .fa-vimeo-v {\n color: $vimeo-color;\n }\n\n .fa-vine {\n color: $vine-color;\n }\n\n .fa-youtube {\n color: $youtube-color;\n }\n\n .fa-xing,\n .fa-xing-square {\n color: $xing-color;\n }\n}\n\n/*\n Navicons\n ========================================================================== */\n\n.navicon {\n position: relative;\n width: $navicon-width;\n height: $navicon-height;\n background: $primary-color;\n margin: auto;\n -webkit-transition: 0.3s;\n transition: 0.3s;\n\n &:before,\n &:after {\n content: \"\";\n position: absolute;\n left: 0;\n width: $navicon-width;\n height: $navicon-height;\n background: $primary-color;\n -webkit-transition: 0.3s;\n transition: 0.3s;\n }\n\n &:before {\n top: (-2 * $navicon-height);\n }\n\n &:after {\n bottom: (-2 * $navicon-height);\n }\n}\n\n.close .navicon {\n /* hide the middle line*/\n background: transparent;\n\n /* overlay the lines by setting both their top values to 0*/\n &:before,\n &:after {\n -webkit-transform-origin: 50% 50%;\n -ms-transform-origin: 50% 50%;\n transform-origin: 50% 50%;\n top: 0;\n width: $navicon-width;\n }\n\n /* rotate the lines to form the x shape*/\n &:before {\n -webkit-transform: rotate3d(0, 0, 1, 45deg);\n transform: rotate3d(0, 0, 1, 45deg);\n }\n &:after {\n -webkit-transform: rotate3d(0, 0, 1, -45deg);\n transform: rotate3d(0, 0, 1, -45deg);\n }\n}\n\n.greedy-nav__toggle {\n &:before {\n @supports (pointer-events: none) {\n content: '';\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n background-color: $background-color;\n -webkit-transition: $global-transition;\n transition: $global-transition;\n pointer-events: none;\n }\n }\n\n &.close {\n &:before {\n opacity: 0.9;\n -webkit-transition: $global-transition;\n transition: $global-transition;\n pointer-events: auto;\n }\n }\n}\n\n.greedy-nav__toggle:hover {\n .navicon,\n .navicon:before,\n .navicon:after {\n background: mix(#000, $primary-color, 25%);\n }\n\n &.close {\n .navicon {\n background: transparent;\n }\n }\n}\n\n/*\n Sticky, fixed to top content\n ========================================================================== */\n\n.sticky {\n @include breakpoint($large) {\n @include clearfix();\n position: -webkit-sticky;\n position: sticky;\n top: 2em;\n\n > * {\n display: block;\n }\n }\n}\n\n/*\n Wells\n ========================================================================== */\n\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: $border-radius;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n\n/*\n Modals\n ========================================================================== */\n\n.show-modal {\n overflow: hidden;\n position: relative;\n\n &:before {\n position: absolute;\n content: \"\";\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 999;\n background-color: rgba(255, 255, 255, 0.85);\n }\n\n .modal {\n display: block;\n }\n}\n\n.modal {\n display: none;\n position: fixed;\n width: 300px;\n top: 50%;\n left: 50%;\n margin-left: -150px;\n margin-top: -150px;\n min-height: 0;\n z-index: 9999;\n background: #fff;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n box-shadow: $box-shadow;\n\n &__title {\n margin: 0;\n padding: 0.5em 1em;\n }\n\n &__supporting-text {\n padding: 0 1em 0.5em 1em;\n }\n\n &__actions {\n padding: 0.5em 1em;\n border-top: 1px solid $border-color;\n }\n}\n\n/*\n Footnotes\n ========================================================================== */\n\n.footnote {\n color: mix(#fff, $gray, 25%);\n text-decoration: none;\n}\n\n.footnotes {\n color: mix(#fff, $gray, 25%);\n\n ol,\n li,\n p {\n margin-bottom: 0;\n font-size: $type-size-6;\n }\n}\n\na.reversefootnote {\n color: $gray;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n/*\n Required\n ========================================================================== */\n\n.required {\n color: $danger-color;\n font-weight: bold;\n}\n\n/*\n Google Custom Search Engine\n ========================================================================== */\n\n.gsc-control-cse {\n table,\n tr,\n td {\n border: 0; /* remove table borders widget */\n }\n}\n\n/*\n Responsive Video Embed\n ========================================================================== */\n\n.responsive-video-container {\n position: relative;\n margin-bottom: 1em;\n padding-bottom: 56.25%;\n height: 0;\n overflow: hidden;\n max-width: 100%;\n\n iframe,\n object,\n embed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n}\n\n// full screen video fixes\n:-webkit-full-screen-ancestor {\n .masthead,\n .page__footer {\n position: static;\n }\n}\n","/* ==========================================================================\n SINGLE PAGE/POST\n ========================================================================== */\n\n#main {\n @include clearfix;\n margin-left: auto;\n margin-right: auto;\n padding-left: 1em;\n padding-right: 1em;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n max-width: 100%;\n -webkit-animation-delay: 0.15s;\n animation-delay: 0.15s;\n\n @include breakpoint($x-large) {\n max-width: $max-width;\n }\n}\n\nbody {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n min-height: 100vh;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.initial-content,\n.search-content {\n flex: 1 0 auto;\n}\n\n.page {\n @include breakpoint($large) {\n float: right;\n width: calc(100% - #{$right-sidebar-width-narrow});\n padding-right: $right-sidebar-width-narrow;\n }\n\n @include breakpoint($x-large) {\n width: calc(100% - #{$right-sidebar-width});\n padding-right: $right-sidebar-width;\n }\n\n .page__inner-wrap {\n float: left;\n margin-top: 1em;\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n clear: both;\n\n .page__content,\n .page__meta,\n .page__share {\n position: relative;\n float: left;\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n clear: both;\n }\n }\n}\n\n.page__title {\n margin-top: 0;\n line-height: 1;\n\n a {\n color: $text-color;\n text-decoration: none;\n }\n\n & + .page__meta {\n margin-top: -0.5em;\n }\n}\n\n.page__lead {\n font-family: $global-font-family;\n font-size: $type-size-4;\n}\n\n.page__content {\n h2 {\n padding-bottom: 0.5em;\n border-bottom: 1px solid $border-color;\n }\n\n\th1, h2, h3, h4, h5, h6 {\n\t\t.header-link {\n\t\t\tposition: relative;\n\t\t\tleft: 0.5em;\n\t\t\topacity: 0;\n\t\t\tfont-size: $type-size-6;\n\t\t\t-webkit-transition: opacity 0.2s ease-in-out 0.1s;\n\t\t\t-moz-transition: opacity 0.2s ease-in-out 0.1s;\n\t\t\t-o-transition: opacity 0.2s ease-in-out 0.1s;\n\t\t\ttransition: opacity 0.2s ease-in-out 0.1s;\n\t\t}\n\n\t\t&:hover .header-link {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n p,\n li,\n dl {\n font-size: $type-size-5;\n }\n\n /* paragraph indents */\n p {\n margin: 0 0 $indent-var;\n\n /* sibling indentation*/\n @if $paragraph-indent == true {\n & + p {\n text-indent: $indent-var;\n margin-top: -($indent-var);\n }\n }\n }\n\n a:not(.btn) {\n &:hover {\n text-decoration: underline;\n\n img {\n box-shadow: 0 0 10px rgba(#000, 0.25);\n }\n }\n }\n\n dt {\n margin-top: 1em;\n font-family: $sans-serif;\n font-weight: bold;\n }\n\n dd {\n margin-left: 1em;\n font-family: $sans-serif;\n font-size: $type-size-6;\n }\n\n .small {\n font-size: $type-size-6;\n }\n\n /* blockquote citations */\n blockquote + .small {\n margin-top: -1.5em;\n padding-left: 1.25rem;\n }\n}\n\n.page__hero {\n position: relative;\n margin-bottom: 2em;\n @include clearfix;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n -webkit-animation-delay: 0.25s;\n animation-delay: 0.25s;\n\n &--overlay {\n position: relative;\n margin-bottom: 2em;\n padding: 3em 0;\n @include clearfix;\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n -webkit-animation: $intro-transition;\n animation: $intro-transition;\n -webkit-animation-delay: 0.25s;\n animation-delay: 0.25s;\n\n a {\n color: #fff;\n }\n\n .wrapper {\n padding-left: 1em;\n padding-right: 1em;\n\n @include breakpoint($x-large) {\n max-width: $x-large;\n }\n }\n\n .page__title,\n .page__meta,\n .page__lead,\n .btn {\n color: #fff;\n text-shadow: 1px 1px 4px rgba(#000, 0.5);\n }\n\n .page__lead {\n max-width: $medium;\n }\n\n .page__title {\n font-size: $type-size-2;\n\n @include breakpoint($small) {\n font-size: $type-size-1;\n }\n }\n }\n}\n\n.page__hero-image {\n width: 100%;\n height: auto;\n -ms-interpolation-mode: bicubic;\n}\n\n.page__hero-caption {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: 0 auto;\n padding: 2px 5px;\n color: #fff;\n font-family: $caption-font-family;\n font-size: $type-size-7;\n background: #000;\n text-align: right;\n z-index: 5;\n opacity: 0.5;\n border-radius: $border-radius 0 0 0;\n\n @include breakpoint($large) {\n padding: 5px 10px;\n }\n\n a {\n color: #fff;\n text-decoration: none;\n }\n}\n\n/*\n Social sharing\n ========================================================================== */\n\n.page__share {\n margin-top: 2em;\n padding-top: 1em;\n border-top: 1px solid $border-color;\n\n @include breakpoint(max-width $small) {\n .btn span {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n }\n }\n}\n\n.page__share-title {\n margin-bottom: 10px;\n font-size: $type-size-6;\n text-transform: uppercase;\n}\n\n/*\n Page meta\n ========================================================================== */\n\n.page__meta {\n margin-top: 2em;\n color: $muted-text-color;\n font-family: $sans-serif;\n font-size: $type-size-6;\n\n p {\n margin: 0;\n }\n\n a {\n color: inherit;\n }\n}\n\n.page__meta-title {\n margin-bottom: 10px;\n font-size: $type-size-6;\n text-transform: uppercase;\n}\n\n.page__meta-sep::before {\n content: \"\\2022\";\n padding-left: 0.5em;\n padding-right: 0.5em;\n}\n\n/*\n Page taxonomy\n ========================================================================== */\n\n.page__taxonomy {\n .sep {\n display: none;\n }\n\n strong {\n margin-right: 10px;\n }\n}\n\n.page__taxonomy-item {\n display: inline-block;\n margin-right: 5px;\n margin-bottom: 8px;\n padding: 5px 10px;\n text-decoration: none;\n border: 1px solid mix(#000, $border-color, 25%);\n border-radius: $border-radius;\n\n &:hover {\n text-decoration: none;\n color: $link-color-hover;\n }\n}\n\n.taxonomy__section {\n margin-bottom: 2em;\n padding-bottom: 1em;\n\n &:not(:last-child) {\n border-bottom: solid 1px $border-color;\n }\n\n .archive__item-title {\n margin-top: 0;\n }\n\n .archive__subtitle {\n clear: both;\n border: 0;\n }\n\n + .taxonomy__section {\n margin-top: 2em;\n }\n}\n\n.taxonomy__title {\n margin-bottom: 0.5em;\n color: $muted-text-color;\n}\n\n.taxonomy__count {\n color: $muted-text-color;\n}\n\n.taxonomy__index {\n display: grid;\n grid-column-gap: 2em;\n grid-template-columns: repeat(2, 1fr);\n margin: 1.414em 0;\n padding: 0;\n font-size: $type-size-6;\n list-style: none;\n\n @include breakpoint($large) {\n grid-template-columns: repeat(3, 1fr);\n }\n\n a {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding: 0.25em 0;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n color: inherit;\n text-decoration: none;\n border-bottom: 1px solid $border-color;\n }\n}\n\n.back-to-top {\n display: block;\n clear: both;\n color: $muted-text-color;\n font-size: $type-size-8;\n text-transform: uppercase;\n text-align: right;\n text-decoration: none;\n}\n\n/*\n Comments\n ========================================================================== */\n\n.page__comments {\n float: left;\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n clear: both;\n}\n\n.page__comments-title {\n margin-top: 2rem;\n margin-bottom: 10px;\n padding-top: 2rem;\n font-size: $type-size-6;\n border-top: 1px solid $border-color;\n text-transform: uppercase;\n}\n\n.page__comments-form {\n -webkit-transition: $global-transition;\n transition: $global-transition;\n\n &.disabled {\n input,\n button,\n textarea,\n label {\n pointer-events: none;\n cursor: not-allowed;\n filter: alpha(opacity=65);\n box-shadow: none;\n opacity: 0.65;\n }\n }\n}\n\n.comment {\n @include clearfix();\n margin: 1em 0;\n\n &:not(:last-child) {\n border-bottom: 1px solid $border-color;\n }\n}\n\n.comment__avatar-wrapper {\n float: left;\n width: 60px;\n height: 60px;\n\n @include breakpoint($large) {\n width: 100px;\n height: 100px;\n }\n}\n\n.comment__avatar {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n\n @include breakpoint($large) {\n width: 80px;\n height: 80px;\n padding: 5px;\n border: 1px solid $border-color;\n }\n}\n\n.comment__content-wrapper {\n float: right;\n width: calc(100% - 60px);\n\n @include breakpoint($large) {\n width: calc(100% - 100px);\n }\n}\n\n.comment__author {\n margin: 0;\n\n a {\n text-decoration: none;\n }\n}\n\n.comment__date {\n @extend .page__meta;\n margin: 0;\n\n a {\n text-decoration: none;\n }\n}\n\n/*\n Related\n ========================================================================== */\n\n.page__related {\n @include clearfix();\n float: left;\n margin-top: 2em;\n padding-top: 1em;\n border-top: 1px solid $border-color;\n\n @include breakpoint($large) {\n float: right;\n width: calc(100% - #{$right-sidebar-width-narrow});\n }\n\n @include breakpoint($x-large) {\n width: calc(100% - #{$right-sidebar-width});\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n}\n\n.page__related-title {\n margin-bottom: 10px;\n font-size: $type-size-6;\n text-transform: uppercase;\n}\n\n/*\n Wide Pages\n ========================================================================== */\n\n.wide {\n .page {\n @include breakpoint($large) {\n padding-right: 0;\n }\n\n @include breakpoint($x-large) {\n padding-right: 0;\n }\n }\n\n .page__related {\n @include breakpoint($large) {\n padding-right: 0;\n }\n\n @include breakpoint($x-large) {\n padding-right: 0;\n }\n }\n}","/* ==========================================================================\n ARCHIVE\n ========================================================================== */\n\n.archive {\n margin-top: 1em;\n margin-bottom: 2em;\n\n @include breakpoint($large) {\n float: right;\n width: calc(100% - #{$right-sidebar-width-narrow});\n padding-right: $right-sidebar-width-narrow;\n }\n\n @include breakpoint($x-large) {\n width: calc(100% - #{$right-sidebar-width});\n padding-right: $right-sidebar-width;\n }\n}\n\n.archive__item {\n position: relative;\n\n a {\n position: relative;\n z-index: 10;\n }\n\n a[rel=\"permalink\"] {\n position: static;\n }\n}\n\n.archive__subtitle {\n margin: 1.414em 0 0.5em;\n padding-bottom: 0.5em;\n font-size: $type-size-5;\n color: $muted-text-color;\n border-bottom: 1px solid $border-color;\n\n + .list__item .archive__item-title {\n margin-top: 0.5em;\n }\n}\n\n.archive__item-title {\n margin-bottom: 0.25em;\n font-family: $sans-serif-narrow;\n line-height: initial;\n overflow: hidden;\n text-overflow: ellipsis;\n\n a[rel=\"permalink\"]::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n }\n\n a + a {\n opacity: 0.5;\n }\n}\n\n/* remove border*/\n.page__content {\n .archive__item-title {\n margin-top: 1em;\n border-bottom: none;\n }\n}\n\n.archive__item-excerpt {\n margin-top: 0;\n font-size: $type-size-6;\n\n & + p {\n text-indent: 0;\n }\n\n a {\n position: relative;\n }\n}\n\n.archive__item-teaser {\n position: relative;\n border-radius: $border-radius;\n overflow: hidden;\n\n img {\n width: 100%;\n }\n}\n\n.archive__item-caption {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: 0 auto;\n padding: 2px 5px;\n color: #fff;\n font-family: $caption-font-family;\n font-size: $type-size-8;\n background: #000;\n text-align: right;\n z-index: 5;\n opacity: 0.5;\n border-radius: $border-radius 0 0 0;\n\n @include breakpoint($large) {\n padding: 5px 10px;\n }\n\n a {\n color: #fff;\n text-decoration: none;\n }\n}\n\n/*\n List view\n ========================================================================== */\n\n.list__item {\n .page__meta {\n margin: 0 0 4px;\n font-size: 0.6em;\n }\n}\n\n/*\n Grid view\n ========================================================================== */\n\n.archive {\n .grid__wrapper {\n /* extend grid elements to the right */\n\n @include breakpoint($large) {\n margin-right: -1 * $right-sidebar-width-narrow;\n }\n\n @include breakpoint($x-large) {\n margin-right: -1 * $right-sidebar-width;\n }\n }\n}\n\n.grid__item {\n margin-bottom: 2em;\n\n @include breakpoint($small) {\n float: left;\n width: span(5 of 10);\n\n &:nth-child(2n + 1) {\n clear: both;\n margin-left: 0;\n }\n\n &:nth-child(2n + 2) {\n clear: none;\n margin-left: gutter(of 10);\n }\n }\n\n @include breakpoint($medium) {\n margin-left: 0; /* override margin*/\n margin-right: 0; /* override margin*/\n width: span(3 of 12);\n\n &:nth-child(2n + 1) {\n clear: none;\n }\n\n &:nth-child(4n + 1) {\n clear: both;\n }\n\n &:nth-child(4n + 2) {\n clear: none;\n margin-left: gutter(1 of 12);\n }\n\n &:nth-child(4n + 3) {\n clear: none;\n margin-left: gutter(1 of 12);\n }\n\n &:nth-child(4n + 4) {\n clear: none;\n margin-left: gutter(1 of 12);\n }\n }\n\n .page__meta {\n margin: 0 0 4px;\n font-size: 0.6em;\n }\n\n .page__meta-sep {\n display: block;\n\n &::before {\n display: none;\n }\n }\n\n .archive__item-title {\n margin-top: 0.5em;\n font-size: $type-size-5;\n }\n\n .archive__item-excerpt {\n display: none;\n\n @include breakpoint($medium) {\n display: block;\n font-size: $type-size-6;\n }\n }\n\n .archive__item-teaser {\n @include breakpoint($small) {\n max-height: 200px;\n }\n\n @include breakpoint($medium) {\n max-height: 120px;\n }\n }\n}\n\n/*\n Features\n ========================================================================== */\n\n.feature__wrapper {\n @include clearfix();\n margin-bottom: 2em;\n border-bottom: 1px solid $border-color;\n\n .archive__item-title {\n margin-bottom: 0;\n }\n}\n\n.feature__item {\n position: relative;\n margin-bottom: 2em;\n font-size: 1.125em;\n\n @include breakpoint($small) {\n float: left;\n margin-bottom: 0;\n width: span(4 of 12);\n\n &:nth-child(3n + 1) {\n clear: both;\n margin-left: 0;\n }\n\n &:nth-child(3n + 2) {\n clear: none;\n margin-left: gutter(of 12);\n }\n\n &:nth-child(3n + 3) {\n clear: none;\n margin-left: gutter(of 12);\n }\n\n .feature__item-teaser {\n max-height: 200px;\n overflow: hidden;\n }\n }\n\n .archive__item-body {\n padding-left: gutter(1 of 12);\n padding-right: gutter(1 of 12);\n }\n\n a.btn::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n }\n\n &--left {\n position: relative;\n float: left;\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n clear: both;\n font-size: 1.125em;\n\n .archive__item {\n float: left;\n }\n\n .archive__item-teaser {\n margin-bottom: 2em;\n }\n\n a.btn::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n }\n\n @include breakpoint($small) {\n .archive__item-teaser {\n float: left;\n width: span(5 of 12);\n }\n\n .archive__item-body {\n float: right;\n padding-left: gutter(0.5 of 12);\n padding-right: gutter(1 of 12);\n width: span(7 of 12);\n }\n }\n }\n\n &--right {\n position: relative;\n float: left;\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n clear: both;\n font-size: 1.125em;\n\n .archive__item {\n float: left;\n }\n\n .archive__item-teaser {\n margin-bottom: 2em;\n }\n\n a.btn::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n }\n\n @include breakpoint($small) {\n text-align: right;\n\n .archive__item-teaser {\n float: right;\n width: span(5 of 12);\n }\n\n .archive__item-body {\n float: left;\n width: span(7 of 12);\n padding-left: gutter(0.5 of 12);\n padding-right: gutter(1 of 12);\n }\n }\n }\n\n &--center {\n position: relative;\n float: left;\n margin-left: 0;\n margin-right: 0;\n width: 100%;\n clear: both;\n font-size: 1.125em;\n\n .archive__item {\n float: left;\n width: 100%;\n }\n\n .archive__item-teaser {\n margin-bottom: 2em;\n }\n\n a.btn::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n }\n\n @include breakpoint($small) {\n text-align: center;\n\n .archive__item-teaser {\n margin: 0 auto;\n width: span(5 of 12);\n }\n\n .archive__item-body {\n margin: 0 auto;\n width: span(7 of 12);\n }\n }\n }\n}\n\n/* Place inside an archive layout */\n\n.archive {\n .feature__wrapper {\n .archive__item-title {\n margin-top: 0.25em;\n font-size: 1em;\n }\n }\n\n .feature__item,\n .feature__item--left,\n .feature__item--center,\n .feature__item--right {\n font-size: 1em;\n }\n}\n\n/*\n Wide Pages\n ========================================================================== */\n\n .wide {\n .archive {\n @include breakpoint($large) {\n padding-right: 0;\n }\n\n @include breakpoint($x-large) {\n padding-right: 0;\n }\n }\n}\n\n/* Place inside a single layout */\n\n.layout--single {\n\t.feature__wrapper {\n\t\tdisplay: inline-block;\n\t}\n}\n","/* ==========================================================================\n SIDEBAR\n ========================================================================== */\n\n/*\n Default\n ========================================================================== */\n\n.sidebar {\n @include clearfix();\n // @include breakpoint(max-width $large) {\n // /* fix z-index order of follow links */\n // position: relative;\n // z-index: 10;\n // -webkit-transform: translate3d(0, 0, 0);\n // transform: translate3d(0, 0, 0);\n // }\n\n @include breakpoint($large) {\n float: left;\n width: calc(#{$right-sidebar-width-narrow} - 1em);\n opacity: 0.75;\n -webkit-transition: opacity 0.2s ease-in-out;\n transition: opacity 0.2s ease-in-out;\n\n &:hover {\n opacity: 1;\n }\n\n &.sticky {\n overflow-y: auto;\n /* calculate height of nav list\n viewport height - nav height - masthead x-padding\n */\n max-height: calc(100vh - #{$nav-height} - 2em);\n }\n }\n\n @include breakpoint($x-large) {\n width: calc(#{$right-sidebar-width} - 1em);\n }\n\n > * {\n margin-top: 1em;\n margin-bottom: 1em;\n }\n\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-bottom: 0;\n font-family: $sans-serif-narrow;\n }\n\n p,\n li {\n font-family: $sans-serif;\n font-size: $type-size-6;\n line-height: 1.5;\n }\n\n img {\n width: 100%;\n\n &.emoji {\n width: 20px;\n height: 20px;\n }\n }\n}\n\n.sidebar__right {\n margin-bottom: 1em;\n\n @include breakpoint($large) {\n position: absolute;\n top: 0;\n right: 0;\n width: $right-sidebar-width-narrow;\n margin-right: -1 * $right-sidebar-width-narrow;\n padding-left: 1em;\n z-index: 10;\n\n &.sticky {\n @include clearfix();\n position: -webkit-sticky;\n position: sticky;\n top: 2em;\n float: right;\n\n .toc {\n .toc__menu {\n overflow-y: auto;\n max-height: calc(100vh - 7em);\n }\n }\n }\n }\n\n @include breakpoint($x-large) {\n width: $right-sidebar-width;\n margin-right: -1 * $right-sidebar-width;\n }\n}\n\n.splash .sidebar__right {\n @include breakpoint($large) {\n position: relative;\n float: right;\n margin-right: 0;\n }\n\n @include breakpoint($x-large) {\n margin-right: 0;\n }\n}\n\n/*\n Author profile and links\n ========================================================================== */\n\n.author__avatar {\n display: table-cell;\n vertical-align: top;\n width: 36px;\n height: 36px;\n\n @include breakpoint($large) {\n display: block;\n width: auto;\n height: auto;\n }\n\n img {\n max-width: 110px;\n border-radius: 50%;\n\n @include breakpoint($large) {\n padding: 5px;\n border: 1px solid $border-color;\n }\n }\n}\n\n.author__content {\n display: table-cell;\n vertical-align: top;\n padding-left: 15px;\n padding-right: 25px;\n line-height: 1;\n\n @include breakpoint($large) {\n display: block;\n width: 100%;\n padding-left: 0;\n padding-right: 0;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n}\n\n.author__name {\n margin: 0;\n\n @include breakpoint($large) {\n margin-top: 10px;\n margin-bottom: 10px;\n }\n}\n.sidebar .author__name {\n font-family: $sans-serif;\n font-size: $type-size-5;\n}\n\n.author__bio {\n margin: 0;\n\n @include breakpoint($large) {\n margin-top: 10px;\n margin-bottom: 20px;\n }\n}\n\n.author__urls-wrapper {\n position: relative;\n display: table-cell;\n vertical-align: middle;\n font-family: $sans-serif;\n z-index: 20;\n cursor: pointer;\n\n li:last-child {\n a {\n margin-bottom: 0;\n }\n }\n\n .author__urls {\n span.label {\n padding-left: 5px;\n }\n }\n\n @include breakpoint($large) {\n display: block;\n }\n\n button {\n position: relative;\n margin-bottom: 0;\n\n &:before {\n @supports (pointer-events: none) {\n content: '';\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n }\n }\n\n &.open {\n &:before {\n pointer-events: auto;\n }\n }\n\n @include breakpoint($large) {\n display: none;\n }\n }\n}\n\n.author__urls {\n display: none;\n position: absolute;\n right: 0;\n margin-top: 15px;\n padding: 10px;\n list-style-type: none;\n border: 1px solid $border-color;\n border-radius: $border-radius;\n background: $background-color;\n box-shadow: 0 2px 4px 0 rgba(#000, 0.16), 0 2px 10px 0 rgba(#000, 0.12);\n cursor: default;\n\n &.is--visible {\n display: block;\n }\n\n @include breakpoint($large) {\n display: block;\n position: relative;\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n box-shadow: none;\n }\n\n &:before {\n display: block;\n content: \"\";\n position: absolute;\n top: -11px;\n left: calc(50% - 10px);\n width: 0;\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: $border-color transparent;\n z-index: 0;\n\n @include breakpoint($large) {\n display: none;\n }\n }\n\n &:after {\n display: block;\n content: \"\";\n position: absolute;\n top: -10px;\n left: calc(50% - 10px);\n width: 0;\n border-style: solid;\n border-width: 0 10px 10px;\n border-color: $background-color transparent;\n z-index: 1;\n\n @include breakpoint($large) {\n display: none;\n }\n }\n\n ul {\n padding: 10px;\n list-style-type: none;\n }\n\n li {\n white-space: nowrap;\n }\n\n a {\n display: block;\n margin-bottom: 5px;\n padding-right: 5px;\n padding-top: 2px;\n padding-bottom: 2px;\n color: inherit;\n font-size: $type-size-5;\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n/*\n Wide Pages\n ========================================================================== */\n\n.wide .sidebar__right {\n margin-bottom: 1em;\n\n @include breakpoint($large) {\n position: initial;\n top: initial;\n right: initial;\n width: initial;\n margin-right: initial;\n padding-left: initial;\n z-index: initial;\n\n &.sticky {\n float: none;\n }\n }\n\n @include breakpoint($x-large) {\n width: initial;\n margin-right: initial;\n }\n}\n\n","/* ==========================================================================\n PRINT STYLES\n ========================================================================== */\n\n@media print {\n\n [hidden] {\n display: none;\n }\n\n * {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n }\n\n html {\n margin: 0;\n padding: 0;\n min-height: auto !important;\n font-size: 16px;\n }\n\n body {\n margin: 0 auto;\n background: #fff !important;\n color: #000 !important;\n font-size: 1rem;\n line-height: 1.5;\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n text-rendering: optimizeLegibility;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n color: #000;\n line-height: 1.2;\n margin-bottom: 0.75rem;\n margin-top: 0;\n }\n\n h1 {\n font-size: 2.5rem;\n }\n\n h2 {\n font-size: 2rem;\n }\n\n h3 {\n font-size: 1.75rem;\n }\n\n h4 {\n font-size: 1.5rem;\n }\n\n h5 {\n font-size: 1.25rem;\n }\n\n h6 {\n font-size: 1rem;\n }\n\n a,\n a:visited {\n color: #000;\n text-decoration: underline;\n word-wrap: break-word;\n }\n\n table {\n border-collapse: collapse;\n }\n\n thead {\n display: table-header-group;\n }\n\n table,\n th,\n td {\n border-bottom: 1px solid #000;\n }\n\n td,\n th {\n padding: 8px 16px;\n }\n\n img {\n border: 0;\n display: block;\n max-width: 100% !important;\n vertical-align: middle;\n }\n\n hr {\n border: 0;\n border-bottom: 2px solid #bbb;\n height: 0;\n margin: 2.25rem 0;\n padding: 0;\n }\n\n dt {\n font-weight: bold;\n }\n\n dd {\n margin: 0;\n margin-bottom: 0.75rem;\n }\n\n abbr[title],\n acronym[title] {\n border: 0;\n text-decoration: none;\n }\n\n table,\n blockquote,\n pre,\n code,\n figure,\n li,\n hr,\n ul,\n ol,\n a,\n tr {\n page-break-inside: avoid;\n }\n\n h2,\n h3,\n h4,\n p,\n a {\n orphans: 3;\n widows: 3;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n page-break-after: avoid;\n page-break-inside: avoid;\n }\n\n h1 + p,\n h2 + p,\n h3 + p {\n page-break-before: avoid;\n }\n\n img {\n page-break-after: auto;\n page-break-before: auto;\n page-break-inside: avoid;\n }\n\n pre {\n white-space: pre-wrap !important;\n word-wrap: break-word;\n }\n\n a[href^='http://']:after,\n a[href^='https://']:after,\n a[href^='ftp://']:after {\n content: \" (\" attr(href) \")\";\n font-size: 80%;\n }\n\n abbr[title]:after,\n acronym[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n #main {\n max-width: 100%;\n }\n\n .page {\n margin: 0;\n padding: 0;\n width: 100%;\n }\n\n .page-break,\n .page-break-before {\n page-break-before: always;\n }\n\n .page-break-after {\n page-break-after: always;\n }\n\n .no-print {\n display: none;\n }\n\n a.no-reformat:after {\n content: '';\n }\n\n abbr[title].no-reformat:after,\n acronym[title].no-reformat:after {\n content: '';\n }\n\n .page__hero-caption {\n color: #000 !important;\n background: #fff !important;\n opacity: 1;\n\n a {\n color: #000 !important;\n }\n }\n\n/*\n Hide the following elements on print\n ========================================================================== */\n\n .masthead,\n .toc,\n .page__share,\n .page__related,\n .pagination,\n .ads,\n .page__footer,\n .page__comments-form,\n .author__avatar,\n .author__content,\n .author__urls-wrapper,\n .nav__list,\n .sidebar,\n .adsbygoogle {\n display: none !important;\n height: 1px !important;\n }\n}","@charset \"utf-8\";\n\n@import \"minimal-mistakes/skins/dark\"; // skin\n@import \"minimal-mistakes\"; // main partials\n\n.page__content {\n\ttext-align: justify;\n}\n\nh2, h3 {\n\tmargin-bottom: 0px;\n\tfont-weight: bold;\n}\n\nh4 {\n\tfont-size: $h-size-5;\n\tmargin-bottom: 0px;\n\tfont-style: italic;\n}\n\nsummary {\n\tfont-size: $type-size-5;\n}\n\n.MathJax_Display {\n\tfont-size: $type-size-5;\n}\n\n.toc__menu a {\n\tfont-size: $type-size-3;\n}\n\n"],"file":"main.css"} \ No newline at end of file diff --git a/assets/images/android-chrome-192x192.png b/assets/images/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..aa0295c39fa0e309182f0a44cc7673ee7992ef16 GIT binary patch literal 19742 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 W7ZG&wLN%2D0000xCj8ih6w;jBmn@uLu%a% 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 ZgZ8LM+)rK!r2s>Kl;qXqDqp?(_&=&T&9wjk literal 0 HcmV?d00001 diff --git a/assets/images/apple-touch-icon.png b/assets/images/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b325251a32e3e8811b3695d2d759ed43c49860e8 GIT binary patch literal 18197 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 + + + + + #da532c + + + diff --git a/assets/images/dotgraph.svg b/assets/images/dotgraph.svg new file mode 100644 index 0000000..0da91c5 --- /dev/null +++ b/assets/images/dotgraph.svg @@ -0,0 +1,67 @@ + + + + + + +mygraph + + + +root + +root + + + +A + +A + + + +root->A + + + + + +B + +B + + + +root->B + + + + + +A->A + + + + + +B->A + + + + + +C + +C + + + +B->C + + + + + \ No newline at end of file diff --git a/assets/images/favicon-16x16.png b/assets/images/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..db77da7ef88a79cf5fac2edecf782640994717eb GIT binary patch literal 1136 zcmZ`%X;52L6uu;cuoT(~wTz=*38=QaR)bE^lFj{@K}loT)I*>rXDw}dckMP0N$QnkHi#GVXb6Y7=z z;*GH;bX0-Qjv2@KWIb+sC?o4|)Sx8gxT#T$>KoSXRczkvAR4R-*Qbrw|5&V?*?8P; z)77JT1*&g^0gE*kQ3Iv?OQUjF1lFWX=r<@~qyJv1uysxK#t+T^ zvEBiQ7B#4dt|_v{Mb=P|&`~+5A}Dy;S{O#E9F$*MNBP?w6kv_Y{@@sNp$5Qr91!{$h*v&)ETmDup$cIyn;<{-06RlcEN5c@b|y(96Cn(;7{`> zdtRP$4M)?9twn)smzL+oP%OpAVc$RJcNgV|oLeVedb*zZ#sRN8Kgpz*tV_zDU6x8e zM)ap;0{ScYxA?TraPLsq&h6647;eQZeOe6-ri3rxF&7yD%$-j3Qsy-{OFhc z?X`-YmZ1lezQM!6*45yezuh*uGWgCJpUrHcP0Wap%d zGxMLF@ZLpsAWS%0AUr2YNxR0%&CAIYXJxP?`MDV^ajrxJz(>{d=nl^h&xC~N6Afeh zg%m&!@(C09_y_r)tO%g{v$)cTk#u@cw~%F+n$T&+G%sqH25D?004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Rh1r!GlHda4^Q~&@5s!2paR9M5kmR*cpRTY50 zwf8>f+h;%_n2@!4NUQ@T{Oj9`GlkB#HtO zAOryglo*<#ATfdl2vBPaEp#%S&UEJfpL@>Pd-*W6Mxb=~>rT$YImuq@Ti;qc`$*@R zJ2t!43G?FOak}MVj`uRIIsK4^>c(qb8PA?^v$$l_;Kj#S`os5+i-8^Lt3QWgMAcu+!npqp zE%OJ%xOZiC-c|AF-+%dV0ivl*15?ZH5$j6Zn8L)V*lhhaiE6(Z?A(4!vAE~t{MDzJ zzw2us3V`&UyB|bO@ZE(+O|5mFR%28ZaS>V!aoOw(s(OR1XAg$)VB9?W@(ttXWEnIZ4~qUy~5q*~d3+VfYyaMz9x&H%vRrNspK(qiy? zQ*R?K#%3pAlE&&2)u?(0&|W~5 z7A8%cqP|3ZiET^~iV?OkNyvMMt5J34cG|||O}066FToFs11~dq$+zC40YKt9wz2M6 z&>a$|n0gyY8n}rKs4ox~;|ELl(Fz!YZOv?vxbf3s{^i^JaQPGMi?3z0`>FSCV7T)M ziuqR%mwZX$`d#YFM8^Y6V+!A2#AUN+s4!8TkatmEBCZDNk*L1AJhbnosJ-!SKUf+} zeD3Rr$eI9-7)ZBVj0R6AM%zuC{zHtzX0wQmaM>)VCk$86GAHDHOf5rfgt&x|_fB=q zbw37fr{~V*J4m>*|Ly<)>Ze|S?;l+9{iS=g8msz(YWWQ`RR2rr5^QrCG*GSV2V++U zwVowD?_E{XZ4a}#x=z%!^^P39BVRi}ZPU5f#uR?kdDzsl-696pJ`v**B&s7(jdFS4 z;o+=slP96R#P=6bRZP7J6Kulx?*hLDwgT@6Vcz^9*?1O{mwaiyF24@y z(W<~U)?wlX>I*;#!xchW;pW#vED!@N1BQ!$uN=+7+X8g| zejlSfPZwc4xZ5_TbBx1H%wlR8ReuQp-(N(iQ#Ky#)t499baFLml48>-w9K(GMY8i;@QP@R)MCiw|D$@~P#9Bj zCBh@}<=U|g01S3+$M+Xj)R*_z){J5-u6-hLI2{fKR4aU^gKB{ZEhLH|mA95;080XV zY|S$OFmw40h>397>?6LnuruT<=(xhYF-!g6g(TgxNDo|yttKED+pSe4htwjBkvEy}^szp3^8pgLFHLHC-S~K+sK=)nEz>)oTjsecZgvU{4 z5d-bR2?en4uvvf#IHV)IUI9G*<{3C9K=I2SiY7%>{?-_CsY|SywiB_kdf^DjkuZv` zR!azh-~%BK_-@%56vLlaRrR_U>1xnLRhEU#NV7;(*uIbZNiw!#x0>MR}k;k9jxAC?jJYtX{Qj+3rAh5rDBh%w~3L=w9I001R)MObuXVRU6WV{&C- zbY%cCFfuYNFf}bQFjO!%Ix#gmH8d+QFgh?WE&+<90000bbVXQnWMOn=I&E)cX=Zr< zGB7eSEig4LGB8vyH##vjIyE#aFfckWFkf6U7ytkOS9(-fbW&k=AaHVTW@&6?Aar?f zWguyAbYlPjc%0+%3K74o@Fyb;q9|HfiFTOlVv;P9t2`ZYF73*VAO;q%CezXKH8ZOx(1c*ol)aZj#Bk zZqtdA)(&>-*1`?SyJn>;yP{(#SSo_8Mr>-%@# z>ZVLVC@6ZxBKeH+C+$)!E0saK|=D8V{{*`w>286#2d;$2- z(5+K%X*Y>>e?z?)KmjoO{H&&b0sk>@^eo&=&mEs&o*)~Od7CPMeOXut2`ytYK+>=xtMdP+jpQ`)EJZraTOelxr6 z)s*Qk4|oVT)wHm~LhEA|+cIeJs-(lg^-*hG+MUhEGU|T}dT%~6{laAA`)Ko`&f2b3 z!FXsx%%YWp#kKsjEWwBWj^ zwJhoK_((!~Q^Tz0dU$R?zKLk%K&l<}Bb)kNUHWx8P~Un627&d!O_?-|^_hMq0eb+G z?86la2Yuyni)>EQ|CWzxmfjoQ^X24U|Q!d2y#luWar(PzwAH@HOCy z^Jg@?(AQrAvS}w*=~&QS*kggR=sWa~fCuTv1L-9SpW<6KCq88Bo}L{lAOh_ z=v7_OuX*Fu7p7jMWpU@Z-qn4lsMpY1(AA9HwKDEGVA*Koon4pq(=zFouer#aYh%8) z7xp?mq_Cbn=&`nCJ=R*#?QBjy3V-8x(ECn!@5bl&*M^-A^^7kw=y!FX-=IInxXr+( zY??+>ZkgLPy={JvbuA1H`U@h-&^qj%xu?14`5@UyqB>(f^Q?Cc(mu-RNwQ{c^p=LL zb8*00=XD1gXSHmC#+ASVeAElzCzqn4PcczpR7UO5}$wVuE6xp~dkt3O?c+F4I5H8#9;q zg_@pEP2bkjvFcFJ%75NxrFB8;Sjn1;9t6SCq(#I>VVaIr@UR6KArEovFm0D*;PJVn zU45-N9C~T)PQT5l?X{H$gSPhdkR4_2VpDc;-GJ>q8nq+UaSN=(ze^9|OM1wh$5-Gb zzKJ%eb``YE*C-s86wuLW%rywn^I zTM0H*urFX6DHrVt+ND(~`ej!!*%R}9xcQJ_KQH8pZuN8MLTnPYv+vcNy*3luS$!B8 zV?Qs}^w=xgd#xOr1+u3t@Ur(<)Ow4tA!xr;JYbYxg!=SwZxFc8eBku{wx$KqgJ+}U6pPRSL1!p@oZ-s5kn_;I9@wI{P_$R~8Z1cXb z?Wm8~x?>^RR~vQmmkwl0j)zRYq_r8{xbMqt9yn*VkDNb;o%hT^#tU})ot;SD)2e%% zy=yKn#qO~$+j=5wYp@|t58`P7^JMd`J`3TK()2m();w?BlHX7HomT4Tn4g>9KcCDi zdM!9ha;`+qlE0oeUaC1R)iwD&eKe98;_Zii_cBCwBZ|zLj`EBfz zpf!$9a(-1lhq(>iviqljyxb7)^RZst37lWDH{fhTI+zEI;zM)_Z-N)`B-&rZZse0R zzvYXh8`V>rneZT9_8gB|*BaJ5@u2+zYc(_rbbPH?DD|fB8x68LF`r(Jp^4e=3`hexw`8dO9|=5S^%=>MTTm zdcOi+TYzp3?2lSF`wDt`ca#zim;z`Z5iwGCvrt^c0Y`DA9MwzZ~4HjCn8o3mVKx!nq=Fu z8__O)#H;+j|E=Xqq(7VO|~YVrL_SWB(bag*xduqRdy3$zV<)%Ur&h!&nL=u z^{joF>_I#TWJlsl`jM_Gs3)GPs3+gU`)+LKdDidWy7pA3M&Mj>EAl!bpRT>7>_xQ6 z|LEDX8_9edb3!uL9Ps?9&Nb}m2H|1%;yr=;f4sgk=Vz!Z$$~ZJQDoOInx%i)gZ!t~ zE7`YfN;adiXqW%I?ANh-ATT`zhwaZ+LzEvN7@-k3AR2KI8+n_ma%z;{}?xvM0%1`%2Ak>JBg;YS7c4 zesykB&i3nL;T>820d~b4*4`NQ zQ_MQ`$;^7!>oaq9q1IIGA+e(~_{M*Hs=Vv{*DJl*bg^IQ=A0eH=M=HG`FQsC>%Gi6 z`V)9~7=QD=>z&sBkM!Xe`T2bMJ1|waae{xMaNYPiA{u7T_vQ!}(y(L( z)_2Nz`tIR@bbSxU(&cRIPq*`MW4a6;um0*FBMVPd`5DMcU!g&tIRE=_s-h}B&wcZ)?{?>Wa$3WUtZ6ETj6-*Eq)c4!J+g%0n;`qoqUxKB7T*-qMRFa;OI%q zCrP^j@>b&LNO@;FMlyb|AU>gcVW_fqaoB<@;>k$G+qoREs#H#y%PULgZAdPW&Hbi) zr{LCSrp4VeU5O6zE@IsCbFVh0oC)?# z`SW-CPb?w6vX;B+#?}4SRWfLA*2b+JtUFXk!@J$V^WNRT6xvfm@iyE$_MqSAej=%u zh~gm!_C;;Oc4D%ef6I1+tc`o^ny$zbnS3 zGmOTUF7$0Bv1aMwU={hD+__!02aW&s-QiD%<2Cy`XT47|Zm0NGoIvAhe3hjK#Z)~# z=-slafbHKNwZ$= zjPA-7?ep7S>@$*{pNxA1xM#SrvcGdy{~gYVXEe6QyBFIOE$%!99qBlmlZRqM$}g$k z<@C_cxEp~nog0wt6WD!HeCf8=`ij_v{z7|_vB$LAnX{vJ z5`FC#kDlF&PsvxZmhCCtu6K$jX>7&ph^xo=wtC?v{~y|ajXfp+pMR~huI^)HXX0Hk zPfym09m*CI1C>1V%(t`X?4KBaRC|hSy>n)LFY;VZOv&A+X>5&G#5g+3F2(+J|L1hg zH*k~~auKrnM0Q_eDKpOJka>^ftlSgnT+foR?gcd8q!-2DiFuu*{&%>~%gOn!{z5E| z@n(B*aPjVqr@1e_C2!;&fu3dPNL%cj{kTWEtE4{IptzW9jJstgbNK+#B>f}rqJbQH&T-p`LAd`{(K%md zUY$90{?)mZ{@&osTfkZK8QA-UU&pHWZ}%*Zoer0>U#v*Q5_E3V{|M*|9bTRAcP!* zOYI%^m#m*RFt+v#ZY}rvSSjDTyU&`+IZu_C@)W;3)Y$lmdl(9LU9@e@JbgkGQe6D(P_|~D?=^Z{fpL!>~c4<7wKBSJl(dYSg#k+m# ze;-JC?Wr$5rn1fq8wWsclUN^jrrQqSx3|H|pK*6Kq-|&OK>del8v)vY|3C+mvg=%_ z43FEPw~Ds+KC-lBL}O<5$KK_8__|^F%xshSocvE>s%TW<-5B0d;7>y%aplH*pRaBT RfP>l%JP#}dd44MTUwkTNvf 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 + + + +Created by potrace 1.14, written by Peter Selinger 2001-2017 + + + + + diff --git a/assets/images/site.webmanifest b/assets/images/site.webmanifest new file mode 100644 index 0000000..b20abb7 --- /dev/null +++ b/assets/images/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/assets/images/tpg00.png b/assets/images/tpg00.png new file mode 100644 index 0000000000000000000000000000000000000000..947cbe244915602ee3f70d6b087ecb5cf96c8aad GIT binary patch literal 81139 zcmX6_cQ~8h+YhRP8ZD}}4r*&_*47#|f{@tjTRTK+#9pOZqgE>vHDe`K?M-#qdy84B zYS-SpC%^X(E^@_lo;>HA`~IvWTt`clih`K}0)bGeJy+6&K*(YskV`+WUIwo~s1_o@ zcM>;U)u)i+Ue;ys%OyKSs3HVX8bf*dA36B_+N#cj6bxj4g*31agt1rlbh> zGGCh}uYn^D+P0vcA`9-UcRF9Nan}Cq_UFVq&AYc-&J8AX(EG%(q;gD1#Ao-f7&RCc5=0tL6;1pB@;kEo zUhGq=*7q)yj6&`s1qPl)Ce_p`BoGCB)a^&#qNA9_T%pOLrAv^($hjLlxx9M0H8k?4 z{r)HG)y^}gO+3?D6;V+LV7uD)Mxsz9MWRQ%j^qkZja#P%P z28E4QXZ~xqtLC-2cuYM+=!glj|5?icz@nH*1gJ zSYq@wf608phid)KVzTqEPI!@XpH0tvsPo8gmwmszHKzT4^fD`1e}tVNkgv5zJ4+?$ z8HoNG&O17$o~cE)eO=W~j;b$5vR#~eK7{W3Exwc|3=CB!beM38U1fhwdYwhQdphvq zECCf?<|u5uIJxnMuVU4nvAFD7%L|wQ$5E}xqixFSKL;@9pM~g_Y$5AL-vf_SY0s)L z@aUMyqn^E^Mu%LXp;j5a9M)51=-abivynVmsQl1aw7?eX$*6Fk(eFPf~&;HK>PW}gHzY+qs(oFV7PMjC#Lp|;c zkwY29ArRNsG|ca=dlLi=AI>6B)1$Si2i4aIu6q*HGYF}IF>@<}bMek1=A%%P<3(Tb z+-oM#shdiqKcD@(dS6FvrKoxasfdL?DNHG-*@XSOQDe7Q9e zJZ2HE?}n+{*YfTElo;H;C_J;7pv}BwTTy;-J>Z;O$e zj(Wyv#-@CBX2-wRoqrN2lRJ@@uivKqOakE~&`a*GO$_n*^KJM96}UQWR_Gtl+b&<2 zduW)~%pyu)->Djw*zo~DPibZD=AAk2moMKcK31-_+q?S*7mpq|8#8Q^G;7~zI&oG< zLLhOuL8YoO?E1g38Kv7zs^oTM8b<9uX-v!a3H4!kjtttxUa8eW$B-ojt*!F(^uY7l zo`6xw3vPqlr$6VMJeDt>amf&7tOm!@>x7#QzoDw9J&FU)j$5Q5kT7aNssW#K#3FwU zKF=a)>+wjieYpBjk+h`5fA3G`MiQrnae63U8VJi>FC{JAxp6DhoTNwh?Ub`ZpW)?} zq*u6cXNgHwSHgw48#aJ-om%cMrvXkkXHEbD`IX1*?ti@NvREnlyMe_lRDV5KKG zH9;Usq3Vb}`3t|v2es-6z7+H-UHW(n_jl{UN4rDXCROxbn{UY6UCMvd`|sEHBDmPv zYiu5*OgHZyYJVSJP)q?z$5mm(k$suIQ3JlQm=ZnrDW4EpZIS@L*rW&`Ih7Aq{Y~F< z7hjIIWhhAXPvLO6{LB%eHFp@3YKMs)EU>h5WV>Z3vi{^?!TH5znvj6wdx z`ty(!KKmE;Ig@f+5Ul9(@MOgMEWSMRdA?#QKQR`(zT$F>Lhe6gv>v?k zgT6V-E}vuPhZ}Pj;J)qbHKIe2G&3gz9j7+f&Et#Wiv1Vd$0ra7t$63KLyzT8ebhaJ z#gEUSt9%@zJ>2QILz2-uU`G1a^3qA7I+G($$DMc>MIZ{#k2-oH-g%T;#Uls@JO-Ho z&rYNrs2;?wUS*G?+s!Pgq@<{uS70o6MHJMYaCmXv2FvwC6jqSy&Oq>ZKP=UDnm?cS zjlgNRSkReES{prgqcm^rbD2AX6q^GJN!x3)ZYj3KT&<+}x7V3&z9)smnjzI65GeSC zDs0QazHn|Q%*CzUb7gC}_hR$>gu{@<2~qB3_8I=hPbJ!LgT(NmXTs zF;t7J7F40q#Sm3N*BB9bI`uy{AhA>w*~6cOHZXGY51fpIf=!kGg^e4R?`Q4>JyC2~ z7%y$1gg_qKtqkKl1n7oTo`iS8jSf7AU2kwQ5=U!ddGumEw9xn;-+9FaJp?kLTWoat zz={8dAMbUY+n{t`K22bQK&+FciX!?t7fCNXFS}BKhw5;CdgRevnGq4m1c59ga@9BB zVkF++iV3ZM#*dp#4edxFS06N=3md3QA=2tCe|?){h&2IC=yrQjs{$mbzvHL#tkv?X zXjbKaSATq6nHUPO1Hzkw9XN#E`>Z z7CO}e#~*Esb|)<-gZHQs#|6#Qp$+k|b>fl1Z{z;!kgG9bk&NVh^QaL4ynk%{RrVW> zjtRe8gZDAbQDs<~WD-bwJe%j#Bd-K$*HSnmZLsPO{dd%Crb%<&Liz0RRA4NsfV(2S z`tQvSJpI-y$EIu&&Hki$|6!8w*|o2J@son($~z-YbLZAh>nz4%=+(7*lpydIJ-Vb^U9k1?;YEk*CeXCR$|s~2w;tlnJYhtPqZs> z;DDVGpKP>T;c&MIILa}p;E@=8b9bimJ-e(A^dD;&!@BfH zrK5oXZYZvJ#l?;syH&m$C|u7aJhiz|yTm>QHi{)ZB&fS~1z#}r<-hNyJuGi)h<#UO z!R{Ak+B77>X1ac}iRJxiN~Zz(VrwBr-uOvDv>YXFuFQMqk2CmOXz-OPTQ%jXVNh)P zM4Cp41bn#luVggt$TZ8<>0l zJp1>ZrX}BvVG`{=;$y+s5RnMiKR(@RKS-6e?KZ5oC?{=0RZX-8tI1X* z=#p^L-ntYMR{87uyLxal@>L?4T}@tNf&tqeW6gnqV>ud$#D}=6ld-c>P*Qg=pz|ukae6O;-=wlGHS!}lnNMx!j%{wvpj~G??|$PR$>NW2I+Q6_ zk+I%Nh?*>N1aGqxzMUfa3~c^+w0 zZVMn}8|c*zR&{?^eg0;OyG-OlSy+aSKxeM)e1~>JP|N>poquZLF3_;^VyxE9PQvnQ zkfo^qpPrPZrnCLYy_VnOrB>4`BL%2w>&RPzqgOs4sSQia8|Mmwc0n0iqhfmeW7=o6 zsI>mmQK8l5OyjhX-OuVfv=Gjn;lsu6H1ZWe|00E(UKQvUx!QCkpzGJlB5jxsradhT zGM|RdOD~I|H6L$|b z2$W1lst^Uf)BVYpRnahChTc@^vDRcUM_VQd8zvTUCwr?SSXChaKgILKS89-XW;frf zOm4@e*DD`bn5?NhSECM*es$i9# zWaqLD?v0EPYF8TBT^*;g7!C8lPC0lTH67jMnn0zBjV&;p$f^hTc z3oGPc*~R&ZNdnAFArk9*up#cvl4y&D8Q#t6{zvfjnbg)zdSSy2w$CyiQDB=>B=-rP zaFd4$RHz8sX?CwU5()ReItI0_He&?_!k+Wt4+xr5kJ?xlTA^w4cypJ)Y+>7#FZe>M z?*y@(X*&u?P;jA9d8_~4h(Ur4+^rT&%0x|7l+IVLe=S!MYffGK_e-api;XuOLk8@( z+4QkhN=iNNcQ*?xb!nRQ5lL2<>SN0?=jl3eYIm>E%?|A0iSvC>eH@+r?R9jjVMVQF?>lU=!tg+T7-z2!4*%cssX9^>g0<^Aq;`0L$8 zfz$)G3eR7U+T76^`Xw$1;f5Z}%LKm{5>E7z_Fbg zdWrEFu*Om zZn5_|(t25BT|_3J;ST(Vr+I5gNm7qzvpv4Pn8sL=>GJm*m10Q)G^~2 zbD;X7Bdlb*W2ESdZTF}DxY{@ZPfJfg4=OBo1XmJxR#ccB4chY6nJ7~LSle}yqHJ|A z=oAsVXbjlAU^Pnbn`{tuA$nO@2erc=wTTNFp6SkdR%zgss&uQnR@y zfBg5}LC1sinu&5dlMc6fk9C3A;SlQL+R(WhaT(|+iK$m1Hk8$~0luDK2Q1YWm*%@? zuFo{SGpTv?y1?&{x484aUz6J}CKxyCernHb;0;P{)Qd4ff(8eqDv8BgcBflJKZ~#P zDz7D6S!4GMeu4J3F@7~{oe9af#J6cNj6mIwzd;&TX%4w%ZqPhqd|A^A0ts4~mT0N~N zKg$dw69v#+qch%baVx53h(tN>dXq;EpNp=YogK^y_9L$7{uVa!cHCPT5sa0Y3nH6x zu3!HH8Yq1Oi;E(-sX_8TajNVt+HyzP=pgBZ_abZGK1P?ZkjJik#dAw7rl5Y|ZECZ* zUH0{QT;Ss0*B(F=lGx1{M0%;N0mG%0}N=J&^~XejTa1(usKuQCR!zKKx3 zYaV!pp8T#;j!RY?`I&3p=+h!SX!mcfW#jy0(~|*@@LU9>fe$V9ctP>^2Z^^enC})I z{EULu($tV3lS(88&A=h$o-g=|7RrMc-OK){MS*ZYns+4#y4j`sSFQ7Z@`7p<9^)$1 zC=GsnGB18wP~{<{r{9yjq2KW2hv3n?tU;p+)xn|FMYE_=h_$bU_?TA)==Z; z0DXjRQM#E859amScqx|r!^#Z)I#*Ws+>Ol4J!a#v{Kj_`#jq1Ge7!w)>Z@SHfQepT=UewtcqQ(i;D3~6QY!w+v~>SPE(?j7Wn|gzLDYl}XRAeVA6@DNQ;JvE=s)*-mYDJSZWeH~xUZNS8Ln$S_%=x(zqwH*Tf=(V|3kWuJt=A`-fAjZ8EWW# z9N2@8A9|lcWJPlR0!Md&v^c92-HorbLS_8=R(((<3e_@4#=5Ws`mv`i` z#zXlu+fD+-`my;*u%bHyPFT5y)55>8l`)|$e>#onjQ(2>Edne|T~r!r^VpHBmEqpl zNo1T_V4TKWPJU? zGlnL=X<&vPIc{#o2X3JD)+%A2~(B z@iP`a$6R>Sm7Ba_!^&ncFUQP>{Wx({F9KB{V9d(5;be7EyT(sQ$y=xGM%?+7!yM1is;{ zF%{?Zzre)3A7ltG!N$lDI=RkIW-p9i z8QiSq_gE;%7KhGrac!*Fq7HzRG6M_Q*OXd#dvAyPW{$h=|_3;#V#6i#%n z{a#GPwQhhE$6K@1qg;kLRmafK;N0?OIPRB~Q%df;M!2kmtb{k*&3!UEnkh1)_y2Jv zn%?}ZD8(B)eDi@IuP$T2S#SP8bg-8VcX^UuJK|Ezb7{0L7~v2xrd=GI>_NEY;jbw$LCOG-uVT|e0rV9aPZ7(V_*FTwDDl8DvKO7=WeYYf5blH__0kyQqcOmLMHt&q!9L<}8URMfrs z4G)cvky_zd6))Iifp8}O=}xlBNg*~rXx8x{TphrWh=Mq zt3sjZpW~OKlbIY`RSt}dcYv@lGMDXKU_e?9ZGLDe3w&&(7vEZ6aDXaqkhx)=yP&44@+JS^GX?;s&SilE0f(g+9LJa zh?p!R4mN|!OG8cwnT;(YXsMA}InIa4?J$mOn5cqdXjib5=LYNKY?mfbB5})!+r848 z6;9^k%=7oL)D9G##|N7)SsvPb=uCj~o%Be|Ub@$Tb4)F(a(5>SdZiowS;{JKcRu@~PMhS?o%rnYkgC?5~>?HJbJJTZz#(%@k?R zV)77xHvL~0b&JvEUdUqCp5Ig598a{5|F;(yz-CQg0tNM`Q^y%S$!8Y`WdEN1* z56Qnq$c!hMyI?yLn)(vl^u2;Ph;>UKXjXKXkecOmPvD|a%i-$)Rw$_y4Yy(W*yTJ zKm#Fhr??*;&1d`NmIhpf-Mgd;$A3i(n8MoFeY@55l<5NO(!6bZg*bG`Bn0&){C0ZQ znVFYt6>zR22!q=HzP~l{)J9RhwNH9v^%ld)KapW$Y^;*asq5=INRloV!}CV`yz$>R zN)*Zp$gR_$X{~rnqsQi)M6a_+4Le`njpTTn;RzTZ*vC!fj~pi0oR zVm3oP-IL&uH+MZN!)I?r+$cL&r|w`x>4O}jyZjNLG$xRwE;Dq8%w3CQ6xr? z;|c5GPGM0icfgS+HF5hVyaI+@mwK#m13{fe`@rC_6b&S3Yi#Nri2HlNNXa0$OimbA zQfEFcGl_ex0#{S#DgmmWmw~e`*$vF{$}#Sm^=KeN3}0n@>8LKp`s*S=Q(7}ZvR!-Z zovM)(K6*lhgH=n8oUkhj#h;|=WC>L6jbz8-(mH=M?NBn!$cAcZL9)8jNVbZv)C!~Q z^ zA_u6e{6qRU=8)09oruIe{u_CZwe88O>(xs6#^*H!pfu`rprL)Mx+1nSaHO%A$F?tR zeSbDEus&!tgaV@DmmD_4-n`OKglC>!L$4D?QauO`9&Taio~_-p{xSyg=>PT5%Uqe) zyk}PxX0_2Tly?O!nx^)p5hKCsMq&ejKrS-D5cw16cXTcH-rGVeCYm3==oClpBi7ro z>JnGqv3Y#*w=XaibE;f6_QjD;baLOq+?p<+yv@h~;bDgomXC8~!x`vtByT&fqV-A| zXTL-zsQvZLieR&`ov@M=qmNxZ!4KL)&7B(eMq8MEyx!l3s}_){0m?N&jxaHD0yow&@pmvSdWDvsU@Bj@NGj(w z-2BYNzSUGTr9D?q8H=Mh6RCqx2xM1obs}1;tX&m{cm{9`}1nouAiAZM2fFlepyT~ zF%Dr98y$GlV-a}9&>&)L|LNm1_)2~my-j_^!7q$~xx2~MKF_%sA&F6#Eopf5QDedTKUFf_s{%5kwSTrp_a;K15S((NpjU$!E=wU*kABf za*e(FIO=`<_QS91rETmj6NmlRXNW#P4hfsI$90wOtKTSv-8Y*rnuw}eM5RP5vjQto z8r|P+zBm)sr-MLr;43$a9aECS1WjxDM?(v)MRWhjsu6a{b@+hz*p7UUjkqu7rf7?M zgIMLnr0RO#b8RbWK1V8MZ!EZ{7oX^p$HDC3h>gPX-a2uw=-Y$AYn2zRql)N0*@Fs> zVaW}7tSnn4wa(t}05i*R=x50R(l(--glgDoZL$C5u9qFzK&oAtV!*@?`As3%++U>( zEcnv(Xi;ALQu6H)A6L@0Z@5R%dA}j!W}84hiaPO6B_T%p~pP$)ZDqJJ2TF$~;){m8yWAhInQ?blf~CG|~W+ zOwh5wmc53y5r-@870Pz#)BE@+k(vgvG)6BC@}vdgP&_%}C!n{<;6t=V@WywdSjKcLfyhC$)VVkdo}NbXW*nzm^|u?joc* zkQQARKJGDzTF4;C!T$!(biXnK8Brgz(!KZc`_D*R6YDkN?h? zBhbf3{m$1WHqeUyZr|%{aN^EUVJ(vd zJFlB4FFm?UujG);NP>YKZ!3o%YIGwe{6>pA}xu zi?ahd$%I(u(tMYh8kYs9q${tjym;%gb5!uR^{#kBqwiHC3JnKta=mOi%B=@ArI4Tr zEgp7KW%CgmNN~6mb0ZJF&ztx8g~&}po|+lLq{9Bj=P2Q`GW&ga(Zn7J3nHLs{?j9? zHA7P>7V!!iTAS2B5E}z(M3$;zR@H>g(A8;92VHo|=@6{$x9AhxS?b9BrLr!e@{>z% zQbuL?Bz0aWsF7e;$naW2OIYTWzvl*Yj>g;Bx&h>Ic%gRs;I^wLz*{g)6fzU|r}M5D zAfyL&QoUxr>y`RxlfZdQ!G!a1$V9VAk4AH4>fRstc^Q(W^3j4A;41ti*Eg~Th2Hg3 zb%=l8=?@fjJ2M&JJwX}!uEH!c7J1y3deNX+y6-IY(ey%kt7e9*Q})FSl-~xohfqtk z%l`XHR;B-V`YQXq=OW>JtFTt64gNT@BPTL=-+fq4lEBjp(qS$3qP!Y~LdIM@G7;() zl@jsB;|1*OkSt4(KNy{ZO0<3Ch5{_l*CVx(j}7+B5T$?5e|7Bab*KIfLFu(GA!3n( zQi$nI-0AJ-!=+ZLCiq;}QIM81RM9mVBSO|&{MnQyXr=d^VwLhkS2+AEMQHF*F9Cmh zC4Mf7&0>Q0XcZ&{SJj6-M!y?r&H)tYGCsS4s|#q)wtdU}mpQxL=?a-#Q6<^vRiZE1 zINJSW(mDI>1{FLi>+uM16_kqUo{T!oG}H=e!-D>G2{(^#K37X#z0RT&7~K0m$sGm)*)gy4!bWC!mt3!zonY}knw`wpwcI7eKeVz!=Cu}@{xeKw(D#y@gf zbwV{b%6`ay7D%`2{{s-OjLP3aZ+^K0ZAkT+58qg?o~=?RE5ab&A?G>4L@u|immA9P|ufSnQSY4nM5KtOst;qaWoNOT=GwI3*Yc18bNeq$oJny zP1|FF+ks>;z~;X@02tRzZDbkN*S;ucMD~Tl4Vkx7@w|G4lL5sU(c zmN}AyC2pbNLshOkKIwkucOP{Bz&L1E@SfWp5A<>`ajxzr6?JHfJsDC;8eQPYp8(-9 z(^}WXV9z@YyAvfDrm4u0*Ron;YLeAs=DxLC3vH9P#4&sbzL7K1d2Kq?WNXROf8UF? z28l8hf1ti;X^;414RF%QHwEO7Oi#NLaVy`SrkpRmNWw22xDRK!p!#k+;4{GtI#*_* zGw|MHYuTePQiUp>`g|6K%7ifw79_Pea9s;B2FyL43z~5t@cIS%g8bK_yUM6fS*#UCh*=d(Mm_zTSfbF-?%SuLJP)<^W`(4A~ob~J1xnHJTO zc{AQLhg&iE$$--ee@VlOl=(Jjo>uDGixRQOoJ<UMpE)*(x)GB4F5xyW;DsR?gLYk_3V4}1xgEO6n3ZtJij^RY-;OetPU zaU{x^ALrx&i}Svo^u+B?4X|^K=JFpS$mwcXB_ldhhf}rL7UpkDMhNY%)ZizM2m1@l zJHM$!vl`*o z;g{#K&{`FJ2v{AcB%wpcMu-repyA(Xk7JQ9_CX}#))9OB+#{t5*eO6mt13~r?fJ*Nm>4aL8DEf0rw2inOzLYdpch~zn>l2>f|qZ?~moQ zK*r-Iz7st?XQAO+91vZo8N39DFa_@YOBLKQBVxxvWYkw@Uc19E5oMPE=B>mCrU8?w zh3Pl*v~<4j*0)efv%WOhqW4TZ#hn=bdXYYvAwJa#cde7B>;PCMbnDuvnO}-A%C>Ml zD+A)~(5;6}pu9ejFj*b?{rw#cjmqf2Q}YpP&$aP^_2!H77JEM&U8WQ+=k5-Vu|i34 zMe=*YGHbPm6p)-ebtbV#dSvB*PIlBC;M|KPsTgBFbL;J-=@LDN^4{8Ur?I=Ro zvybZp3RRLId=-VRj>@%K=wiQdb#eGtP{U@px#^XVS$sEItPF2q<*WpFft0WIl!M+FRAO4xCP`H+@9#`weNp(pI|w8`LCT`w zNhF`m?vrWI6HPpGTG^gcLAinT-*O}_Gjw3G2@9b-lZIqnvl3%C-5ax*CWa3%s@@K| zPkRd71Ig)?CVgczl zwNpPZx8{J+Bk@?iE9m|J0BY9lG{;EgydOVrZbx!w%;kfikH?*H(D8!HYadK>;~(2_ z1RQ1-m{b>|*Sffx9JKIdF$g@o)Tp)NASarp_}EO zzRxp>-{0@l%nPn7+5i)NE9|7$38Hfw!?%1{4?~%JC<7YP`VQ|#Pgj|m235stPjlw6 znZ6XKvT)zE(l#fvo3R`Siu@lsB-v69_-hf&rd)%Malkc`SlWCBlR2KymB0BohAE@* zB%VZf&T9piM+h*iJ*O;4`tprbmFcnd^TD@LF7YeT1z9L9xW~T{0}EnPxq^kn$~T|A z9c|#Tgw18C36i$$4v0N6n&TlHD@~7cfG7^BD!qDF27EDB%?gvaM8ygML`ZjX`gZ|U z@e|x$nj)xIB?2FACC#A6%*0uKNQF|3N#9bkk!i}*`Yh%++N}=N8*v%YtBv3Zfk2Mb zrUI;h*-4 zv*U#7kQT*fdT9XW@^k!_pU+U)`fuxi2!oAt^3#{EyVXVs^K*at&+1V7~uK;PRe?>7yLs-8U7N*3k4 ztwv?jT=`aQRu%H^bf1MVsgZsIxlrQlgM1&4nw`Hp7v3&Ox_j^OvDc>!TZ! z9vSzqvg_GzOx140>uI?Vqb<_&VfP9jQBz$Oha1l2N9L2V_PlW%nlwcU4QDA+O6N*> z!5-BMqKETc?JUIY5+!C{>J#7P7QdXIwzYyc1?d+9LgbTxy z;sIW|aM2sTt0nn+tuKLrYrw$P^FP8jY8Il)$vc-myG7Ukddu=ZoKyZBZdlGb-OV$Z zkCJljxn<(?UmNJE6OS;vJGjP{c&aP0DHXX}#PHQU)#!?dOPJdK)oCN^WPE&t`dI5s zqwl2cv{{||HI>)siVD?K?@Ahb7rvQ_nFImxh>*EQx<03;VRjaL+$4Imw8r@=Q2MbM>mO5w>QCkobh?R}$_+M>}_5m8rCA&C5WnRYN=1C3VMr*}; zujL}1O*ovb+0SQw;etC&zMkjw5(xF(Y#bY1bg)&8dOkeEO5QbTBbGQO@kg}TeY= zSi1p>_aFA)G+w;~f*j}Pf3YzhMCTIiG73vC|LKtZdbguq_T7ai>^mJ|?mDYvY{m`V zg^=ga=R7H?*TFFPSJ@*Sh=D=i%v8G~F!^|RC3sFPM!!{=R51nT#KdZQ-Ch*FYm9sU zFtBL>DK#n^(K%9a4$CP}MlDfsGQ&5{LEd&;%5R;qU=_2^Ox*M#o}4D9XdNSVRA1b4 zDlK|ZK9SD_j^}X!$+0@(CW_gc-77~Z>6?LCudRt`;pF_LRA5w63(hK1E{s2$N zHHt-|DpzuyP)XT)*Tns7=X^= zH`cySRg5pog_@Rz@4_GnPug}bMrN?;H|MKvxj?pILVy_=n2DzbIqD43dEGRV&YUTy z`|Qd2`pXrhZF<_WBLP|%Dg$q^#lrT;xzelg4!b5U_S^@btfH^=W^f+&!;&_Y8O?qd zH|`r(1J$+u9Y?^pT&y{u-*aZqRdNaz+G4ad+7JWHE#Ng9v)h%5VnO!Fvc6Sf-)hc} zSIu(NF;l>jUGx5Lnjwy3(JY?X#e<>8poj4Up>%GtY1kqiy_oFP;&CaSqX>ZSL-- zd!m%Zk;*fb5|Av#kMfJS{wrI8x5uUJp9v}v?6p2;%0q@OYw>6s0k>vjN zQp%rfH<1fsODDR6`ZKv31(2-&7CSNfOafQY}3Wk1CDv2`y^BG+ zXfd*meB6Ss7}(RI%PRxfp^3pDz|QJ`4&4J1Nr+Vq!_ZaEZz^;h$4{UQ7J7Mzb(#~R zL9OjJx{F6aQG-g^K|P^%0+^OfU09P6vMNT=YGsW>-^ zdIcxPUcQB#%5{R2X-G`eB?bKN+=2j+;HIFUrx=j2Zk1^+)?95LKZg8==0uzsvoo{KJ{b(Vl!&r@zEV3Hljwl?HQe@v4Q~`FDGqb3sv+>%o*;3?}KG zZ+s|>^8!$7BTQJ8ECECW1?;U!scWCI8Dn0-4*bs8d7flMTtzWt_x6Pe2e(zin~V0Y zsdqS{7C@HfYoR4O5oZ?_4KP#p_;CQ1HQMPt1eKtgc?~Cq^+p39=J}ev?|eUUq%9J$ z^5rt;$?&4iq%_Elv{i-G%}4N?hEgyDm$!?aNrSCY1>?FPI6srqV=9C>S^ zj1ih^UzB}QIPbG-gfxH+Yo3?3KJK(&NBRB+7owx3*DF4v+A`6;h6ZUFn~{&BkUo0V z&SnKK4f@-!JUw0xIeg3F{6#ZF-Ec^ah73095*2O9y(ZzW|9IkZA+}GDiy7W>0Aw-4n<^NGWK$fXK>wf64@Ipj zF~+J{uAFCI3f8s(KYO9?DTsn*Sw79FCrW;y7X(RtN9JpVB1_<)hX?2ib*n>pF{>c5 z`!JckD-lrnR8gx#kn#qQ`!SR&4wyluf>b&-ZC_uLO#@Se{j)MRF~xf8M*;6=xqE1l z!fSByD9sGgBRw}^@;IzYRM{UXBr6(N%(Xz4yR@kgk1_IfF~(LR$z|bvC0KvOw6SyV zvUk1VfyG$*14jy9@NJj9CpKS6o7V$#={U5hW2WTYgM9!s%7%!8LDL$LX}$`J)fTp1qexdZa6_v zgV0sBkxObeMge^fAW7gTvVBTFe22k*1DuMTt%`hV3kAt`S&)np565@FZJ?kZhdk}S zN}tNz!k~l?4EZ2Zmp))!lPqwzt`m;a{rNbCB6qj{+*RQd@3??-KVH?PxwTn!+cyw) z-fg`ZXT8}co!dC&US094FWaHk_5HNuq^i7FMZG1a7&HY?Lr{PKcIV8ks%XB8&zr|Hd;5Ve-b& zff%mygY1kkpJFCu%%w`lv0ibL(VkTK^tH^AxF2Iu$ECsNzTOszzhUEn@>{x!4u{#*K(%Kx{4Pj2|O#t9kU_Z;0lARrcgE!kRf z*OajsJa~|%?RU7tRd)IcM)BN%8^llmoxsKTtfp~Dha>q>iLFMlQJ4W$8&2r6d z;U#CE4&9WGd^%3f8#ecrK16Xf$s;T_)0g~TmW}BSAN*m{I3+Zc>@-zpjKRaRX8?Yg zCmy)i>$#0-hp9RoM=L!`0#e23s0<-;j*)B2d)_gyTiU#TCo65ItzqH3_Tp!suh8b| zkEQSu#VzOBzt$Lzmx?<;DRtrqOEww_ z2qpxO{leN(AwR|8&|$zK+u=de`Yok;j$W*h)ZRzXadotwJ{u8Eer?e9QtaN4dBOZe zcksE)R>|23UEc$_)1%W~E*AcdlaHyw8z9!J_n=d~$N=!I*oa}}AqsmGf zEKH`x&f^ZyWu?{@(#}(o1pz~wnKzjTdzRox@6_BXh0l81&5N~f<_`kQ6iYrvah)55 z`uorOMs7=Ot*Y-xP1CU-Uo$Ec*%!5d61wyUP5W)|)Q=7S|5zSPJh|u> zPUF~Ve)Hjg@$pvN+W*%*fJTK={{02Hbrh|6e96{k-27?aG7mC&7j$pqcV?J}Oa3K+ z^oz|O57Qb-_DpHEHnsQDez+aUMr@0DUzq$nW0rj&5(Dp7%B>33ok*~q^&|#}t`9 zD0pwaJN1v{s9qpKrv2Gh)AHGeOXN`uo-z}L^Ir2b7%<3v7XHqf3%8L+(DDWor_#`A z+EwAS!={Fq`S(j~JIy@dR_Ae&LdyOx6=P0kmf9-W!fg#INgC2#0=QcYO%d0(NIPg$ z_Wpe^W4+MPy6t=4_a&IKg(H6sup-3G$NOH)xTycqVGS=IoCga(^-yN>lRUR{;u?B> z=f|TC>5V=v-?X(#4lpU_re#YV<|qIEBKyZwjeV&t@0mw|njS(E#3gR^!E-8I!>_oH z5qjC7s8%in{O^fZCKic@Vm`kcy-psf$q0iUwnHxap)pS~P$gjLEFCuPebG>}bXG&} zF(W^=nJT_F)|6yCneS9GiowfRXc$7QX90L{imb^?^XUw*7^%@l1QUd`4vfPO?0oL~ z3I@n*t~P86Zmj;0?;=i3n)Yd(d$ZQ*CU=uiukXi3t<$=O607DvFcVf8kdbi)+ovjN z#GDrW7BR{pRLG<+fR*U7YBW}Oo&(f3mm-1pgSo_;c zZmkEehF@|Ce(J0;0;8|fGcK>m>K;k2oliSu^8DT@|GUVpE<{&a)_KDJRi$;D>}p!+ z@nO3o>ui|+80byg=86X#XVyL}FR06?{W8Q2PlVU`q`Z(EPuc1Xl;7X*Rf+s7Y|O{3 zOLSMd`h%;F2e;dIi(=+KAdNeu+@ZBA?7(s#bZ91PSe~H2t@;ydgVjBXa7j$4|1~As zbY}GZZW}CfaX6*RNxgC+YIf$IoovUSU7c?!XP<;_JmX&T4TG=jCz)Z_`=QXEpJY1k z6!=gnaH#U0?Q9pdnw#8z-XlK!kmrwg%CKTo=oxRul~10-FNW9P^!`}G{qffm%sj>K zWEvGZ!P#_gFnq(Zz$Neqfg7NwdowC|1bqlxDbVrtmFw$0&E9k+d0nOtzSraAZPC86 z)DUk^@^)Ej*xrBq3OVy*m*0DiJUi3-Fd~0jXmj_-Ip5{BPqiOD|Ck65Z2MGcx$#Ns zc-tR~z*4oOu^a!WRxA?^YRBV${4K6sW0Z(nFBh;(Z6F@M+8Dw;$!U@k+aKPqp~l3APby`dt6{6E zcH-ub54CHmS0|RdQ+$)n@xlC}Tgy|Hm#@M3;EEPK@w!btwkpf{+OWIN(-r9XitPKu zJg|;}YDMZlL}mXO;wZK%!z&k>7OLMoV_c~|+3;hA{BI^z=J>G5w_f#MzMbKGRjmt= z>s6^c@6r9PYiPsGaIbT+%x{zs}XPD&>I_HplCI z=lQEHboz#y=KBQ_`m$G@I4<3d*t4DgdJ`XHb^K0x-R`a5m*du@&5o%4JITUH&yD~U zGa-CxcHapiZV1Nf-4(fA;!fo3LX3UxCHQac3fT)Si1vBYu`zHig~cwj^yT6T0lX_NPg^mmC(q=aym=J%;jZx6N#YOeuaxLvJI?gi@@E!E z@ITOUhvn99ZQYx$Hq((i(ETh-esdy9avr@GuhI9fzEuUCm1Xu1gYTZc zLbEWsg!f7F9b8TMatM1+SgvH9o4cp1X14nOIme*ukOl|K@8C$H)u7c+Jq*t1% zhVKtwO`F}6sO`0-s{h|G2Oi;%Ix7C~xbi>TadMRGi&`h&W@vVoYDvFkQ-;0&iB>Op zk{QUS`#gR?M?VoAdgjU|7I%i}IJf7SgU74SSHEl6`u6)9$Q5!K%}&&tx%Jg`11#{L zJnx_C=r!WiU9(pVyQbK)4KOdXZmIlZ+cn0ju8LpZc3F};zI)~RMndgwEA>LS?&3N; zB%{TyQYXtb5H#iPJ_^bKC1sC9WC|#ZiE|Z`sloOi@wLG{`L>~5Mt5F~d9BTJhFE{K zdHZVo;pWtt%MaG?4+PLE)D)WcAw>VOBpn;b-5wesTe8=qK$};xg2Uzz0?^9ZfT)(FmWLK^Mj=8+z#OXgpVNvTuPxA?%(>qduzRJI5 zK63^7KK0EbF|M?Ix?O>(dXyD`<|JyXgi9T*6p4=ISwuqjZ`@V$==Ji~ zSX{O8=#H$XIm=iz3H#8T_sRB&o4;l%+didMk-3+yyu%9lW9QJ=-oR8aw3o+jT!FktMH4cl=x@o}z5L zQ%k-mFb`=2;PPn&GlQmMw59}YD@8q%ael_IuQ(a_^%paM!_MXVEgKnN*e#58Q|F1B zZ`!HrgpgJ~R8`8kf&9&V&X#@{;{hPKIifhHj72443c5*o)kMYmWrJwFHaZ zOt5cfa|KcjXOq3jmKkE67=(}+2^)=(1K=LK1Ll@@eG)3Raan>{Ao%5#40e6)x|kWP zg1Bw=^m37`3R{jW7t@K>S3^J${4RH!vrT^-lQkX((^_+nPS%WV2B+umNH?HxS>_Im z?Amnb)P(d{9>a22)RY$wf4dXKujj*i0QjSs#-b`y!fe068dB*V zkz0T5Fc8ocJbNbJ+9Ni(r-!lp{=&yLxtjR(Z(kRuowLL*T`LxK-!NJMd2nY~d{@5N z6%*`hRr+lW3d53B#crN*i}r=Ljpf}uG+A#oKi@0;NnOEg+hMpx$S!%*IJNIT-6a*m z$$^r4_hwFNNl%@=4BE;OAsxObKz1Z-I|1Bo+e#Ccp|Zz64eTS|-HVWYq#mIP{hM9!Ju3L6kLutVN)!Pj+cZ z5O+begxOky1ci#SQ9S~)VbW{^u)dX(*oB*q){>)bJ;iitV=CwR-~Kp7Vr#;q5O#;) z*W7M|c!YtwgRC&Zq1g#kGxnhBP0uMe>P(JSIIqjB(fbN8=>dt?23fX)B~KceH51@n zXfJ-)aAD|fd+PQ3%$UD#JMfy)Q%goI&0TrP(^*~5O&2rk-WxBx2LPjD&)xm!b>i{u zSFMoERDvMQgE{Au{El#ajP>l=c{5$U34UmkXh9y9ET?$3LLbQN$hRbi?RmlWe2S;= zT^Oxbwc@zkLs>=QvH77udDH&b2XYjvX#Q8_u2Z*}PGwK(61dgQ=+uz>ze00X?*P4O zPx~IC8b7&|E@ga~bo^?p;)mq@$*ULem=}4?q{%M^V_wEukcJlPkOBhwz3KjNEg<44 zIffr@-)GKB6(aF#g0t1E7s${xP^nY^Iw&GZkEtW6zTMg08aN%pKZ5UjOD7*=YUNJ` zz`J4kMNz)eA-Z3Me+s1Q&)!M`6J~7YO_vsNd!f)ncZV#C#lj0f=46D)F_PhVkx439 zJ-!3Fg}IN$q0Qg1LMuN!CpZ(8Ucn^}evU-(Iva2pz%y365v^VB+um=3U$=QdU42zP z=*;mN()qz`gC3y;_@hQZ55<%e2-U-Pu>5Ne2w(fdI>$LT+HZ#U=UYP3SdEG`K2y7f z6JkW%Ea4*#Q;`%ZvudZ{`YiOhvAdMA`~7#a+Sy3y@<;IG1_r^4c$?|EakBGN`iuTM zhcRhE6j)8Qshi`0XOiEyxegh;@wmn=Bt1uwN;J+BSOlhfCb6UBU8QWHrGNmsKcziOJ?ms#o3 zb+deH_a>VI!^3&$Z2GvAvB5UD!VHV{&+r7FS*{^jbCW|(ShCCwxeW-jhDs2^Zb*$W zt^ualk7JLw)nwN`$}MB&I!b3wI#tA&l*9WA zZl*aDL1K5DZ0w7PzYi(`WARal)|hp<3zB|tyYP3_kP=3b5PTj4I)>G_hY+$A@=ygB zlo`kJDgJYv7S)1`*IC8FookO_OCgA(444La)_uROe{7faT7KX70#YK313-KsecA4- zdCRZmPdzKis(P6CLhu6iyK(LDHkSB~pwCYvY}=oV0Y6EE2*YBYbBA3OQ#D3G?31U2 z-O{7D&J;I-v!g0JuR0X|sI*;z!v<%D_-uSp_ls=Q#9+%1?2M}YhnTg6d1g{!Fd^oI>SQ6U7-JFpDJx#o_^+<=uk}C zin*=}X(Tgl*-yp$(w^c4Pa0$y6(_7=re14KwOv_|Y4VeW03SzC!yakn!56l~t=f03 z_<-rg5j;-xtr!Kj$*S?6&$x>P83^29m{LE}L-F{$$3FlVbGI@JT>7!d6;l%rUWQP* zrzMa9GLWV>5Q^bzFSO~@7Mj)XF}>(w#eIwgH1FjOYUb~5%5Ej?)NvQFJM| zid}ukig@OI3aodx`10<_|9s3a2q=XELm=SKM_NzeGX1e;rmdirhWhKO&Q3mgRp7smW?s;ZmV-Pd2WRKwTTzuDm(jaeCpLH@W zBR9lfnV?l*ahc6X!rt@m1>D>Mb{=&6K4 zWAHt+7eSRNEZMb?$)^UT=5y0emfB*EaW^b?rWYq0_S8&}s%hbr7l)aV}bc$j{;{X|%;8)x>tFifzK@t>_M8D64! zuq#gAVpItgA#fE*DD+Y0;dbUL7W{EM|MY@fdyMY%!6RcC1pNy9mM69U{pnD@K!pDP z#(j`WU-!N`{p02dl{wXlTaeqSG2iI5h|;?HdN|5Ul|Ee!vp&|KE-+I4w88+*~ zN^oqUXhFGv?N#p|&)Db~mu0G#Hi-B{=-#h@5E~IsgE{Z2*rtSqVu-jBxx9T9Frf=y zq)bzXLXqe46RH$<&}^|Z?Tqq2#O{2#_c%^%uaFK*E6e93Oe#*FrVeYA$Tnrd{8ENORUyFx=;axaO-L_rC(`>@dlKSu~{V}q)21=&W}sn5{&4o ztKnucoqj2qVfnCaDa_^rN?Y>Zz19GoLIZ`Wcpq*g%daDR!-;c=I-PCJd^BZijro~% z0Wvsk^#eiG-kqg;Msj~z_^N8Bv4w;1(YS&u1dgu9O6ilEKA6wH;Lk1&A*p>rPV*Um z7>qu76@i?C?Ha*s)1JbwRJZPp;E}Dhg$3wFj)#mty%s>$Lk1xG4>k~DlUozw-&uJz zLoC@Vnbp-+$VsNpTQ~Bo=E2iMy|eF*NUsd0=r;WUK)r)v3jD+6AVmLVZjR*%bZyTV zhr;rkES8xk4~U9Kw!kb$2YXvw!0H20npAK*RT{orWA?9ct0+!31-bQqtkeEH31 zzIi+)r;j%geW(lHPdxdge>8Yd+`5^y7h>j2wle3aKPyz5KzERsx7E#t;Tc%&%L^%$ z$drfjX$I3Dyt+*0RPB|XE@-m6??4fu`;T%AIME@9xE zELD=N+Ky>%zVBEF=f54}bC90uBTC5IS|1Hxa)_a_^3T5vrwMSSYz_Qawn`r8BD?(m zmJ?^n;aUDDK1ShZdXdn`xTn?d@yr*pXfj;PJl+Nui0t2BbvT5!AQn;HN)0|wr>x$3 zN6AMatCvoYA)v(yyUUfw-TmS8@%^d7{Xrk(T@}G%i zq`!%et5wjg$>gFtAN!<3w9k&}jeuOsW+1=bA=wX@BBfhxYZHd3_JeFKX}PXS#EmN z6c;`}mFFn~j;bL*8i!D(AbiMxi+|oYt59JAk5I)0_Tgl;WNc;rlyM3635NlDYp5{A zO((<@ve}&J-&~1}RT~ql?j<$;_eIH0q({v6lXw$HQVHsgOFn z$`sEYKa(MrJ(g{I@O4O#wCPPin`#6)G^-ykjkmbCj5mLn*pPL-xp3|V)|4O-O%+F1 zE75+Qs_2sFTVf9gMT(q-#GjxrH0n2- zxq6G4JYtR=%rbKDnz&hdBM5_k6PM2JI+o|1J|Qt zXTfARJ-J_9mhrBHZI=MSjsQ}1?}1I_YLiV)dWN~5USqKa{i_FTbN8i1$0=6AowmAl zAD{pll1e&YFWrrLE1%{;DG54u73Jszme0oagzz% zwuFYB5DA_tJ$*9#o-Olm6ufofqV;#tYGNWnYp9}-)Q!Xiq*2kIRO%OkZJqW#;28UL zzU+6@txFsarfi{53@RRxWelOndMiFDsN3C^DDC_8ldPA-KRDa-Fj=`G9~AKf4fvHI ztqj@{p%<0uG9G$m*~K4OuejxU!`LwhxrW?Hfy~5%-MNn_{NQ`Oaz)l9{Xi=+j?NUr^6vQ+S#Ou$TE2{IOXh5h)(cSjXTp*lQT?``@(v~}pqcn0PLA`ZJ zrtoS-51np#kSnej7yn+uq2JI`8{|;XCo!4lXSWGD(03sl;X%x65jBOg$I|&7odnmk zJQpX~J?~n4DnG9rd!duo(un7mV)}bJ{-QhmNIUoj>RUg5WP)Dimp7}d4!!xWW`KCS z0t`@|&66I+XQ7Ul-j)8MOLXYWWsguZ9?m3&C3Jbiw-i69&fv>A`~P$zbQl4;p@A$f zTsPre<=>!l=2Z{w^Y`np$!t2~&FYCutlezGfE{-Gn-d-`hnv9|KXNcas__QoHij0c zk-^GRR>fEh;RE`I^S!*p-_o+1m-kosc&~w?l7^%(HMMrFTR7Xfy;c+Ya2aQp7)yof{JNw`a@*ySFS!tK{4V0K+CllGBVUqVZF+T)(? zQ!9GR@0_~>8O|7gEX^zK7nIzO5eS3OzfyQ%x)LsAdxmYADw#F9t#_9zP=$f;?0(vQ z?9j_|_XnX49pE@7-AIucVtj&yKpul@si>vBXh;3Bx5dwrqZ^a94*<)!v>kcsaSz^@;a5{~W)7NtNj)6k( zpmOBl{shHd7x9s7?KjuZ^Ar{y#qnMpdbSs78=9d*6)yj8F<=Yk^4v=fP~MLyld!uH zjXjx68vxyNhEV*>IPT=b3JRr*tQ)?KuaP`W;!Aqsd|fchfM#iNNBh_9_|!mF!d3V= zUv5zfNas0q8IwU}H&7g^u=x+VqkubW3t^VlAvkC&F!tV63gm`+p`dAD@))m;*8qVQNjlXkWn*6ao(Ya zV@yno3iN76iWBXHt*KI#AbQ0g`wmX`>Z5cX9T*-P`*JA@p$vo-x*ZLcn+; z^RFHB>!F+%twUlxZM0@Zn-KN*6BP2%6Ou_%2iYlg9CnqMo~ ze#c~+(kVM(waj-a|O^|xor5Y5Lef&G1vj0GggnZFMKVpqh`Od+SsB3tGn%}up z0;pv;@zUCOG;`Q@Md+I`B+7W9V8k$7i(H(5N7pqis)&RW5TSa7xS-oKs1_?&w)<~F zzDD3ECvp+@v_UbVR}QlN*dpNqB8wL&7R8=ggVP9Kyj{m)PPw4M8C#qa*ak^CI%z^@ zofET-3%QhDO#u|n7IMmLx#HdV92l6xm-S6BN10$4Ck;Tsaya)90s*N=?YLP;4a`PJ zaBQ~n_U9e&7aRAC!)@TQCp&sHxyWgt&KBbU$XHK;xfwH{ucw0wjsR+6g2qv0C~4qNEZxIyRaoXG)}gLepavS{Es-#Ou1o3{Q(yWBxh-Z!T^3%}i{>CO zrrP!u5Zu~xb<%^-#0u|=@q>)lg(qYka7%#wmmvXnfgE7dr3Am_ie$R%KfM!F={fb` z(iAhdvv1VE7usf>_9FXvVU-@A-h=9WJTCpk4l{1UKJIH^D^qs7FngOSyq_L7;F6i7 z0;Q%8aQhkSmV~hzFeMtmn01Tsd0dAz7XyICO$ZB_M_A=VULcCj5kMA zhH@!9R{&E-`9kGBD3A+Uw(E9k=AL6r1BJ#jkW3y=L@ltW?Uo#~lt)*pSCM*es@EJl z3&EH-gWam7(DoJ0QM~bzK$fZccer&f+kY21XVEQvT|BxRdg-}~uP>oIT9Z4uY`#40 zz`-~eO+hqXhyuSN$OcXhjIKjQM4^K(Fh%LI+(obArANY9MNhFFsy;;%4ldv4!r2Qj z-2SeJ5)8-|H$%4*LCG&ujW8}6$sgFIx`A@7z=G_IWU}I28!%`3yEAf|xbeh;6Qgg) ziOd=25VDzEgA;{V$bn%)BdqvG3XByNhO}8pD8pBjuSWV~sY1&=yEd~WbB{a#l*8UE z6e8jq3w=pqlUawkWQV@x)NX-?u`n#(Hv7#S!+7f}_Da%Z0%V*T7vB9T2OwZfUb<3Y zmR-pzTen;Ve0{3)X(UNxC zXkz9)N)$BfKIBoJ^;f};8?2ym1MFy73lSM_w;%yLz@5<%aKfTdkY?Lpf9Ipw@e^R% z^GH+8Z(n~<_-cFqDD;^hdyZkQji4-a5cYo*rc@s=KgB?Ih>PY3mwo&Dg#(NPcp@ud zf_1tRSf0a-U1t;DvVYe2#&%Xy;4J$F2sj5;x!~ry7rC=#`;|0J% zzDtLL*OZTSU#b>FJSk@8-4RO%2&VY3&dkX~al3IOv_^w(IYJ&iu+DTGObTHDDXy+4 zI+lYcz#+gZHpkY4)#|Ai%iSpKA-2MKZiqaa{*uZgMi=TrSLr2?_&S#)aWqVtDztyu z^zx^E4CnJ;SE8wK5cEj>d#oxN@!2msLf9x=jV?8Pzop$~?^cK7Y}G@%aAn#2e89uq zGT9&8tnG3N)cRTX0YOKfPUM?Xc7AaA3s}wa&cFSB<7JN|2o}r3_JLV(2yj2H5aky; z=LJnN*|o)SKjw2fWZJqN^d3!m5P%i0)9(2LO7TO=sdJD#Y~_8pR;M@sdkJ*MIGLs zYgFjz!m(cW*1qkLWVU&ARncHutsCd{blG6=8oUbaPE)M**3HnMZOu1X6M!QZ&w1=# z;8-@`%S4eN4ef84cDH~-%*$fJ@KmCdsexj}SX1>lAzI}xgaGu00c1E_5C*zD7ZEly z_${Tn{8tID`~O|hfKp&_NLo*D2Vn##GV>F>LvCnJ|Hzx3Q&!_{FxUHz8=h0fQ~hj; zZ^^l_=M2z}CW|!jsq%XrX)_3_40+l_T{8;w1%Zq-v0=Eki3Y_J0Ajg{A0*^>W=VB3 z8JJq6=X&Kk>x=gSOdT`;`x9unT>KjGMHe#F@I}YO#IWgF{Wq}H-r2Ch>T!y6?~IE# zkP@p>ToSuV0`PCvzUM_?n_@w>W4=X?S%;pvTfc$LW@UiRzW`%cg zB5a3e0#0 zfY^xfjPWNg;=sVM__wrdd9fDvEHTgd@i%N~VP5#e67o0z?q?d@#h7V7))xxuGug|B zdX10p%%?_qYNTaIJ={uyjSi)7YY*^$_*^Q3?BP3JrqJfk(JV`a4A82|(S<@JC*}7s$yavFSq<*59BE;c9Vp{Gq{&aMUVUNV8eMPKRZ`! z2>)>ckk*^k2CNvK@=LTiK|(2v^Z^A(Y#vWipW{|nMo#F^@()uSH2m6P3jqT&Bf=Ysrjb3CYhi{{0m_d>wRf=SV0p~9Mpm& zAL2(PbqTrkk^Q~pM7v&KPf&3rRQdh~1FkjM{#;I;5R!z95SDGsMc?4|JBKz>#(IVr zm*@=r&VH~0&O>?#E|6|Lsra-M(FFZ^cBCZ%Ykij*sE1ZVBbTo9?`=4V&&VY;R*zmf zc@R^EC`cEmFgLkJtxWnDv}D>P=EH)a&UNGSjAK`S*GthAGfFB8Z)HA}n&!`FCOJM} zm`V~0M=Pk%A~^_mDN>;N`6i{zF2C$+9G&SNo+qYhqKob^eJ7H*7{<>-dnB_|S(Xa2 zE|@~BwTz1D!|8n#yG4|SZwIu-q zmsq}Br4SSpZ;7lWhI`svIZ4ouv48@bQUN{S5TZOj)>Bjc+fQ@Y71$}KJFkfPB0=^Z z=qN*PZWFT~BZ|0Z<0Xzd>AtG9v+NwaTEi+niXb(Z0qlL^7Gpi$GnI&z}2gcW2w-)e_{(Ej&HKjr>NYh#LLl1j=?Q-g;)@NT;+fk)Ik< z+u37sZw_VgRSY*+Pubf0lhKO6o@-O=^uJU4i|kA$ehcJ##-!$YH|M}mI1fLvg!<%k z{U$Vily@R-Y*ubVuYyEN4q7*?!po1ITgum;zZA6J&jX=i4q9WM<2KTCh5X3~&gvNg ztVpirK!i7N%oKdt@mOvd=C%DF;JurNtHf2H{Ycrp9@Uny_k$%Folk=Vk#{)K*Uj%|*l!<` z5!}qzenSDzxe`6+SrWu;d0RQ*!NP=4>mC*Cp+dmuEi?-wr27?@(V`-Rmill;nhA0y z!^Q~W2nol5sZGglMnl}?hyOeh>sy}I(}dGA3+;tII<&pP9Iq$XCVYf+>2ty%r{K+w zvf{qZoo$=u0`FrPOhFYOUh1RZO8biX13O`aO~~C-{O?6>L5V2l_hECJteyRRM>j^$ z{-WXzPBr~Uy9=cWd3~83I#N$VptB9*BSK&?nq^A?k1I!20VV_UniDZysFLtS!QE9d z0QOFQoK;f+p=l8K#(PG$5;Qg-tHH~1`MM>x1Dke)R4TA5(+GLcaJoIRj zi~9j@winTnM!rG>$~zp9AzI)s>oc|?8}pX?=G0pn-g4>bJ~X)->L|+1PsnP zSy>7bkys3_@_~%A?3ym8IAsL;^}Qbwm@!JeEu=JFj~GpfzFL3f*s@``_~JAbe?lJL z%_eEYY1AAj&N<+Qb1kSG{I=IF3TN6P})g$1-jedC0Mtnaok!t^jOoz98>9 zT#=N#S?O~MFxAMpLk7WsQVd&-ka3}aBz^nZ^=?iW`YDXa|3iDNuWmiqhjD&UJgYrg z2*%VJw&&Jrrvu2)O&Qwt1BX~1D$y^%O2q@9<(PPQR6a30u+VxItymaQ;jRQ+Gx*<{ zaO{I;-3Y$ntuF>{wH);nV0Ng%gTMxWv)_XFTlvOCf+Um3>tY^Vb-IbXx&?IhDm5g2 zL#X~Kw@!N%^5Z&A$f(7O5eA_j|B2K!d)$2V4e18WcriZ7#EPy@nnqY3`FiQ6&kAbF zRe5F(U?LDY8WwN5#@aB_e(!l19F&1$|Lrbu8jwuOvvm#+=7Sa&l*u-PXBGVv~sWhaXnRdBej5^p8H7* z`(HwilT8B2hx($bT^5sqjTsR#gPaBZ9zdTv2shv$45IewUk)508pWa{YFK#tJUs9K z*V4~w(U@F{hB`hEq3Y^ao_LtKcm3Ly1`E==n+jr&DS~J)s{32 zCITA#@61-lJuhe@K{$W;>Bupae9%$2g?RPZf?~w}O0q^=9zV>n(Nq!rTvuzl07yEK z6nMr#?p^LE&|cSiM6DifuNbUB^JhZhAi|#D|2ns$_y>_5uZg`w7@iV*I}@P%sND%u zkXt^9q#;o13m{{c34MygK(r)HL=Nc1hb=(yr*%mA7;{yVAYTr~&kAy8 zdjBFclXr?CYvd2y`p$rve!O?o?_ZY94Gw=Sf$O@rh;$4L%WUAet}!ew*H(Tp8n; ztDl#EMpyXD8Zzzik1V@BhC_!}K&@cWcOJe!h$`aD!8lKTd(+ds`k3Ly0p+9o#tWJJ zQnL#OFapn`>}>zOn5SK0%@HXYdEOx!jH?Kdij2a)zTYUL z1`is~mTUOoGh6xNClvKitYrS~`whWkmRC0bQ)La|(daUJ0BoWo$j^=_V=yYMWR)tc zM!6EdN1D-LZCAOaOzI0bmZxDk4FV%Nn5?-g;5=226u{}vJYl(cAEIc=WIM1MW8NrQZqnr_C%AB3P09QlV>TV{+84NM7 z1y@HZZ8%vmUifkNPH2~CJX$V^BitUcJPo>G0BytITwf>s_W`o}prZo?HX_#TH4Ks4 zARo>Ov%(IF=A(W0{_lWG(u2PZ@YgBx2Y7ef$lqn~f;=`$O1IPw6OPgy@SwGLR! z6WvuvK60sDm;?CD@XFI}ppP7kRAT$qfU^Mj7*;ZJ^(T)4YU2#`Zg?}l@&Gr13+-=$ zIg|k&qP7U$&gQf1D|Me!3^LQF;Q!lsi&DX&a9;FAJeGE*oUCNL>j8L48Kmtrqi_n? zNOll53N|9;d)h5Zi;KQH54Mbkp|{Eng4Nxr9kS7z7n%`qrJAQg84e?tQHm!<`w|@& z%X!ng-lvt#US7%P2eEW-DJpviOPU90;gIsjdks;1^MD)|6fpNhJnIF;mIWC|tUjoW zjIrVI9mF<9fK6tST)&LoPZuFSs|W<~%gl5*4B zDQLRacC|-z@cZyFjJA%Pheofg?qmRVm*vdT0mg8Npjg-Wm1tGtt@PF=+#4bdBp&;L zwxVSa;=d*UO!_jSu_^;7c(E*b&tAk6(k1j3=m^s_45lt_K3xu0fop7xIJG88xrInO z^u7^%?ApEfHh{tpZN*W0Uc@Z+YU@0ca(YDc87((5r#r`h%j1^`rl>hZ`uCax7|ivz zs<(&Sf7>rk&JbY>7BmspNqN$z&qLqnA?EZ;>56ilGP}cXF3;b`=)c2;XQ9g$pC6BC zSlf6Xc98Ie6>QYJ2S^CQMz0q}O-;1~RIFt{dC~A@F$6YSLaSs?&8^VBF(P`NkR#^- zU8npUD_=|EWq07?+@MW$hqvGB>&Le!`Qi2BIjPTW3kxbAIWP*UXFc@3)VgXIK9lz7 zGWYto{s(>q-_a8Ba9oRw*R&&S8S9rzztfgn%&C|mFjK$E(Y^?M#6WEuf1>?y^mfU} zxv62NY%>F}*PGNzj>}NgvB1AZ?n#-7w2QvYO<_u_=pn_}yk~UlK1)QEunv3tOHchyzF_jv2=E*gB# z#6Ljj7W4AuC^T$*;wq9=;!yIb2(y9}Gjqs2G|;4PcXGSDq$5Gjr+f>xzL^1CETnS1 z^sGk=itmAw9P>2%jWhq!w?!m`7b~_Z)sk25I_q3t+vk z0F#C)bh8$lJ)k~rl$h6-^zzcveWjv3moGm%%Ic${8$W-@|r4kLzdZR1{K+5vadu8_a0JcScjkI zk8Mdq*(HuYKR>Bad62m^4NZj5eLZR&O+B^SuxG<@u+*uzC-SM~&$q)`u_r$MfVIwQ z#`6~;eDwIR)@g?65uD~}OpGbV#c-$T(u5Fc(q3Kf*hYI}NOdG-scSE~?}F>#|GtcZ zut&8vEGS2Zuds%+>I8W`Hj8u$s_V@p>sP-{&DW5Upi=fsT7!TbtqMM<9IQOUfiKAR z;p|&I$@b5S47o!+@NCnrwNi$cx0_Wx*x0NV@rydS#HvYXjBx@1esJDK6)!bIqxFUt3- zSh&IztPho!Fd?eI{f!`Jv`;=Da=jl^!b2!B2F>Kih=|6J5e;XrVKktRg~x1T1K8NJ zBKM)rQBU{OjcyGo1{vq2{V~ZsvR}`7Fp75qSqa;)e}Ipg#vSBi#+O?W=Dm0IeS8Dt zX}$2x%9qMg$3CNDUw&8hu@_H-C#AL(%u#O(@PEJn^5wTbN?(FEtw!Ul%#RQ0clmG0Dok|duQH64|{IUp1AD0^Y7Y=Dn`5jR7SED z=c6tl?nevFo(=DpVCj+df}{O$CES?C6Bbz;GmEt&;{#uw6(>oNK^pE2f-iiS{!a_x4%-J0G^>H=hzXG@%9(PA2O(~dQj@{h9S^v+<3fwz%pER5IIP_ z<#LAtieKK4eAf^D7Xk|9a?P}BRd+t7Ild+&s51pfE$Ox+Xbv@H-*p`YT2K_d8r=v=lmD?r@Ek_L8jIoeA&AR$Y=4 za7UI*OlQnA@f>>?%yPl);+@tsD|n&Z9=;>%4PJZ#)AOOoaykluPvFTivgW-($Vnx( zpEJl085+(h{l~uqq(xRgnRY7O{=-oj3QUJ4(<|HeFM=EfuJwuB0c{BV&3!6Q0HCWo zU;kIrMF;=%7#^HuS$Vsa;|X@TCPl@I+Djad6Bi2A&>L8yC(%NSU(94r28`tWk7FvL zvH4%~?8Ob%yfg}L)lf9appce%z)@ZIl-E#shahT~v2wpfodhQa1g~ovS$7i{z`pW` zbP2Y~g<*6QHC=u&%h>)Y`Rz>ZM(3pG!n&~ZdDy2{0`T#kiW+TZl6ZPwXEAf$-S*{v zcxoHp)$Hcf&*{~Ws>@b}PVP&4`tWT`y7B)Gf)!V9Y_8fbW@K7?Ms*r$%%?3l&H=c` zp$Y7JetIfc&$K=sh{iojo5zA4%XS6-%#SMA);hf-Z?4RkjPn~@3~!V~QDcrk8}0Ny zPF(%361gT&79R@p8*fYDPP%H?oFLxB#{K~nUfLbGlT2%m-q3ORT+$dnrjjS=*!#vO zSnp|M(D4v~j(%lAv`>TWDFJ5 z>(-lQnS#APJKvL$3VNB*)iuEoH6niVrFl<#XE`>{w@WU9#q|DFH3=H!sk0vNdS}>u zdwo@e0+dO0VoRCT5wK>bi7Gf-`%vho(!SwB-C_3l&m zU3&{NNyb?Z)6)AESyvXG<=f+ZMX4e%I^-95UqN3yLvj)J&}*;-=4o(GXw8@lLrOky z>H6ic#ianN84@RCbge-U!$Z=ERXJcb4)Y|>3Yvf$9tgPK*igaWV*-9Im$#^|VXvt@nfkkEM0XM3J1 z9OZ*G<8f;G3^rQLKobqbQQh4-O!zOtb7$*Ep^fep3i#r)vaiu=E@o!1^fxCo^G0yd zu@#DXCjGv>I9ZV~557b>CJ6N8#@r{&!4GmuF}UwAPX zF+R6=tgmiU0+vUX(aI+ADTw-Lc>lca=r%oT(!JvcOWX@aK3wW*Hy+DLc!I*vL1$rl zpLz<&tYWQw7@p|cEHY7^lpV0(>o^(8^>LZal`zmF6j|Eb75fQ(p910@-35~?eJhU{ ztV4I438RG%9-lFSizY*?LIZsCW4$A|zKh$hx?IoAgV@%FjF7^x^djJq(N-oh+A0Gc zOb1X-)!pm7ispfgv-kCqnBd`E7^jRdZoH&wdLvd5daLZK94g~#mz#y(qehwG0cnv12bQ#v4_3jGB#=EE&cZ8Cx$ zUB=ivPmLGq=gVpxz<1$@79N8|7Z@!;IxdjoFjrDwcs>dm#u86WCXqi+VxEXZkp?)nE`cyIQgySmDAS~^N7C&GW4J_?zo({`Z)Yf z;Sc9b_&g{(&gHidesRcTc>9t+FV7EwD-go70ou9`Mk0bp&@Y{F2;vHwDQSl9xO4Am zT-buoHg?Z+wAAdG99C_~f>mG6qxrWNSqV1XxT9;$L1+*-k<0G$gChrnP&jK(12ZVL z0yW3mhZiH^Og7PkJ2eBk)+>wHO6aw`jLgoJ0LW1Rx;B#$k2)p;N|M0g*u1^3GUNND zW`G{WzR(zLcTJ5Q4nL{)Zx=Zi$i!sD;L0#n)$gj;@H<*ZASy$IUf>*y%z*X7&C zI_AI?P-I^OmBr2U{jEo^5dup8dknyjB?pxYW>C%(yF+2*9(4>RtpFV3Q*`lI9IYt8 z!)yHMmvOOip0W6q>~l6r|DbDdvu{s*!uc@|I+NnvQP@gw)?Anx9UoTcVg#7Yf1D_3 zCi$}&!AQ+H`k5x&qCut+JUX+WUY)Mm*|ggui%0?oYIrd`2OsoJgQIcQ@c0`+6G97b z#7(CbnQVqk0bb@abX-uI*r6Rk{YEe3l(>WPyc{+vQ<3V!kLP^6j?`4sQep1u5~y^m;?L8!ZAVDW2}45hUk^Em5cz~ z`?p8r%xo*HmMQ_y$oGD1-lN)G-G*$`dw%9&t|9Hxe-oimsV;@yC_@T{ZHVrHF?`CM{gO@iT)ik6sJA}reD);!&{EJiEGSg4B%&17; zSSg;Dm&WDAx$X0KsR4HzS{?-(mPJ?t<6uhZDY`fO11UiMSG!%JcVz*eN#@*#splWM zU}HWWHQ&M!bk_l@QBV32g-tki_=`5_8zKjz(cO*~TX-;OqM<{R?xs^6lOqheHFxL1 z{|XR~vFZhQCC4q#*O~Jj3mU=s1|pp49VRW>(TV^&E8Rlqhx0rEeRc~G+}=Gmau*N) zk>i>OCPP6-NV7Tw*0+H6L6Wa}@f3*Po}^e^u&KKv;E&yIBcC+EC_VBQa>(Q+!+q%0 z$pLLRkdRWqybJ-AJBGG(t-+NGEWoYeV3>P~I z$167Tp7y&ae4yfDW_A?&y~=hq34B#TFcUv0$obJDeVSjFZgieCp#cBJm8t$9KvXlu z(;)ab!u1yLD{QRK*GJM{S0~%QYy;?zs_g+~mw;7HJpK@>2||qbVlz~2z`3tx@TmD) zIl0uDi}b^(8;WMVj2HA>K$F0in3DIXnaOxT0KF&gwHFOLqVOk|4*cdJaCM8Exsm=0 z#?%)hA3(z577{?mBxtyi&3^!n7XY&(8kNx2VLmJO{`zi(?#JeDH=(Hp=$SP{$s8!X zJkMNEPtGl|o`L(|)fEU8uph?G?Y^Xc;FjVDAjA7_+uU|=fYmulW}d5mNdj~BISF`) z%SZg_O@WRWf>@0?*rs$W7EwgF?G!3W>P{yJtSDqvR-$Z{Xa}ycU;c<`+kgU zI*24aIg}EjrL-NA3MncrAq_3kE)83$9xW*({2S)Sv8pO#OBD_95yn`e7 zct<{_A>qa>g4KOx7-?lzBZ9+ zO~OyTB7E6jElP6}W%n7-M`i&9=k}}!e^96|wtp;!c^pR()7}wV!26fBhCn-5dQ>}} zE2403(QO<%TjG+d#LO>kdZ4*0qxXr@@Qd}D@;8Ay+7gc&xmY{G89uU;a~-iFlz+I? z4H)KUnEdlu?zsQ*SRF8{-e!`zIH{2@TP+YtS%XRm9v_cYmzH z9#K3QL^Y>v4P2P`F8S^LMMeszBygLF<=N+h`jB5P=JuEZ6Jaq^QnCBG$ zUrk_+jd)au&FqQ!Hz_%Woq64xnc7}yDbfo8Bndt@Pk)hofrl)&Zj{IeTx@|?m~Wgq z-Rgs>fz?;*5{MObmSsU>D^`(0_v=4Qg0D46P1b%MK%6%S*wqd|$c-aAIb042kO=(+ zFOH$svL&W9*vuoQ)OHrhSdTwFI)_ZrhPgN+E4Nu7iSX&~9Tq9m%)R4qWaq}kr9kqm z_rp_2Kv6ur3ia({uB$D(&VRGQ$MaqfBe)@Q&cM3S0B^c*FT*s=OR09;m)EP_8hB`h z8}AeSE`gu<5zibNOOdGWPltvHaTKzMJ=n2PCOZL(ZQnK}K3LFi<^`19>)L9M@Whh* z3fEZXpJ&(TV5y{^YDcPa{i)A1hGiL{il7Y<_SD)|T`GlHN0NvoIJVRQrW* zEaqjcn1QStFM8J<4Wj=6dCOnuYSK!mTYXd%v4VfiN=CEx%RYO50FizUD+SLOthb!~ z^t3lv-n`<^c!z^8?$NP(vrwg#gJeE9&nL;kWe+>@L~b}HZ)N`8XPRVV8WMfdgTsf4 zc0SNKk5za;uWE__68XkrGp!#G4g;s(-Eb{{1R8?KuJ0PJ(+FlB)k#JTZVphu9Jp&g zyx4^H?byhf;83~qEVkc2bSGms265J3-5%4yN1Uz-DwNT;b3O7?z!)%wA{SbEOvRf4vty_z6CZ`0HEAtK~+IR$$F-b*QrmFOluO=|CuEOWGH+xMf_sy z+N0Sm2L`T-V9-CeJ$LZjW5DsSP=Dmz8KT{q+$BspPJraSj;cx4%2ou%J*j-;{(Hw> zIIpBdRlGT|x*@lnY$xEhYfhyoZ?s|<$dfOXkW2d`-Z;Vc3`d;Iv4P?jA)n& zE~BiuU&};usSat~{C(HbvMp~5^)J={+&IW#FhiuoM2(7f_2mYib=k7lqv0Ec()NRX zNw{#?`D^v8D#zCc(fi+AJ=Y8R)>jgGZTEn`cos`X$EcZe+v`ZyGZ zUUYt;uUl#hMr-X+Hb%%OL?eFXQ2-*&s~&vgkTraF=Wa_5xu*$f{AZE6ULKSgxU;RR2GcC=IZJ*s@q?||B$_eYREJNwPR76V_VBaJzv8e z+$FPOTVQLMUAE^sCXuLx-SW4yqhHxnYg#}EY!LC*x>G{;$)zu1%t)k`ALqMXw@ZZ> zcJ~WiDx!VaH)vZ3s!{QqR5TLz7fjt-rvl{=yrAmFBS}#^neR<@!D!hq@x9jUUbyp3 zW>bEIMRmjr2W&%UeClr$?{Cr8cEmDU716``wd*X!ZCdpXC~%)z)qXtWv%h$M1v)B5 zb1aM0L#nSS{zAIPNA#xGtAPyQ6zVCn!63zzQLh8YA-4gniyqX)^$}5rE0G<@ikUdC zb1U3!U&x=GVE7HLnMIQ_V#4ApT%X3R7%|%Yo{F~(Qogh_#l0{Tv`54ZMF6`aN`!=~ z8GD21Dkx5u9M(+Ob6M8z0lQcqbg}*?;}T$2}URp>2@^&sh$LJ(8{ za~4N}9sS8^`4?!0H8vX$CY)adk9@x_lb}4HKsd2xA`<6h7OY91A3HezZx8*=H~`mw zRjY3o*fz!f=AiaA5-z+$l`clZExD?{w8RN)y2g$leoaUUq36nWa=2aMO;nWo5&J-J zjF%C$cKIZT3(^YpCtty9OoSj9$&zR<4Lwr~{!*Iji;wXe^h)JAvaP{-4X&@Y4EWFQ zFD7VJ{nSXa97S8VmMg+GykvXjBLGN@9Y!5tLW`A<8soaV%HO{p9jk@GlmKWe$iwd>wM8;qEY*ONYMQA}1{sB}J$2!P z4D#7PlE&6%)h0SzoKXi24b#cS5{UF%pNiI4cg+`-^k6Bp5%mlhl>`&P0=%Vs;~tfC zoG~jnFW?!x9-d^W0k5t^@PhQ4QFJ)V@VB!B%qK}WnK@d9)F$@A&TB6!aS&{EfXl~QdhhJ+FhYEspJKxz)(ljOfU8T6 zq=~2P#yN;;h}x&3CVbk2LMcc2?nMI*?$jXpt4({Kv0bO8d|plSPk8hhAoNXbTS?;V zeP41y5~zt}710if-7~%-%j$QlW*G`8_S>&QK4pKXqFTzXwKiQ~n0((LNUQrr4x1S%Nj8Jy}r$<1bCv`#4rUJHX^ z+V=e*bQDp~>8&EywK>YBOpdi~@g+)7n`U2sc)!X5*`nLS@wZS?OEZ^8k}P}Xq)xvO z-hO$I-0%wyjII$%@DtC4h!3K+KxwCNR}ngDC~6Sy>2<|ei3CO7p-Y5>@iXwSGGe$t z?$P^)wU0e>D9rsbT8VF56(JXK=9a5Q?m>WPHNHVUOD;6i?cq6S%E=pwUyqm`hi2(2#a)be_h z2;SrRS3Szb-g1R#E~D`7*ZaygCqfHfqseM3!cTeTg0#TXadi&qr>tLP;}K8f3tjj9 zd6uD*?(8s|&o*%JTo_#(}As{I1;Eb~r;UZX<3g!(q<>UaFX}QMz^|Z%J;dhHTc_St552AZa_xUr<2V^h4 zl~3RwUILa5LElCrwmuJyZ}Csp#pvfWIZ770h$RKX&vbNduv@LGpY zH!EMXG)_M(Nci)Wo?Tl_Xm_9ZVERj@fOY#Kvb%PGD6jZshD-J;LX7?`MjYJ2WckT? z-Gdh&87j#2SC@d*9iXBn)14c4!>2g6ewJna-H(Rp{S`U|5$9}HH!gWdm~}s%GzE5k_Go4BynzgoEwk|YK5&^7D&J#xLYvpC(_l`3? zacY@-(9rM3pE$zr)S&-z&{@YT`eohR)~cHo77I?|lQ|8`m6(E@nr1T_te1+P-yJtd zTvUA4R)l?N{^}eg z0J8Wd*s~uE*rmKqT9~QPI`ZO7RB+mTqlXus)%A8)G~Q+Y*n4i_YNCO_HZi~_`&9e( z1EEzu9we_OwttyMeS8FH1uOxHv4)~~g8bqM%X@wa(afrRj!BQ5UM2XE z$$7-eVY=#M#eLxZPq&VA(j1gO9>LCWpg`FEMsPXCrH zT9aCzL4*Ug8Ib!St~!7jBIeS#QM9p@>N0&bqkunWWyE)`1h&fh{GDfy+Q@$r5VSVk z^|UQQ>6}&Gr};=5z9E!nL;vT=eZV|N?Vs;7)z53y`~e3wQ)A-Pl4ELuYE2cNhUNW{ zdFo5`Gr4rI%->xtCa8l(S+e7ViA1ca8H`x4GYG98((cd644ZJRkXK2+sCmIaS!8Af z*e-x@RbT}xT80v*2mB8 z`Ib-GqmX5xS!6NKa+BNmlM}FqHV@(*3aKJ5vX<_y)+yTeGJEp39=qo$4HyT_6wu6n zNH3QiG|@=QZHQO(YE|o%dz-snwjPPN@LFLWk05z?DJt%7#RDuj@Bdxakk-Jt4oJB1<_HKIleUXeS-l<7*)J7xFc13HuZ||Y^vb}?o7U~YO6IV6x?|8-;OXS zU!#wq>eTtU|D$6;ohjb+JOUOhWS98r{P#!LXiqKT>PEo3)N-q`5BvlI;`vF-iiMoa zcNd~Bt=a+}+aCLs@2O4dLIta{{Syqmm-7t_#83_-9$mj^fi~+IfPCM9if~1WQ}R^S z)pP!Ww8bU32wl_XBBlTKh$z~0Y05655B^2fo^6tgAFq3xj*YEPEVN@za1~x0xiM7~ z9+WRZ@jtaIJK@v^Gscx>IuSdb$M37R&MQ_Ajq8#{v|9FMY3nxn(Zqe1eJiLBp`&tiTsz%XyNEU{|+OOU^7GcgrSv` zF9l%*tl3O)&mr|I`DMa1^?pu55C7o6_SHEdapoPDLqyBYUJlKj%LE|n5!wxs9OrZY*IF$SGli5I-SS=0rqS;!?CQI{?q zZP^&KkR##n&n+doOV+JN+C@d%pWO!4Jp&1jpyR_YG*NZ>UOytlisya!jZKs<$`R|- zbOVw*?`!nMYdIbMU_HT?F;!1V*8FNSW!3Y?Y|g=^i=Spn^eifU>n!?{UCsV9rhoXX zGv&^irBJ}SYH0bhb?Xd)zOtaM?Wt;)57t(IDfg>wrj_eLmr>dV-$q$Am6&o$^`$AA zMj2vbHR^Ey8T7vEQ@Sk&9{SRF@{ch898CRXlT z@@-pew$f3HzRQhwWK5&Ss=|XTM(TI$=h(w8=^?(>T<49)f#2a)DQg~ZnBu?$25?DQ zMzs28$&8IZdYXM&}jmsy9p1_T`y~efT=5 z@a2n1+f>;^l`fV1LikYkeT<*n?m|igqA)G$7jP$5f$%82hdzn>wMDHL2FOdg#oj z($%zq*h;IKqb4^KjHl)n&eqt>uO6gxr!+Mc*`f{P%^e@t%f_M{Ej)ctz@tv$r@Bxa z1jcP&1+NIA*X1ReuIpGThUMu#pLW+&<=yif`%#U=U$hfC*bR+BR*Sc4LEV=E*R zw)S9j;sWAY6K^y&pKY8xnGwAZG#H`&ILGQ}{kN(EddKWnyImX&qQ|U4{2IQS#I!Fb zC+Hvam_gt`)3Nse5~OY4HJ3V)jiV+o4&pa&xD0OK|RjYu<8mdqde9LspTtO?#&K3G$21o>`Aw4?(l$jcMQ1co+=1IAh zJPH~6yBo7o5*)_avc<|;l*xHMOl;=eu|LSY zfHl$i;4Sn3-@&T#`o(j8U6VXfE!Lxm@vaEZGo+&coo189N{}9fU>W?Mxgrkq0~vf} zRcyI5Q{svu`f|ja-G+yC`ZsaRzKLsz)`dRrVUFBSFBb|(4_k4ycmikcR z-bk9tXr-I6c|K}DB4*HAyqDJwWa1pqu)r)zCC)nWva3uhia8c$nUVeTbeXr9>U3M* zxH&{3hkeh*{V2oTha`Kg+oYpseK4KZmf!2z<61FQBUO=7mC19OA7e_T1J>=*PDh!r z=rZJwu*%q<+#dcO>dw2?hL=#a8gCw!`jyLWk3qSdQoSmhb85hXLw|L%6-|T!w7m)Q zZ6?bBB&7n0!C&F4RDQPID0q6rXm^@uCp*tT`_Cjza5hkg{;zl|r3c*hD=XGfBdU)) zZrvOe)gN+CAnfkN)fMkW%2d?H+tcove@(mFzSVR|4@6y#SKzZPFrHx$r?Q?}5OBZ< z6iEL^%fF+DIZsHdbfJrc>_7roOL!k|K?Z@H{lz|6SZ#lNY(jC!9Vbq z0FJxmr8~cayVlS(cQZ8dOov~7P~pqjDtYzjShJW(y{gOJ@s^pYd67)Yp(l6Rzc?Rcf5E?QCpw;8v8k_L@=o?bbnGqB7oT#^ z4uzl`*cC@x!9vlRf{{@{#+>c+13y9Mb&aXT=Z|+(Ce;M^@MTs=KfRE*C}wZ;WB-+1 z3tyz3-_QyCb>|<#Boqw$d9++*+rQ~_#+^VX?-Ed~lU!O-9Nw`}`pL!Z=j;CNjSI{v zqqPh)i&@^B>X@`Ss2xK&pC3t`u`!wW&66urcu$$>>Gmg+L;69dY@DjHzX5E26)i?_ zJHMZ_6z+|t%s)-$AjEjGY#YJUMP9Z6EQ!HHDC(kH$CV6(BFMZRMOsZ;_BVIPQ?T@2XLBIa6Ay@i8x{`H7&UQM|n;#r{Fm)U4JA@LedCcYI7RjdPbZG&>a zY~5oeM4-|f?2SsoKp%igXufgg0#c)liUBOx^gj4dM?7Ncf$W$U4UpnTg1zal*GR|d`C(D1TFEe{h_-dZ2pNRrSgNnB2Nv4ffZ71>$p#Fhq(rAXAtv=y& zDt5k7X5Jo}od=(B-C9XGiIkk%#_3kep7JPL&*h+Ht&--uG`53tue^7vJ|I45D#-3) ztiS)*WZoyBa&MMA)q;*_{k5d34SWZAGSz={whAa3#JMOdw(Q?t7M12zjv{HsUmHIl zP-eML2P>%7Ct2j`hX?~WlnkmH4*UFIy8R2t)p3Z{8}B6#)F2OZTP~3Br)OI* z9W2oXfpxsvUXPP@yPqmPzJzr^2-*FNnA594|$0T9DxY=UG-&MF+{6&?5AS_r5BRH`vN^E>$0%F8RVn@`Zd@f28v? z9mssWK)-tYrK^aAjYpj%(;=BeK9hs-o|n>lGn8J4-VEjVT%1%CfBwxqj?IUpKNnGv zDAEBjWcPlAp*Q-T#u!kYhoK~d458L`kjR`QtI^AfEZk-+T&`_jLDDLaoCW2V-W?=j z`dmB3aN}LLVQ&#<<7IG4=n`g_6l#>y^`Z7pN*(w?N_)m)iX%#dR@Rx(W89eefsi4Y z$PmO{eCNv%f$+MuYRT@RAPr>R6tZxx(r||GGZtJr?fmZTz{tYOt75L>^}16&KG~#~ z&QR#aKUm75300i3)0FWe4(fSZstbl9em%&xJ757K1;P! zuagpGi41exWIkls#O(J2|ecgZmI^(OD$9a|I zBsc=m2T)Ep2Gd{Xa}N0f9i(n|>q)~~Q zmQ-%|4#`v8W0~;BB(_MNDnXHcf9-$DU=EOhI^dD74_bZyj>*=tp{?K5nahN%y3R*#G1i?6%<&~GUeFGMTZ+4p+`z6#jLZavh7lkEy2 zG~r4PjfLPdd8f9Py>?cHRqN!t7;}aBzf%afZ{3&hllc*6Ld2`QuXe0xfK963T-LhO zH2(#Im_=B5xsd%qsv^2pz;g{X;s-Dn!o@yb@P&qyuqyL%h^(Gw<%~Uv? zu~0?G>~-FJmR5W~5j>PhWGbzyi{#+&|91iz%LoO;mG|g4TC;JOJ(jk|`nf#3PDOwi z9rUTGz;5i=^6$ewzXCV8Hk@ z@wr7ZKWnLbzbC0BK*@$|A8ztiYH22F5~oCn)r@+1%*yb{7Ha+V%S$)0LWH2XCP7-e z{r9;{s*?hk+!rsqrp?81TuPy*GmV23^JG22=-g$Ii50iKQi!s^Tp};`OP#ee Y0W?afrIGcmy-8yI%_YTTxOcklVv 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 E0B(bEga7~l literal 0 HcmV?d00001 diff --git a/assets/js/lunr/lunr-en.js b/assets/js/lunr/lunr-en.js new file mode 100644 index 0000000..d1400a7 --- /dev/null +++ b/assets/js/lunr/lunr-en.js @@ -0,0 +1,69 @@ +var idx = lunr(function () { + this.field('title') + this.field('excerpt') + this.field('categories') + this.field('tags') + this.ref('id') + + this.pipeline.remove(lunr.trimmer) + + for (var item in store) { + this.add({ + title: store[item].title, + excerpt: store[item].excerpt, + categories: store[item].categories, + tags: store[item].tags, + id: item + }) + } +}); + +$(document).ready(function() { + $('input#search').on('keyup', function () { + var resultdiv = $('#results'); + var query = $(this).val().toLowerCase(); + var result = + idx.query(function (q) { + query.split(lunr.tokenizer.separator).forEach(function (term) { + q.term(term, { boost: 100 }) + if(query.lastIndexOf(" ") != query.length-1){ + q.term(term, { usePipeline: false, wildcard: lunr.Query.wildcard.TRAILING, boost: 10 }) + } + if (term != ""){ + q.term(term, { usePipeline: false, editDistance: 1, boost: 1 }) + } + }) + }); + resultdiv.empty(); + resultdiv.prepend('

'+result.length+' Result(s) found

'); + for (var item in result) { + var ref = result[item].ref; + if(store[ref].teaser){ + var searchitem = + '
'; + } + else{ + var searchitem = + '
'+ + '
'+ + '

'+ + ''+store[ref].title+''+ + '

'+ + '

'+store[ref].excerpt.split(" ").splice(0,20).join(" ")+'...

'+ + '
'+ + '
'; + } + resultdiv.append(searchitem); + } + }); +}); diff --git a/assets/js/lunr/lunr-gr.js b/assets/js/lunr/lunr-gr.js new file mode 100644 index 0000000..e829362 --- /dev/null +++ b/assets/js/lunr/lunr-gr.js @@ -0,0 +1,522 @@ +step1list = new Array(); +step1list["ΦΑΓΙΑ"] = "ΦΑ"; +step1list["ΦΑΓΙΟΥ"] = "ΦΑ"; +step1list["ΦΑΓΙΩΝ"] = "ΦΑ"; +step1list["ΣΚΑΓΙΑ"] = "ΣΚΑ"; +step1list["ΣΚΑΓΙΟΥ"] = "ΣΚΑ"; +step1list["ΣΚΑΓΙΩΝ"] = "ΣΚΑ"; +step1list["ΟΛΟΓΙΟΥ"] = "ΟΛΟ"; +step1list["ΟΛΟΓΙΑ"] = "ΟΛΟ"; +step1list["ΟΛΟΓΙΩΝ"] = "ΟΛΟ"; +step1list["ΣΟΓΙΟΥ"] = "ΣΟ"; +step1list["ΣΟΓΙΑ"] = "ΣΟ"; +step1list["ΣΟΓΙΩΝ"] = "ΣΟ"; +step1list["ΤΑΤΟΓΙΑ"] = "ΤΑΤΟ"; +step1list["ΤΑΤΟΓΙΟΥ"] = "ΤΑΤΟ"; +step1list["ΤΑΤΟΓΙΩΝ"] = "ΤΑΤΟ"; +step1list["ΚΡΕΑΣ"] = "ΚΡΕ"; +step1list["ΚΡΕΑΤΟΣ"] = "ΚΡΕ"; +step1list["ΚΡΕΑΤΑ"] = "ΚΡΕ"; +step1list["ΚΡΕΑΤΩΝ"] = "ΚΡΕ"; +step1list["ΠΕΡΑΣ"] = "ΠΕΡ"; +step1list["ΠΕΡΑΤΟΣ"] = "ΠΕΡ"; +step1list["ΠΕΡΑΤΑ"] = "ΠΕΡ"; +step1list["ΠΕΡΑΤΩΝ"] = "ΠΕΡ"; +step1list["ΤΕΡΑΣ"] = "ΤΕΡ"; +step1list["ΤΕΡΑΤΟΣ"] = "ΤΕΡ"; +step1list["ΤΕΡΑΤΑ"] = "ΤΕΡ"; +step1list["ΤΕΡΑΤΩΝ"] = "ΤΕΡ"; +step1list["ΦΩΣ"] = "ΦΩ"; +step1list["ΦΩΤΟΣ"] = "ΦΩ"; +step1list["ΦΩΤΑ"] = "ΦΩ"; +step1list["ΦΩΤΩΝ"] = "ΦΩ"; +step1list["ΚΑΘΕΣΤΩΣ"] = "ΚΑΘΕΣΤ"; +step1list["ΚΑΘΕΣΤΩΤΟΣ"] = "ΚΑΘΕΣΤ"; +step1list["ΚΑΘΕΣΤΩΤΑ"] = "ΚΑΘΕΣΤ"; +step1list["ΚΑΘΕΣΤΩΤΩΝ"] = "ΚΑΘΕΣΤ"; +step1list["ΓΕΓΟΝΟΣ"] = "ΓΕΓΟΝ"; +step1list["ΓΕΓΟΝΟΤΟΣ"] = "ΓΕΓΟΝ"; +step1list["ΓΕΓΟΝΟΤΑ"] = "ΓΕΓΟΝ"; +step1list["ΓΕΓΟΝΟΤΩΝ"] = "ΓΕΓΟΝ"; + +v = "[ΑΕΗΙΟΥΩ]"; +v2 = "[ΑΕΗΙΟΩ]" + +function stemWord(w) { + var stem; + var suffix; + var firstch; + var origword = w; + test1 = new Boolean(true); + + if(w.length < 4) { + return w; + } + + var re; + var re2; + var re3; + var re4; + + re = /(.*)(ΦΑΓΙΑ|ΦΑΓΙΟΥ|ΦΑΓΙΩΝ|ΣΚΑΓΙΑ|ΣΚΑΓΙΟΥ|ΣΚΑΓΙΩΝ|ΟΛΟΓΙΟΥ|ΟΛΟΓΙΑ|ΟΛΟΓΙΩΝ|ΣΟΓΙΟΥ|ΣΟΓΙΑ|ΣΟΓΙΩΝ|ΤΑΤΟΓΙΑ|ΤΑΤΟΓΙΟΥ|ΤΑΤΟΓΙΩΝ|ΚΡΕΑΣ|ΚΡΕΑΤΟΣ|ΚΡΕΑΤΑ|ΚΡΕΑΤΩΝ|ΠΕΡΑΣ|ΠΕΡΑΤΟΣ|ΠΕΡΑΤΑ|ΠΕΡΑΤΩΝ|ΤΕΡΑΣ|ΤΕΡΑΤΟΣ|ΤΕΡΑΤΑ|ΤΕΡΑΤΩΝ|ΦΩΣ|ΦΩΤΟΣ|ΦΩΤΑ|ΦΩΤΩΝ|ΚΑΘΕΣΤΩΣ|ΚΑΘΕΣΤΩΤΟΣ|ΚΑΘΕΣΤΩΤΑ|ΚΑΘΕΣΤΩΤΩΝ|ΓΕΓΟΝΟΣ|ΓΕΓΟΝΟΤΟΣ|ΓΕΓΟΝΟΤΑ|ΓΕΓΟΝΟΤΩΝ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + w = stem + step1list[suffix]; + test1 = false; + } + + re = /^(.+?)(ΑΔΕΣ|ΑΔΩΝ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + + reg1 = /(ΟΚ|ΜΑΜ|ΜΑΝ|ΜΠΑΜΠ|ΠΑΤΕΡ|ΓΙΑΓΙ|ΝΤΑΝΤ|ΚΥΡ|ΘΕΙ|ΠΕΘΕΡ)$/; + + if(!(reg1.test(w))) { + w = w + "ΑΔ"; + } + } + + re2 = /^(.+?)(ΕΔΕΣ|ΕΔΩΝ)$/; + + if(re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + w = stem; + + exept2 = /(ΟΠ|ΙΠ|ΕΜΠ|ΥΠ|ΓΗΠ|ΔΑΠ|ΚΡΑΣΠ|ΜΙΛ)$/; + + if(exept2.test(w)) { + w = w + "ΕΔ"; + } + } + + re3 = /^(.+?)(ΟΥΔΕΣ|ΟΥΔΩΝ)$/; + + if(re3.test(w)) { + var fp = re3.exec(w); + stem = fp[1]; + w = stem; + + exept3 = /(ΑΡΚ|ΚΑΛΙΑΚ|ΠΕΤΑΛ|ΛΙΧ|ΠΛΕΞ|ΣΚ|Σ|ΦΛ|ΦΡ|ΒΕΛ|ΛΟΥΛ|ΧΝ|ΣΠ|ΤΡΑΓ|ΦΕ)$/; + + if(exept3.test(w)) { + w = w + "ΟΥΔ"; + } + } + + re4 = /^(.+?)(ΕΩΣ|ΕΩΝ)$/; + + if(re4.test(w)) { + var fp = re4.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + exept4 = /^(Θ|Δ|ΕΛ|ΓΑΛ|Ν|Π|ΙΔ|ΠΑΡ)$/; + + if(exept4.test(w)) { + w = w + "Ε"; + } + } + + re = /^(.+?)(ΙΑ|ΙΟΥ|ΙΩΝ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + re2 = new RegExp(v + "$"); + test1 = false; + + if(re2.test(w)) { + w = stem + "Ι"; + } + } + + re = /^(.+?)(ΙΚΑ|ΙΚΟ|ΙΚΟΥ|ΙΚΩΝ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + re2 = new RegExp(v + "$"); + exept5 = /^(ΑΛ|ΑΔ|ΕΝΔ|ΑΜΑΝ|ΑΜΜΟΧΑΛ|ΗΘ|ΑΝΗΘ|ΑΝΤΙΔ|ΦΥΣ|ΒΡΩΜ|ΓΕΡ|ΕΞΩΔ|ΚΑΛΠ|ΚΑΛΛΙΝ|ΚΑΤΑΔ|ΜΟΥΛ|ΜΠΑΝ|ΜΠΑΓΙΑΤ|ΜΠΟΛ|ΜΠΟΣ|ΝΙΤ|ΞΙΚ|ΣΥΝΟΜΗΛ|ΠΕΤΣ|ΠΙΤΣ|ΠΙΚΑΝΤ|ΠΛΙΑΤΣ|ΠΟΣΤΕΛΝ|ΠΡΩΤΟΔ|ΣΕΡΤ|ΣΥΝΑΔ|ΤΣΑΜ|ΥΠΟΔ|ΦΙΛΟΝ|ΦΥΛΟΔ|ΧΑΣ)$/; + + if((exept5.test(w)) || (re2.test(w))) { + w = w + "ΙΚ"; + } + } + + re = /^(.+?)(ΑΜΕ)$/; + re2 = /^(.+?)(ΑΓΑΜΕ|ΗΣΑΜΕ|ΟΥΣΑΜΕ|ΗΚΑΜΕ|ΗΘΗΚΑΜΕ)$/; + if(w == "ΑΓΑΜΕ") { + w = "ΑΓΑΜ"; + } + + if(re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + } + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + exept6 = /^(ΑΝΑΠ|ΑΠΟΘ|ΑΠΟΚ|ΑΠΟΣΤ|ΒΟΥΒ|ΞΕΘ|ΟΥΛ|ΠΕΘ|ΠΙΚΡ|ΠΟΤ|ΣΙΧ|Χ)$/; + + if(exept6.test(w)) { + w = w + "ΑΜ"; + } + } + + re2 = /^(.+?)(ΑΝΕ)$/; + re3 = /^(.+?)(ΑΓΑΝΕ|ΗΣΑΝΕ|ΟΥΣΑΝΕ|ΙΟΝΤΑΝΕ|ΙΟΤΑΝΕ|ΙΟΥΝΤΑΝΕ|ΟΝΤΑΝΕ|ΟΤΑΝΕ|ΟΥΝΤΑΝΕ|ΗΚΑΝΕ|ΗΘΗΚΑΝΕ)$/; + + if(re3.test(w)) { + var fp = re3.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + re3 = /^(ΤΡ|ΤΣ)$/; + + if(re3.test(w)) { + w = w + "ΑΓΑΝ"; + } + } + + if(re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + re2 = new RegExp(v2 + "$"); + exept7 = /^(ΒΕΤΕΡ|ΒΟΥΛΚ|ΒΡΑΧΜ|Γ|ΔΡΑΔΟΥΜ|Θ|ΚΑΛΠΟΥΖ|ΚΑΣΤΕΛ|ΚΟΡΜΟΡ|ΛΑΟΠΛ|ΜΩΑΜΕΘ|Μ|ΜΟΥΣΟΥΛΜ|Ν|ΟΥΛ|Π|ΠΕΛΕΚ|ΠΛ|ΠΟΛΙΣ|ΠΟΡΤΟΛ|ΣΑΡΑΚΑΤΣ|ΣΟΥΛΤ|ΤΣΑΡΛΑΤ|ΟΡΦ|ΤΣΙΓΓ|ΤΣΟΠ|ΦΩΤΟΣΤΕΦ|Χ|ΨΥΧΟΠΛ|ΑΓ|ΟΡΦ|ΓΑΛ|ΓΕΡ|ΔΕΚ|ΔΙΠΛ|ΑΜΕΡΙΚΑΝ|ΟΥΡ|ΠΙΘ|ΠΟΥΡΙΤ|Σ|ΖΩΝΤ|ΙΚ|ΚΑΣΤ|ΚΟΠ|ΛΙΧ|ΛΟΥΘΗΡ|ΜΑΙΝΤ|ΜΕΛ|ΣΙΓ|ΣΠ|ΣΤΕΓ|ΤΡΑΓ|ΤΣΑΓ|Φ|ΕΡ|ΑΔΑΠ|ΑΘΙΓΓ|ΑΜΗΧ|ΑΝΙΚ|ΑΝΟΡΓ|ΑΠΗΓ|ΑΠΙΘ|ΑΤΣΙΓΓ|ΒΑΣ|ΒΑΣΚ|ΒΑΘΥΓΑΛ|ΒΙΟΜΗΧ|ΒΡΑΧΥΚ|ΔΙΑΤ|ΔΙΑΦ|ΕΝΟΡΓ|ΘΥΣ|ΚΑΠΝΟΒΙΟΜΗΧ|ΚΑΤΑΓΑΛ|ΚΛΙΒ|ΚΟΙΛΑΡΦ|ΛΙΒ|ΜΕΓΛΟΒΙΟΜΗΧ|ΜΙΚΡΟΒΙΟΜΗΧ|ΝΤΑΒ|ΞΗΡΟΚΛΙΒ|ΟΛΙΓΟΔΑΜ|ΟΛΟΓΑΛ|ΠΕΝΤΑΡΦ|ΠΕΡΗΦ|ΠΕΡΙΤΡ|ΠΛΑΤ|ΠΟΛΥΔΑΠ|ΠΟΛΥΜΗΧ|ΣΤΕΦ|ΤΑΒ|ΤΕΤ|ΥΠΕΡΗΦ|ΥΠΟΚΟΠ|ΧΑΜΗΛΟΔΑΠ|ΨΗΛΟΤΑΒ)$/; + + if((re2.test(w)) || (exept7.test(w))) { + w = w + "ΑΝ"; + } + } + + re3 = /^(.+?)(ΕΤΕ)$/; + re4 = /^(.+?)(ΗΣΕΤΕ)$/; + + if(re4.test(w)) { + var fp = re4.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + } + + if(re3.test(w)) { + var fp = re3.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + re3 = new RegExp(v2 + "$"); + exept8 = /(ΟΔ|ΑΙΡ|ΦΟΡ|ΤΑΘ|ΔΙΑΘ|ΣΧ|ΕΝΔ|ΕΥΡ|ΤΙΘ|ΥΠΕΡΘ|ΡΑΘ|ΕΝΘ|ΡΟΘ|ΣΘ|ΠΥΡ|ΑΙΝ|ΣΥΝΔ|ΣΥΝ|ΣΥΝΘ|ΧΩΡ|ΠΟΝ|ΒΡ|ΚΑΘ|ΕΥΘ|ΕΚΘ|ΝΕΤ|ΡΟΝ|ΑΡΚ|ΒΑΡ|ΒΟΛ|ΩΦΕΛ)$/; + exept9 = /^(ΑΒΑΡ|ΒΕΝ|ΕΝΑΡ|ΑΒΡ|ΑΔ|ΑΘ|ΑΝ|ΑΠΛ|ΒΑΡΟΝ|ΝΤΡ|ΣΚ|ΚΟΠ|ΜΠΟΡ|ΝΙΦ|ΠΑΓ|ΠΑΡΑΚΑΛ|ΣΕΡΠ|ΣΚΕΛ|ΣΥΡΦ|ΤΟΚ|Υ|Δ|ΕΜ|ΘΑΡΡ|Θ)$/; + + if((re3.test(w)) || (exept8.test(w)) || (exept9.test(w))) { + w = w + "ΕΤ"; + } + } + + re = /^(.+?)(ΟΝΤΑΣ|ΩΝΤΑΣ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + exept10 = /^(ΑΡΧ)$/; + exept11 = /(ΚΡΕ)$/; + if(exept10.test(w)) { + w = w + "ΟΝΤ"; + } + if(exept11.test(w)) { + w = w + "ΩΝΤ"; + } + } + + re = /^(.+?)(ΟΜΑΣΤΕ|ΙΟΜΑΣΤΕ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + exept11 = /^(ΟΝ)$/; + + if(exept11.test(w)) { + w = w + "ΟΜΑΣΤ"; + } + } + + re = /^(.+?)(ΕΣΤΕ)$/; + re2 = /^(.+?)(ΙΕΣΤΕ)$/; + + if(re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + re2 = /^(Π|ΑΠ|ΣΥΜΠ|ΑΣΥΜΠ|ΑΚΑΤΑΠ|ΑΜΕΤΑΜΦ)$/; + + if(re2.test(w)) { + w = w + "ΙΕΣΤ"; + } + } + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + exept12 = /^(ΑΛ|ΑΡ|ΕΚΤΕΛ|Ζ|Μ|Ξ|ΠΑΡΑΚΑΛ|ΑΡ|ΠΡΟ|ΝΙΣ)$/; + + if(exept12.test(w)) { + w = w + "ΕΣΤ"; + } + } + + re = /^(.+?)(ΗΚΑ|ΗΚΕΣ|ΗΚΕ)$/; + re2 = /^(.+?)(ΗΘΗΚΑ|ΗΘΗΚΕΣ|ΗΘΗΚΕ)$/; + + if(re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + } + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + exept13 = /(ΣΚΩΛ|ΣΚΟΥΛ|ΝΑΡΘ|ΣΦ|ΟΘ|ΠΙΘ)$/; + exept14 = /^(ΔΙΑΘ|Θ|ΠΑΡΑΚΑΤΑΘ|ΠΡΟΣΘ|ΣΥΝΘ|)$/; + + if((exept13.test(w)) || (exept14.test(w))) { + w = w + "ΗΚ"; + } + } + + re = /^(.+?)(ΟΥΣΑ|ΟΥΣΕΣ|ΟΥΣΕ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + exept15 = /^(ΦΑΡΜΑΚ|ΧΑΔ|ΑΓΚ|ΑΝΑΡΡ|ΒΡΟΜ|ΕΚΛΙΠ|ΛΑΜΠΙΔ|ΛΕΧ|Μ|ΠΑΤ|Ρ|Λ|ΜΕΔ|ΜΕΣΑΖ|ΥΠΟΤΕΙΝ|ΑΜ|ΑΙΘ|ΑΝΗΚ|ΔΕΣΠΟΖ|ΕΝΔΙΑΦΕΡ|ΔΕ|ΔΕΥΤΕΡΕΥ|ΚΑΘΑΡΕΥ|ΠΛΕ|ΤΣΑ)$/; + exept16 = /(ΠΟΔΑΡ|ΒΛΕΠ|ΠΑΝΤΑΧ|ΦΡΥΔ|ΜΑΝΤΙΛ|ΜΑΛΛ|ΚΥΜΑΤ|ΛΑΧ|ΛΗΓ|ΦΑΓ|ΟΜ|ΠΡΩΤ)$/; + + if((exept15.test(w)) || (exept16.test(w))) { + w = w + "ΟΥΣ"; + } + } + + re = /^(.+?)(ΑΓΑ|ΑΓΕΣ|ΑΓΕ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + exept17 = /^(ΨΟΦ|ΝΑΥΛΟΧ)$/; + exept20 = /(ΚΟΛΛ)$/; + exept18 = /^(ΑΒΑΣΤ|ΠΟΛΥΦ|ΑΔΗΦ|ΠΑΜΦ|Ρ|ΑΣΠ|ΑΦ|ΑΜΑΛ|ΑΜΑΛΛΙ|ΑΝΥΣΤ|ΑΠΕΡ|ΑΣΠΑΡ|ΑΧΑΡ|ΔΕΡΒΕΝ|ΔΡΟΣΟΠ|ΞΕΦ|ΝΕΟΠ|ΝΟΜΟΤ|ΟΛΟΠ|ΟΜΟΤ|ΠΡΟΣΤ|ΠΡΟΣΩΠΟΠ|ΣΥΜΠ|ΣΥΝΤ|Τ|ΥΠΟΤ|ΧΑΡ|ΑΕΙΠ|ΑΙΜΟΣΤ|ΑΝΥΠ|ΑΠΟΤ|ΑΡΤΙΠ|ΔΙΑΤ|ΕΝ|ΕΠΙΤ|ΚΡΟΚΑΛΟΠ|ΣΙΔΗΡΟΠ|Λ|ΝΑΥ|ΟΥΛΑΜ|ΟΥΡ|Π|ΤΡ|Μ)$/; + exept19 = /(ΟΦ|ΠΕΛ|ΧΟΡΤ|ΛΛ|ΣΦ|ΡΠ|ΦΡ|ΠΡ|ΛΟΧ|ΣΜΗΝ)$/; + + if(((exept18.test(w)) || (exept19.test(w))) && !((exept17.test(w)) || (exept20.test(w)))) { + w = w + "ΑΓ"; + } + } + + re = /^(.+?)(ΗΣΕ|ΗΣΟΥ|ΗΣΑ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + exept21 = /^(Ν|ΧΕΡΣΟΝ|ΔΩΔΕΚΑΝ|ΕΡΗΜΟΝ|ΜΕΓΑΛΟΝ|ΕΠΤΑΝ)$/; + + if(exept21.test(w)) { + w = w + "ΗΣ"; + } + } + + re = /^(.+?)(ΗΣΤΕ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + exept22 = /^(ΑΣΒ|ΣΒ|ΑΧΡ|ΧΡ|ΑΠΛ|ΑΕΙΜΝ|ΔΥΣΧΡ|ΕΥΧΡ|ΚΟΙΝΟΧΡ|ΠΑΛΙΜΨ)$/; + + if(exept22.test(w)) { + w = w + "ΗΣΤ"; + } + } + + re = /^(.+?)(ΟΥΝΕ|ΗΣΟΥΝΕ|ΗΘΟΥΝΕ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + exept23 = /^(Ν|Ρ|ΣΠΙ|ΣΤΡΑΒΟΜΟΥΤΣ|ΚΑΚΟΜΟΥΤΣ|ΕΞΩΝ)$/; + + if(exept23.test(w)) { + w = w + "ΟΥΝ"; + } + } + + re = /^(.+?)(ΟΥΜΕ|ΗΣΟΥΜΕ|ΗΘΟΥΜΕ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + test1 = false; + + exept24 = /^(ΠΑΡΑΣΟΥΣ|Φ|Χ|ΩΡΙΟΠΛ|ΑΖ|ΑΛΛΟΣΟΥΣ|ΑΣΟΥΣ)$/; + + if(exept24.test(w)) { + w = w + "ΟΥΜ"; + } + } + + re = /^(.+?)(ΜΑΤΑ|ΜΑΤΩΝ|ΜΑΤΟΣ)$/; + re2 = /^(.+?)(Α|ΑΓΑΤΕ|ΑΓΑΝ|ΑΕΙ|ΑΜΑΙ|ΑΝ|ΑΣ|ΑΣΑΙ|ΑΤΑΙ|ΑΩ|Ε|ΕΙ|ΕΙΣ|ΕΙΤΕ|ΕΣΑΙ|ΕΣ|ΕΤΑΙ|Ι|ΙΕΜΑΙ|ΙΕΜΑΣΤΕ|ΙΕΤΑΙ|ΙΕΣΑΙ|ΙΕΣΑΣΤΕ|ΙΟΜΑΣΤΑΝ|ΙΟΜΟΥΝ|ΙΟΜΟΥΝΑ|ΙΟΝΤΑΝ|ΙΟΝΤΟΥΣΑΝ|ΙΟΣΑΣΤΑΝ|ΙΟΣΑΣΤΕ|ΙΟΣΟΥΝ|ΙΟΣΟΥΝΑ|ΙΟΤΑΝ|ΙΟΥΜΑ|ΙΟΥΜΑΣΤΕ|ΙΟΥΝΤΑΙ|ΙΟΥΝΤΑΝ|Η|ΗΔΕΣ|ΗΔΩΝ|ΗΘΕΙ|ΗΘΕΙΣ|ΗΘΕΙΤΕ|ΗΘΗΚΑΤΕ|ΗΘΗΚΑΝ|ΗΘΟΥΝ|ΗΘΩ|ΗΚΑΤΕ|ΗΚΑΝ|ΗΣ|ΗΣΑΝ|ΗΣΑΤΕ|ΗΣΕΙ|ΗΣΕΣ|ΗΣΟΥΝ|ΗΣΩ|Ο|ΟΙ|ΟΜΑΙ|ΟΜΑΣΤΑΝ|ΟΜΟΥΝ|ΟΜΟΥΝΑ|ΟΝΤΑΙ|ΟΝΤΑΝ|ΟΝΤΟΥΣΑΝ|ΟΣ|ΟΣΑΣΤΑΝ|ΟΣΑΣΤΕ|ΟΣΟΥΝ|ΟΣΟΥΝΑ|ΟΤΑΝ|ΟΥ|ΟΥΜΑΙ|ΟΥΜΑΣΤΕ|ΟΥΝ|ΟΥΝΤΑΙ|ΟΥΝΤΑΝ|ΟΥΣ|ΟΥΣΑΝ|ΟΥΣΑΤΕ|Υ|ΥΣ|Ω|ΩΝ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem + "ΜΑ"; + } + + if((re2.test(w)) && (test1)) { + var fp = re2.exec(w); + stem = fp[1]; + w = stem; + + } + + re = /^(.+?)(ΕΣΤΕΡ|ΕΣΤΑΤ|ΟΤΕΡ|ΟΤΑΤ|ΥΤΕΡ|ΥΤΑΤ|ΩΤΕΡ|ΩΤΑΤ)$/; + + if(re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem; + } + + return w; +}; + +var greekStemmer = function (token) { + return token.update(function (word) { + return stemWord(word); + }) +} + +var idx = lunr(function () { + this.field('title') + this.field('excerpt') + this.field('categories') + this.field('tags') + this.ref('id') + + this.pipeline.remove(lunr.trimmer) + this.pipeline.add(greekStemmer) + this.pipeline.remove(lunr.stemmer) + + for (var item in store) { + this.add({ + title: store[item].title, + excerpt: store[item].excerpt, + categories: store[item].categories, + tags: store[item].tags, + id: item + }) + } +}); + +$(document).ready(function() { + $('input#search').on('keyup', function () { + var resultdiv = $('#results'); + var query = $(this).val().toLowerCase(); + var result = + idx.query(function (q) { + query.split(lunr.tokenizer.separator).forEach(function (term) { + q.term(term, { boost: 100 }) + if(query.lastIndexOf(" ") != query.length-1){ + q.term(term, { usePipeline: false, wildcard: lunr.Query.wildcard.TRAILING, boost: 10 }) + } + if (term != ""){ + q.term(term, { usePipeline: false, editDistance: 1, boost: 1 }) + } + }) + }); + resultdiv.empty(); + resultdiv.prepend('

'+result.length+' Result(s) found

'); + for (var item in result) { + var ref = result[item].ref; + if(store[ref].teaser){ + var searchitem = + '
'+ + '
'+ + '

'+ + ''+store[ref].title+''+ + '

'+ + '
'+ + ''+ + '
'+ + '

'+store[ref].excerpt.split(" ").splice(0,20).join(" ")+'...

'+ + '
'+ + '
'; + } + else{ + var searchitem = + '
'+ + '
'+ + '

'+ + ''+store[ref].title+''+ + '

'+ + '

'+store[ref].excerpt.split(" ").splice(0,20).join(" ")+'...

'+ + '
'+ + '
'; + } + resultdiv.append(searchitem); + } + }); +}); diff --git a/assets/js/lunr/lunr-store.js b/assets/js/lunr/lunr-store.js new file mode 100644 index 0000000..c8b8129 --- /dev/null +++ b/assets/js/lunr/lunr-store.js @@ -0,0 +1 @@ +var store = [] diff --git a/assets/js/lunr/lunr.js b/assets/js/lunr/lunr.js new file mode 100644 index 0000000..6aa370f --- /dev/null +++ b/assets/js/lunr/lunr.js @@ -0,0 +1,3475 @@ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */ + +;(function(){ + +/** + * A convenience function for configuring and constructing + * a new lunr Index. + * + * A lunr.Builder instance is created and the pipeline setup + * with a trimmer, stop word filter and stemmer. + * + * This builder object is yielded to the configuration function + * that is passed as a parameter, allowing the list of fields + * and other builder parameters to be customised. + * + * All documents _must_ be added within the passed config function. + * + * @example + * var idx = lunr(function () { + * this.field('title') + * this.field('body') + * this.ref('id') + * + * documents.forEach(function (doc) { + * this.add(doc) + * }, this) + * }) + * + * @see {@link lunr.Builder} + * @see {@link lunr.Pipeline} + * @see {@link lunr.trimmer} + * @see {@link lunr.stopWordFilter} + * @see {@link lunr.stemmer} + * @namespace {function} lunr + */ +var lunr = function (config) { + var builder = new lunr.Builder + + builder.pipeline.add( + lunr.trimmer, + lunr.stopWordFilter, + lunr.stemmer + ) + + builder.searchPipeline.add( + lunr.stemmer + ) + + config.call(builder, builder) + return builder.build() +} + +lunr.version = "2.3.9" +/*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * A namespace containing utils for the rest of the lunr library + * @namespace lunr.utils + */ +lunr.utils = {} + +/** + * Print a warning message to the console. + * + * @param {String} message The message to be printed. + * @memberOf lunr.utils + * @function + */ +lunr.utils.warn = (function (global) { + /* eslint-disable no-console */ + return function (message) { + if (global.console && console.warn) { + console.warn(message) + } + } + /* eslint-enable no-console */ +})(this) + +/** + * Convert an object to a string. + * + * In the case of `null` and `undefined` the function returns + * the empty string, in all other cases the result of calling + * `toString` on the passed object is returned. + * + * @param {Any} obj The object to convert to a string. + * @return {String} string representation of the passed object. + * @memberOf lunr.utils + */ +lunr.utils.asString = function (obj) { + if (obj === void 0 || obj === null) { + return "" + } else { + return obj.toString() + } +} + +/** + * Clones an object. + * + * Will create a copy of an existing object such that any mutations + * on the copy cannot affect the original. + * + * Only shallow objects are supported, passing a nested object to this + * function will cause a TypeError. + * + * Objects with primitives, and arrays of primitives are supported. + * + * @param {Object} obj The object to clone. + * @return {Object} a clone of the passed object. + * @throws {TypeError} when a nested object is passed. + * @memberOf Utils + */ +lunr.utils.clone = function (obj) { + if (obj === null || obj === undefined) { + return obj + } + + var clone = Object.create(null), + keys = Object.keys(obj) + + for (var i = 0; i < keys.length; i++) { + var key = keys[i], + val = obj[key] + + if (Array.isArray(val)) { + clone[key] = val.slice() + continue + } + + if (typeof val === 'string' || + typeof val === 'number' || + typeof val === 'boolean') { + clone[key] = val + continue + } + + throw new TypeError("clone is not deep and does not support nested objects") + } + + return clone +} +lunr.FieldRef = function (docRef, fieldName, stringValue) { + this.docRef = docRef + this.fieldName = fieldName + this._stringValue = stringValue +} + +lunr.FieldRef.joiner = "/" + +lunr.FieldRef.fromString = function (s) { + var n = s.indexOf(lunr.FieldRef.joiner) + + if (n === -1) { + throw "malformed field ref string" + } + + var fieldRef = s.slice(0, n), + docRef = s.slice(n + 1) + + return new lunr.FieldRef (docRef, fieldRef, s) +} + +lunr.FieldRef.prototype.toString = function () { + if (this._stringValue == undefined) { + this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef + } + + return this._stringValue +} +/*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * A lunr set. + * + * @constructor + */ +lunr.Set = function (elements) { + this.elements = Object.create(null) + + if (elements) { + this.length = elements.length + + for (var i = 0; i < this.length; i++) { + this.elements[elements[i]] = true + } + } else { + this.length = 0 + } +} + +/** + * A complete set that contains all elements. + * + * @static + * @readonly + * @type {lunr.Set} + */ +lunr.Set.complete = { + intersect: function (other) { + return other + }, + + union: function () { + return this + }, + + contains: function () { + return true + } +} + +/** + * An empty set that contains no elements. + * + * @static + * @readonly + * @type {lunr.Set} + */ +lunr.Set.empty = { + intersect: function () { + return this + }, + + union: function (other) { + return other + }, + + contains: function () { + return false + } +} + +/** + * Returns true if this set contains the specified object. + * + * @param {object} object - Object whose presence in this set is to be tested. + * @returns {boolean} - True if this set contains the specified object. + */ +lunr.Set.prototype.contains = function (object) { + return !!this.elements[object] +} + +/** + * Returns a new set containing only the elements that are present in both + * this set and the specified set. + * + * @param {lunr.Set} other - set to intersect with this set. + * @returns {lunr.Set} a new set that is the intersection of this and the specified set. + */ + +lunr.Set.prototype.intersect = function (other) { + var a, b, elements, intersection = [] + + if (other === lunr.Set.complete) { + return this + } + + if (other === lunr.Set.empty) { + return other + } + + if (this.length < other.length) { + a = this + b = other + } else { + a = other + b = this + } + + elements = Object.keys(a.elements) + + for (var i = 0; i < elements.length; i++) { + var element = elements[i] + if (element in b.elements) { + intersection.push(element) + } + } + + return new lunr.Set (intersection) +} + +/** + * Returns a new set combining the elements of this and the specified set. + * + * @param {lunr.Set} other - set to union with this set. + * @return {lunr.Set} a new set that is the union of this and the specified set. + */ + +lunr.Set.prototype.union = function (other) { + if (other === lunr.Set.complete) { + return lunr.Set.complete + } + + if (other === lunr.Set.empty) { + return this + } + + return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements))) +} +/** + * A function to calculate the inverse document frequency for + * a posting. This is shared between the builder and the index + * + * @private + * @param {object} posting - The posting for a given term + * @param {number} documentCount - The total number of documents. + */ +lunr.idf = function (posting, documentCount) { + var documentsWithTerm = 0 + + for (var fieldName in posting) { + if (fieldName == '_index') continue // Ignore the term index, its not a field + documentsWithTerm += Object.keys(posting[fieldName]).length + } + + var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5) + + return Math.log(1 + Math.abs(x)) +} + +/** + * A token wraps a string representation of a token + * as it is passed through the text processing pipeline. + * + * @constructor + * @param {string} [str=''] - The string token being wrapped. + * @param {object} [metadata={}] - Metadata associated with this token. + */ +lunr.Token = function (str, metadata) { + this.str = str || "" + this.metadata = metadata || {} +} + +/** + * Returns the token string that is being wrapped by this object. + * + * @returns {string} + */ +lunr.Token.prototype.toString = function () { + return this.str +} + +/** + * A token update function is used when updating or optionally + * when cloning a token. + * + * @callback lunr.Token~updateFunction + * @param {string} str - The string representation of the token. + * @param {Object} metadata - All metadata associated with this token. + */ + +/** + * Applies the given function to the wrapped string token. + * + * @example + * token.update(function (str, metadata) { + * return str.toUpperCase() + * }) + * + * @param {lunr.Token~updateFunction} fn - A function to apply to the token string. + * @returns {lunr.Token} + */ +lunr.Token.prototype.update = function (fn) { + this.str = fn(this.str, this.metadata) + return this +} + +/** + * Creates a clone of this token. Optionally a function can be + * applied to the cloned token. + * + * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token. + * @returns {lunr.Token} + */ +lunr.Token.prototype.clone = function (fn) { + fn = fn || function (s) { return s } + return new lunr.Token (fn(this.str, this.metadata), this.metadata) +} +/*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * A function for splitting a string into tokens ready to be inserted into + * the search index. Uses `lunr.tokenizer.separator` to split strings, change + * the value of this property to change how strings are split into tokens. + * + * This tokenizer will convert its parameter to a string by calling `toString` and + * then will split this string on the character in `lunr.tokenizer.separator`. + * Arrays will have their elements converted to strings and wrapped in a lunr.Token. + * + * Optional metadata can be passed to the tokenizer, this metadata will be cloned and + * added as metadata to every token that is created from the object to be tokenized. + * + * @static + * @param {?(string|object|object[])} obj - The object to convert into tokens + * @param {?object} metadata - Optional metadata to associate with every token + * @returns {lunr.Token[]} + * @see {@link lunr.Pipeline} + */ +lunr.tokenizer = function (obj, metadata) { + if (obj == null || obj == undefined) { + return [] + } + + if (Array.isArray(obj)) { + return obj.map(function (t) { + return new lunr.Token( + lunr.utils.asString(t).toLowerCase(), + lunr.utils.clone(metadata) + ) + }) + } + + var str = obj.toString().toLowerCase(), + len = str.length, + tokens = [] + + for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) { + var char = str.charAt(sliceEnd), + sliceLength = sliceEnd - sliceStart + + if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) { + + if (sliceLength > 0) { + var tokenMetadata = lunr.utils.clone(metadata) || {} + tokenMetadata["position"] = [sliceStart, sliceLength] + tokenMetadata["index"] = tokens.length + + tokens.push( + new lunr.Token ( + str.slice(sliceStart, sliceEnd), + tokenMetadata + ) + ) + } + + sliceStart = sliceEnd + 1 + } + + } + + return tokens +} + +/** + * The separator used to split a string into tokens. Override this property to change the behaviour of + * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens. + * + * @static + * @see lunr.tokenizer + */ +lunr.tokenizer.separator = /[\s\-]+/ +/*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * lunr.Pipelines maintain an ordered list of functions to be applied to all + * tokens in documents entering the search index and queries being ran against + * the index. + * + * An instance of lunr.Index created with the lunr shortcut will contain a + * pipeline with a stop word filter and an English language stemmer. Extra + * functions can be added before or after either of these functions or these + * default functions can be removed. + * + * When run the pipeline will call each function in turn, passing a token, the + * index of that token in the original list of all tokens and finally a list of + * all the original tokens. + * + * The output of functions in the pipeline will be passed to the next function + * in the pipeline. To exclude a token from entering the index the function + * should return undefined, the rest of the pipeline will not be called with + * this token. + * + * For serialisation of pipelines to work, all functions used in an instance of + * a pipeline should be registered with lunr.Pipeline. Registered functions can + * then be loaded. If trying to load a serialised pipeline that uses functions + * that are not registered an error will be thrown. + * + * If not planning on serialising the pipeline then registering pipeline functions + * is not necessary. + * + * @constructor + */ +lunr.Pipeline = function () { + this._stack = [] +} + +lunr.Pipeline.registeredFunctions = Object.create(null) + +/** + * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token + * string as well as all known metadata. A pipeline function can mutate the token string + * or mutate (or add) metadata for a given token. + * + * A pipeline function can indicate that the passed token should be discarded by returning + * null, undefined or an empty string. This token will not be passed to any downstream pipeline + * functions and will not be added to the index. + * + * Multiple tokens can be returned by returning an array of tokens. Each token will be passed + * to any downstream pipeline functions and all will returned tokens will be added to the index. + * + * Any number of pipeline functions may be chained together using a lunr.Pipeline. + * + * @interface lunr.PipelineFunction + * @param {lunr.Token} token - A token from the document being processed. + * @param {number} i - The index of this token in the complete list of tokens for this document/field. + * @param {lunr.Token[]} tokens - All tokens for this document/field. + * @returns {(?lunr.Token|lunr.Token[])} + */ + +/** + * Register a function with the pipeline. + * + * Functions that are used in the pipeline should be registered if the pipeline + * needs to be serialised, or a serialised pipeline needs to be loaded. + * + * Registering a function does not add it to a pipeline, functions must still be + * added to instances of the pipeline for them to be used when running a pipeline. + * + * @param {lunr.PipelineFunction} fn - The function to check for. + * @param {String} label - The label to register this function with + */ +lunr.Pipeline.registerFunction = function (fn, label) { + if (label in this.registeredFunctions) { + lunr.utils.warn('Overwriting existing registered function: ' + label) + } + + fn.label = label + lunr.Pipeline.registeredFunctions[fn.label] = fn +} + +/** + * Warns if the function is not registered as a Pipeline function. + * + * @param {lunr.PipelineFunction} fn - The function to check for. + * @private + */ +lunr.Pipeline.warnIfFunctionNotRegistered = function (fn) { + var isRegistered = fn.label && (fn.label in this.registeredFunctions) + + if (!isRegistered) { + lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\n', fn) + } +} + +/** + * Loads a previously serialised pipeline. + * + * All functions to be loaded must already be registered with lunr.Pipeline. + * If any function from the serialised data has not been registered then an + * error will be thrown. + * + * @param {Object} serialised - The serialised pipeline to load. + * @returns {lunr.Pipeline} + */ +lunr.Pipeline.load = function (serialised) { + var pipeline = new lunr.Pipeline + + serialised.forEach(function (fnName) { + var fn = lunr.Pipeline.registeredFunctions[fnName] + + if (fn) { + pipeline.add(fn) + } else { + throw new Error('Cannot load unregistered function: ' + fnName) + } + }) + + return pipeline +} + +/** + * Adds new functions to the end of the pipeline. + * + * Logs a warning if the function has not been registered. + * + * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline. + */ +lunr.Pipeline.prototype.add = function () { + var fns = Array.prototype.slice.call(arguments) + + fns.forEach(function (fn) { + lunr.Pipeline.warnIfFunctionNotRegistered(fn) + this._stack.push(fn) + }, this) +} + +/** + * Adds a single function after a function that already exists in the + * pipeline. + * + * Logs a warning if the function has not been registered. + * + * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline. + * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline. + */ +lunr.Pipeline.prototype.after = function (existingFn, newFn) { + lunr.Pipeline.warnIfFunctionNotRegistered(newFn) + + var pos = this._stack.indexOf(existingFn) + if (pos == -1) { + throw new Error('Cannot find existingFn') + } + + pos = pos + 1 + this._stack.splice(pos, 0, newFn) +} + +/** + * Adds a single function before a function that already exists in the + * pipeline. + * + * Logs a warning if the function has not been registered. + * + * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline. + * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline. + */ +lunr.Pipeline.prototype.before = function (existingFn, newFn) { + lunr.Pipeline.warnIfFunctionNotRegistered(newFn) + + var pos = this._stack.indexOf(existingFn) + if (pos == -1) { + throw new Error('Cannot find existingFn') + } + + this._stack.splice(pos, 0, newFn) +} + +/** + * Removes a function from the pipeline. + * + * @param {lunr.PipelineFunction} fn The function to remove from the pipeline. + */ +lunr.Pipeline.prototype.remove = function (fn) { + var pos = this._stack.indexOf(fn) + if (pos == -1) { + return + } + + this._stack.splice(pos, 1) +} + +/** + * Runs the current list of functions that make up the pipeline against the + * passed tokens. + * + * @param {Array} tokens The tokens to run through the pipeline. + * @returns {Array} + */ +lunr.Pipeline.prototype.run = function (tokens) { + var stackLength = this._stack.length + + for (var i = 0; i < stackLength; i++) { + var fn = this._stack[i] + var memo = [] + + for (var j = 0; j < tokens.length; j++) { + var result = fn(tokens[j], j, tokens) + + if (result === null || result === void 0 || result === '') continue + + if (Array.isArray(result)) { + for (var k = 0; k < result.length; k++) { + memo.push(result[k]) + } + } else { + memo.push(result) + } + } + + tokens = memo + } + + return tokens +} + +/** + * Convenience method for passing a string through a pipeline and getting + * strings out. This method takes care of wrapping the passed string in a + * token and mapping the resulting tokens back to strings. + * + * @param {string} str - The string to pass through the pipeline. + * @param {?object} metadata - Optional metadata to associate with the token + * passed to the pipeline. + * @returns {string[]} + */ +lunr.Pipeline.prototype.runString = function (str, metadata) { + var token = new lunr.Token (str, metadata) + + return this.run([token]).map(function (t) { + return t.toString() + }) +} + +/** + * Resets the pipeline by removing any existing processors. + * + */ +lunr.Pipeline.prototype.reset = function () { + this._stack = [] +} + +/** + * Returns a representation of the pipeline ready for serialisation. + * + * Logs a warning if the function has not been registered. + * + * @returns {Array} + */ +lunr.Pipeline.prototype.toJSON = function () { + return this._stack.map(function (fn) { + lunr.Pipeline.warnIfFunctionNotRegistered(fn) + + return fn.label + }) +} +/*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * A vector is used to construct the vector space of documents and queries. These + * vectors support operations to determine the similarity between two documents or + * a document and a query. + * + * Normally no parameters are required for initializing a vector, but in the case of + * loading a previously dumped vector the raw elements can be provided to the constructor. + * + * For performance reasons vectors are implemented with a flat array, where an elements + * index is immediately followed by its value. E.g. [index, value, index, value]. This + * allows the underlying array to be as sparse as possible and still offer decent + * performance when being used for vector calculations. + * + * @constructor + * @param {Number[]} [elements] - The flat list of element index and element value pairs. + */ +lunr.Vector = function (elements) { + this._magnitude = 0 + this.elements = elements || [] +} + + +/** + * Calculates the position within the vector to insert a given index. + * + * This is used internally by insert and upsert. If there are duplicate indexes then + * the position is returned as if the value for that index were to be updated, but it + * is the callers responsibility to check whether there is a duplicate at that index + * + * @param {Number} insertIdx - The index at which the element should be inserted. + * @returns {Number} + */ +lunr.Vector.prototype.positionForIndex = function (index) { + // For an empty vector the tuple can be inserted at the beginning + if (this.elements.length == 0) { + return 0 + } + + var start = 0, + end = this.elements.length / 2, + sliceLength = end - start, + pivotPoint = Math.floor(sliceLength / 2), + pivotIndex = this.elements[pivotPoint * 2] + + while (sliceLength > 1) { + if (pivotIndex < index) { + start = pivotPoint + } + + if (pivotIndex > index) { + end = pivotPoint + } + + if (pivotIndex == index) { + break + } + + sliceLength = end - start + pivotPoint = start + Math.floor(sliceLength / 2) + pivotIndex = this.elements[pivotPoint * 2] + } + + if (pivotIndex == index) { + return pivotPoint * 2 + } + + if (pivotIndex > index) { + return pivotPoint * 2 + } + + if (pivotIndex < index) { + return (pivotPoint + 1) * 2 + } +} + +/** + * Inserts an element at an index within the vector. + * + * Does not allow duplicates, will throw an error if there is already an entry + * for this index. + * + * @param {Number} insertIdx - The index at which the element should be inserted. + * @param {Number} val - The value to be inserted into the vector. + */ +lunr.Vector.prototype.insert = function (insertIdx, val) { + this.upsert(insertIdx, val, function () { + throw "duplicate index" + }) +} + +/** + * Inserts or updates an existing index within the vector. + * + * @param {Number} insertIdx - The index at which the element should be inserted. + * @param {Number} val - The value to be inserted into the vector. + * @param {function} fn - A function that is called for updates, the existing value and the + * requested value are passed as arguments + */ +lunr.Vector.prototype.upsert = function (insertIdx, val, fn) { + this._magnitude = 0 + var position = this.positionForIndex(insertIdx) + + if (this.elements[position] == insertIdx) { + this.elements[position + 1] = fn(this.elements[position + 1], val) + } else { + this.elements.splice(position, 0, insertIdx, val) + } +} + +/** + * Calculates the magnitude of this vector. + * + * @returns {Number} + */ +lunr.Vector.prototype.magnitude = function () { + if (this._magnitude) return this._magnitude + + var sumOfSquares = 0, + elementsLength = this.elements.length + + for (var i = 1; i < elementsLength; i += 2) { + var val = this.elements[i] + sumOfSquares += val * val + } + + return this._magnitude = Math.sqrt(sumOfSquares) +} + +/** + * Calculates the dot product of this vector and another vector. + * + * @param {lunr.Vector} otherVector - The vector to compute the dot product with. + * @returns {Number} + */ +lunr.Vector.prototype.dot = function (otherVector) { + var dotProduct = 0, + a = this.elements, b = otherVector.elements, + aLen = a.length, bLen = b.length, + aVal = 0, bVal = 0, + i = 0, j = 0 + + while (i < aLen && j < bLen) { + aVal = a[i], bVal = b[j] + if (aVal < bVal) { + i += 2 + } else if (aVal > bVal) { + j += 2 + } else if (aVal == bVal) { + dotProduct += a[i + 1] * b[j + 1] + i += 2 + j += 2 + } + } + + return dotProduct +} + +/** + * Calculates the similarity between this vector and another vector. + * + * @param {lunr.Vector} otherVector - The other vector to calculate the + * similarity with. + * @returns {Number} + */ +lunr.Vector.prototype.similarity = function (otherVector) { + return this.dot(otherVector) / this.magnitude() || 0 +} + +/** + * Converts the vector to an array of the elements within the vector. + * + * @returns {Number[]} + */ +lunr.Vector.prototype.toArray = function () { + var output = new Array (this.elements.length / 2) + + for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) { + output[j] = this.elements[i] + } + + return output +} + +/** + * A JSON serializable representation of the vector. + * + * @returns {Number[]} + */ +lunr.Vector.prototype.toJSON = function () { + return this.elements +} +/* eslint-disable */ +/*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + */ + +/** + * lunr.stemmer is an english language stemmer, this is a JavaScript + * implementation of the PorterStemmer taken from http://tartarus.org/~martin + * + * @static + * @implements {lunr.PipelineFunction} + * @param {lunr.Token} token - The string to stem + * @returns {lunr.Token} + * @see {@link lunr.Pipeline} + * @function + */ +lunr.stemmer = (function(){ + var step2list = { + "ational" : "ate", + "tional" : "tion", + "enci" : "ence", + "anci" : "ance", + "izer" : "ize", + "bli" : "ble", + "alli" : "al", + "entli" : "ent", + "eli" : "e", + "ousli" : "ous", + "ization" : "ize", + "ation" : "ate", + "ator" : "ate", + "alism" : "al", + "iveness" : "ive", + "fulness" : "ful", + "ousness" : "ous", + "aliti" : "al", + "iviti" : "ive", + "biliti" : "ble", + "logi" : "log" + }, + + step3list = { + "icate" : "ic", + "ative" : "", + "alize" : "al", + "iciti" : "ic", + "ical" : "ic", + "ful" : "", + "ness" : "" + }, + + c = "[^aeiou]", // consonant + v = "[aeiouy]", // vowel + C = c + "[^aeiouy]*", // consonant sequence + V = v + "[aeiou]*", // vowel sequence + + mgr0 = "^(" + C + ")?" + V + C, // [C]VC... is m>0 + meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$", // [C]VC[V] is m=1 + mgr1 = "^(" + C + ")?" + V + C + V + C, // [C]VCVC... is m>1 + s_v = "^(" + C + ")?" + v; // vowel in stem + + var re_mgr0 = new RegExp(mgr0); + var re_mgr1 = new RegExp(mgr1); + var re_meq1 = new RegExp(meq1); + var re_s_v = new RegExp(s_v); + + var re_1a = /^(.+?)(ss|i)es$/; + var re2_1a = /^(.+?)([^s])s$/; + var re_1b = /^(.+?)eed$/; + var re2_1b = /^(.+?)(ed|ing)$/; + var re_1b_2 = /.$/; + var re2_1b_2 = /(at|bl|iz)$/; + var re3_1b_2 = new RegExp("([^aeiouylsz])\\1$"); + var re4_1b_2 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + + var re_1c = /^(.+?[^aeiou])y$/; + var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + + var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + + var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + var re2_4 = /^(.+?)(s|t)(ion)$/; + + var re_5 = /^(.+?)e$/; + var re_5_1 = /ll$/; + var re3_5 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + + var porterStemmer = function porterStemmer(w) { + var stem, + suffix, + firstch, + re, + re2, + re3, + re4; + + if (w.length < 3) { return w; } + + firstch = w.substr(0,1); + if (firstch == "y") { + w = firstch.toUpperCase() + w.substr(1); + } + + // Step 1a + re = re_1a + re2 = re2_1a; + + if (re.test(w)) { w = w.replace(re,"$1$2"); } + else if (re2.test(w)) { w = w.replace(re2,"$1$2"); } + + // Step 1b + re = re_1b; + re2 = re2_1b; + if (re.test(w)) { + var fp = re.exec(w); + re = re_mgr0; + if (re.test(fp[1])) { + re = re_1b_2; + w = w.replace(re,""); + } + } else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = re_s_v; + if (re2.test(stem)) { + w = stem; + re2 = re2_1b_2; + re3 = re3_1b_2; + re4 = re4_1b_2; + if (re2.test(w)) { w = w + "e"; } + else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,""); } + else if (re4.test(w)) { w = w + "e"; } + } + } + + // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say) + re = re_1c; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + w = stem + "i"; + } + + // Step 2 + re = re_2; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = re_mgr0; + if (re.test(stem)) { + w = stem + step2list[suffix]; + } + } + + // Step 3 + re = re_3; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = re_mgr0; + if (re.test(stem)) { + w = stem + step3list[suffix]; + } + } + + // Step 4 + re = re_4; + re2 = re2_4; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = re_mgr1; + if (re.test(stem)) { + w = stem; + } + } else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = re_mgr1; + if (re2.test(stem)) { + w = stem; + } + } + + // Step 5 + re = re_5; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = re_mgr1; + re2 = re_meq1; + re3 = re3_5; + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) { + w = stem; + } + } + + re = re_5_1; + re2 = re_mgr1; + if (re.test(w) && re2.test(w)) { + re = re_1b_2; + w = w.replace(re,""); + } + + // and turn initial Y back to y + + if (firstch == "y") { + w = firstch.toLowerCase() + w.substr(1); + } + + return w; + }; + + return function (token) { + return token.update(porterStemmer); + } +})(); + +lunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer') +/*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * lunr.generateStopWordFilter builds a stopWordFilter function from the provided + * list of stop words. + * + * The built in lunr.stopWordFilter is built using this generator and can be used + * to generate custom stopWordFilters for applications or non English languages. + * + * @function + * @param {Array} token The token to pass through the filter + * @returns {lunr.PipelineFunction} + * @see lunr.Pipeline + * @see lunr.stopWordFilter + */ +lunr.generateStopWordFilter = function (stopWords) { + var words = stopWords.reduce(function (memo, stopWord) { + memo[stopWord] = stopWord + return memo + }, {}) + + return function (token) { + if (token && words[token.toString()] !== token.toString()) return token + } +} + +/** + * lunr.stopWordFilter is an English language stop word list filter, any words + * contained in the list will not be passed through the filter. + * + * This is intended to be used in the Pipeline. If the token does not pass the + * filter then undefined will be returned. + * + * @function + * @implements {lunr.PipelineFunction} + * @params {lunr.Token} token - A token to check for being a stop word. + * @returns {lunr.Token} + * @see {@link lunr.Pipeline} + */ +lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'all', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'any', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'do', + 'does', + 'either', + 'else', + 'ever', + 'every', + 'for', + 'from', + 'get', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'in', + 'into', + 'is', + 'it', + 'its', + 'just', + 'least', + 'let', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'only', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'where', + 'which', + 'while', + 'who', + 'whom', + 'why', + 'will', + 'with', + 'would', + 'yet', + 'you', + 'your' +]) + +lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter') +/*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * lunr.trimmer is a pipeline function for trimming non word + * characters from the beginning and end of tokens before they + * enter the index. + * + * This implementation may not work correctly for non latin + * characters and should either be removed or adapted for use + * with languages with non-latin characters. + * + * @static + * @implements {lunr.PipelineFunction} + * @param {lunr.Token} token The token to pass through the filter + * @returns {lunr.Token} + * @see lunr.Pipeline + */ +lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^\W+/, '').replace(/\W+$/, '') + }) +} + +lunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer') +/*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * A token set is used to store the unique list of all tokens + * within an index. Token sets are also used to represent an + * incoming query to the index, this query token set and index + * token set are then intersected to find which tokens to look + * up in the inverted index. + * + * A token set can hold multiple tokens, as in the case of the + * index token set, or it can hold a single token as in the + * case of a simple query token set. + * + * Additionally token sets are used to perform wildcard matching. + * Leading, contained and trailing wildcards are supported, and + * from this edit distance matching can also be provided. + * + * Token sets are implemented as a minimal finite state automata, + * where both common prefixes and suffixes are shared between tokens. + * This helps to reduce the space used for storing the token set. + * + * @constructor + */ +lunr.TokenSet = function () { + this.final = false + this.edges = {} + this.id = lunr.TokenSet._nextId + lunr.TokenSet._nextId += 1 +} + +/** + * Keeps track of the next, auto increment, identifier to assign + * to a new tokenSet. + * + * TokenSets require a unique identifier to be correctly minimised. + * + * @private + */ +lunr.TokenSet._nextId = 1 + +/** + * Creates a TokenSet instance from the given sorted array of words. + * + * @param {String[]} arr - A sorted array of strings to create the set from. + * @returns {lunr.TokenSet} + * @throws Will throw an error if the input array is not sorted. + */ +lunr.TokenSet.fromArray = function (arr) { + var builder = new lunr.TokenSet.Builder + + for (var i = 0, len = arr.length; i < len; i++) { + builder.insert(arr[i]) + } + + builder.finish() + return builder.root +} + +/** + * Creates a token set from a query clause. + * + * @private + * @param {Object} clause - A single clause from lunr.Query. + * @param {string} clause.term - The query clause term. + * @param {number} [clause.editDistance] - The optional edit distance for the term. + * @returns {lunr.TokenSet} + */ +lunr.TokenSet.fromClause = function (clause) { + if ('editDistance' in clause) { + return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance) + } else { + return lunr.TokenSet.fromString(clause.term) + } +} + +/** + * Creates a token set representing a single string with a specified + * edit distance. + * + * Insertions, deletions, substitutions and transpositions are each + * treated as an edit distance of 1. + * + * Increasing the allowed edit distance will have a dramatic impact + * on the performance of both creating and intersecting these TokenSets. + * It is advised to keep the edit distance less than 3. + * + * @param {string} str - The string to create the token set from. + * @param {number} editDistance - The allowed edit distance to match. + * @returns {lunr.Vector} + */ +lunr.TokenSet.fromFuzzyString = function (str, editDistance) { + var root = new lunr.TokenSet + + var stack = [{ + node: root, + editsRemaining: editDistance, + str: str + }] + + while (stack.length) { + var frame = stack.pop() + + // no edit + if (frame.str.length > 0) { + var char = frame.str.charAt(0), + noEditNode + + if (char in frame.node.edges) { + noEditNode = frame.node.edges[char] + } else { + noEditNode = new lunr.TokenSet + frame.node.edges[char] = noEditNode + } + + if (frame.str.length == 1) { + noEditNode.final = true + } + + stack.push({ + node: noEditNode, + editsRemaining: frame.editsRemaining, + str: frame.str.slice(1) + }) + } + + if (frame.editsRemaining == 0) { + continue + } + + // insertion + if ("*" in frame.node.edges) { + var insertionNode = frame.node.edges["*"] + } else { + var insertionNode = new lunr.TokenSet + frame.node.edges["*"] = insertionNode + } + + if (frame.str.length == 0) { + insertionNode.final = true + } + + stack.push({ + node: insertionNode, + editsRemaining: frame.editsRemaining - 1, + str: frame.str + }) + + // deletion + // can only do a deletion if we have enough edits remaining + // and if there are characters left to delete in the string + if (frame.str.length > 1) { + stack.push({ + node: frame.node, + editsRemaining: frame.editsRemaining - 1, + str: frame.str.slice(1) + }) + } + + // deletion + // just removing the last character from the str + if (frame.str.length == 1) { + frame.node.final = true + } + + // substitution + // can only do a substitution if we have enough edits remaining + // and if there are characters left to substitute + if (frame.str.length >= 1) { + if ("*" in frame.node.edges) { + var substitutionNode = frame.node.edges["*"] + } else { + var substitutionNode = new lunr.TokenSet + frame.node.edges["*"] = substitutionNode + } + + if (frame.str.length == 1) { + substitutionNode.final = true + } + + stack.push({ + node: substitutionNode, + editsRemaining: frame.editsRemaining - 1, + str: frame.str.slice(1) + }) + } + + // transposition + // can only do a transposition if there are edits remaining + // and there are enough characters to transpose + if (frame.str.length > 1) { + var charA = frame.str.charAt(0), + charB = frame.str.charAt(1), + transposeNode + + if (charB in frame.node.edges) { + transposeNode = frame.node.edges[charB] + } else { + transposeNode = new lunr.TokenSet + frame.node.edges[charB] = transposeNode + } + + if (frame.str.length == 1) { + transposeNode.final = true + } + + stack.push({ + node: transposeNode, + editsRemaining: frame.editsRemaining - 1, + str: charA + frame.str.slice(2) + }) + } + } + + return root +} + +/** + * Creates a TokenSet from a string. + * + * The string may contain one or more wildcard characters (*) + * that will allow wildcard matching when intersecting with + * another TokenSet. + * + * @param {string} str - The string to create a TokenSet from. + * @returns {lunr.TokenSet} + */ +lunr.TokenSet.fromString = function (str) { + var node = new lunr.TokenSet, + root = node + + /* + * Iterates through all characters within the passed string + * appending a node for each character. + * + * When a wildcard character is found then a self + * referencing edge is introduced to continually match + * any number of any characters. + */ + for (var i = 0, len = str.length; i < len; i++) { + var char = str[i], + final = (i == len - 1) + + if (char == "*") { + node.edges[char] = node + node.final = final + + } else { + var next = new lunr.TokenSet + next.final = final + + node.edges[char] = next + node = next + } + } + + return root +} + +/** + * Converts this TokenSet into an array of strings + * contained within the TokenSet. + * + * This is not intended to be used on a TokenSet that + * contains wildcards, in these cases the results are + * undefined and are likely to cause an infinite loop. + * + * @returns {string[]} + */ +lunr.TokenSet.prototype.toArray = function () { + var words = [] + + var stack = [{ + prefix: "", + node: this + }] + + while (stack.length) { + var frame = stack.pop(), + edges = Object.keys(frame.node.edges), + len = edges.length + + if (frame.node.final) { + /* In Safari, at this point the prefix is sometimes corrupted, see: + * https://github.com/olivernn/lunr.js/issues/279 Calling any + * String.prototype method forces Safari to "cast" this string to what + * it's supposed to be, fixing the bug. */ + frame.prefix.charAt(0) + words.push(frame.prefix) + } + + for (var i = 0; i < len; i++) { + var edge = edges[i] + + stack.push({ + prefix: frame.prefix.concat(edge), + node: frame.node.edges[edge] + }) + } + } + + return words +} + +/** + * Generates a string representation of a TokenSet. + * + * This is intended to allow TokenSets to be used as keys + * in objects, largely to aid the construction and minimisation + * of a TokenSet. As such it is not designed to be a human + * friendly representation of the TokenSet. + * + * @returns {string} + */ +lunr.TokenSet.prototype.toString = function () { + // NOTE: Using Object.keys here as this.edges is very likely + // to enter 'hash-mode' with many keys being added + // + // avoiding a for-in loop here as it leads to the function + // being de-optimised (at least in V8). From some simple + // benchmarks the performance is comparable, but allowing + // V8 to optimize may mean easy performance wins in the future. + + if (this._str) { + return this._str + } + + var str = this.final ? '1' : '0', + labels = Object.keys(this.edges).sort(), + len = labels.length + + for (var i = 0; i < len; i++) { + var label = labels[i], + node = this.edges[label] + + str = str + label + node.id + } + + return str +} + +/** + * Returns a new TokenSet that is the intersection of + * this TokenSet and the passed TokenSet. + * + * This intersection will take into account any wildcards + * contained within the TokenSet. + * + * @param {lunr.TokenSet} b - An other TokenSet to intersect with. + * @returns {lunr.TokenSet} + */ +lunr.TokenSet.prototype.intersect = function (b) { + var output = new lunr.TokenSet, + frame = undefined + + var stack = [{ + qNode: b, + output: output, + node: this + }] + + while (stack.length) { + frame = stack.pop() + + // NOTE: As with the #toString method, we are using + // Object.keys and a for loop instead of a for-in loop + // as both of these objects enter 'hash' mode, causing + // the function to be de-optimised in V8 + var qEdges = Object.keys(frame.qNode.edges), + qLen = qEdges.length, + nEdges = Object.keys(frame.node.edges), + nLen = nEdges.length + + for (var q = 0; q < qLen; q++) { + var qEdge = qEdges[q] + + for (var n = 0; n < nLen; n++) { + var nEdge = nEdges[n] + + if (nEdge == qEdge || qEdge == '*') { + var node = frame.node.edges[nEdge], + qNode = frame.qNode.edges[qEdge], + final = node.final && qNode.final, + next = undefined + + if (nEdge in frame.output.edges) { + // an edge already exists for this character + // no need to create a new node, just set the finality + // bit unless this node is already final + next = frame.output.edges[nEdge] + next.final = next.final || final + + } else { + // no edge exists yet, must create one + // set the finality bit and insert it + // into the output + next = new lunr.TokenSet + next.final = final + frame.output.edges[nEdge] = next + } + + stack.push({ + qNode: qNode, + output: next, + node: node + }) + } + } + } + } + + return output +} +lunr.TokenSet.Builder = function () { + this.previousWord = "" + this.root = new lunr.TokenSet + this.uncheckedNodes = [] + this.minimizedNodes = {} +} + +lunr.TokenSet.Builder.prototype.insert = function (word) { + var node, + commonPrefix = 0 + + if (word < this.previousWord) { + throw new Error ("Out of order word insertion") + } + + for (var i = 0; i < word.length && i < this.previousWord.length; i++) { + if (word[i] != this.previousWord[i]) break + commonPrefix++ + } + + this.minimize(commonPrefix) + + if (this.uncheckedNodes.length == 0) { + node = this.root + } else { + node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child + } + + for (var i = commonPrefix; i < word.length; i++) { + var nextNode = new lunr.TokenSet, + char = word[i] + + node.edges[char] = nextNode + + this.uncheckedNodes.push({ + parent: node, + char: char, + child: nextNode + }) + + node = nextNode + } + + node.final = true + this.previousWord = word +} + +lunr.TokenSet.Builder.prototype.finish = function () { + this.minimize(0) +} + +lunr.TokenSet.Builder.prototype.minimize = function (downTo) { + for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) { + var node = this.uncheckedNodes[i], + childKey = node.child.toString() + + if (childKey in this.minimizedNodes) { + node.parent.edges[node.char] = this.minimizedNodes[childKey] + } else { + // Cache the key for this node since + // we know it can't change anymore + node.child._str = childKey + + this.minimizedNodes[childKey] = node.child + } + + this.uncheckedNodes.pop() + } +} +/*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * An index contains the built index of all documents and provides a query interface + * to the index. + * + * Usually instances of lunr.Index will not be created using this constructor, instead + * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be + * used to load previously built and serialized indexes. + * + * @constructor + * @param {Object} attrs - The attributes of the built search index. + * @param {Object} attrs.invertedIndex - An index of term/field to document reference. + * @param {Object} attrs.fieldVectors - Field vectors + * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens. + * @param {string[]} attrs.fields - The names of indexed document fields. + * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms. + */ +lunr.Index = function (attrs) { + this.invertedIndex = attrs.invertedIndex + this.fieldVectors = attrs.fieldVectors + this.tokenSet = attrs.tokenSet + this.fields = attrs.fields + this.pipeline = attrs.pipeline +} + +/** + * A result contains details of a document matching a search query. + * @typedef {Object} lunr.Index~Result + * @property {string} ref - The reference of the document this result represents. + * @property {number} score - A number between 0 and 1 representing how similar this document is to the query. + * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match. + */ + +/** + * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple + * query language which itself is parsed into an instance of lunr.Query. + * + * For programmatically building queries it is advised to directly use lunr.Query, the query language + * is best used for human entered text rather than program generated text. + * + * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported + * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello' + * or 'world', though those that contain both will rank higher in the results. + * + * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can + * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding + * wildcards will increase the number of documents that will be found but can also have a negative + * impact on query performance, especially with wildcards at the beginning of a term. + * + * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term + * hello in the title field will match this query. Using a field not present in the index will lead + * to an error being thrown. + * + * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term + * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported + * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2. + * Avoid large values for edit distance to improve query performance. + * + * Each term also supports a presence modifier. By default a term's presence in document is optional, however + * this can be changed to either required or prohibited. For a term's presence to be required in a document the + * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and + * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not + * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'. + * + * To escape special characters the backslash character '\' can be used, this allows searches to include + * characters that would normally be considered modifiers, e.g. `foo\~2` will search for a term "foo~2" instead + * of attempting to apply a boost of 2 to the search term "foo". + * + * @typedef {string} lunr.Index~QueryString + * @example Simple single term query + * hello + * @example Multiple term query + * hello world + * @example term scoped to a field + * title:hello + * @example term with a boost of 10 + * hello^10 + * @example term with an edit distance of 2 + * hello~2 + * @example terms with presence modifiers + * -foo +bar baz + */ + +/** + * Performs a search against the index using lunr query syntax. + * + * Results will be returned sorted by their score, the most relevant results + * will be returned first. For details on how the score is calculated, please see + * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}. + * + * For more programmatic querying use lunr.Index#query. + * + * @param {lunr.Index~QueryString} queryString - A string containing a lunr query. + * @throws {lunr.QueryParseError} If the passed query string cannot be parsed. + * @returns {lunr.Index~Result[]} + */ +lunr.Index.prototype.search = function (queryString) { + return this.query(function (query) { + var parser = new lunr.QueryParser(queryString, query) + parser.parse() + }) +} + +/** + * A query builder callback provides a query object to be used to express + * the query to perform on the index. + * + * @callback lunr.Index~queryBuilder + * @param {lunr.Query} query - The query object to build up. + * @this lunr.Query + */ + +/** + * Performs a query against the index using the yielded lunr.Query object. + * + * If performing programmatic queries against the index, this method is preferred + * over lunr.Index#search so as to avoid the additional query parsing overhead. + * + * A query object is yielded to the supplied function which should be used to + * express the query to be run against the index. + * + * Note that although this function takes a callback parameter it is _not_ an + * asynchronous operation, the callback is just yielded a query object to be + * customized. + * + * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query. + * @returns {lunr.Index~Result[]} + */ +lunr.Index.prototype.query = function (fn) { + // for each query clause + // * process terms + // * expand terms from token set + // * find matching documents and metadata + // * get document vectors + // * score documents + + var query = new lunr.Query(this.fields), + matchingFields = Object.create(null), + queryVectors = Object.create(null), + termFieldCache = Object.create(null), + requiredMatches = Object.create(null), + prohibitedMatches = Object.create(null) + + /* + * To support field level boosts a query vector is created per + * field. An empty vector is eagerly created to support negated + * queries. + */ + for (var i = 0; i < this.fields.length; i++) { + queryVectors[this.fields[i]] = new lunr.Vector + } + + fn.call(query, query) + + for (var i = 0; i < query.clauses.length; i++) { + /* + * Unless the pipeline has been disabled for this term, which is + * the case for terms with wildcards, we need to pass the clause + * term through the search pipeline. A pipeline returns an array + * of processed terms. Pipeline functions may expand the passed + * term, which means we may end up performing multiple index lookups + * for a single query term. + */ + var clause = query.clauses[i], + terms = null, + clauseMatches = lunr.Set.empty + + if (clause.usePipeline) { + terms = this.pipeline.runString(clause.term, { + fields: clause.fields + }) + } else { + terms = [clause.term] + } + + for (var m = 0; m < terms.length; m++) { + var term = terms[m] + + /* + * Each term returned from the pipeline needs to use the same query + * clause object, e.g. the same boost and or edit distance. The + * simplest way to do this is to re-use the clause object but mutate + * its term property. + */ + clause.term = term + + /* + * From the term in the clause we create a token set which will then + * be used to intersect the indexes token set to get a list of terms + * to lookup in the inverted index + */ + var termTokenSet = lunr.TokenSet.fromClause(clause), + expandedTerms = this.tokenSet.intersect(termTokenSet).toArray() + + /* + * If a term marked as required does not exist in the tokenSet it is + * impossible for the search to return any matches. We set all the field + * scoped required matches set to empty and stop examining any further + * clauses. + */ + if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) { + for (var k = 0; k < clause.fields.length; k++) { + var field = clause.fields[k] + requiredMatches[field] = lunr.Set.empty + } + + break + } + + for (var j = 0; j < expandedTerms.length; j++) { + /* + * For each term get the posting and termIndex, this is required for + * building the query vector. + */ + var expandedTerm = expandedTerms[j], + posting = this.invertedIndex[expandedTerm], + termIndex = posting._index + + for (var k = 0; k < clause.fields.length; k++) { + /* + * For each field that this query term is scoped by (by default + * all fields are in scope) we need to get all the document refs + * that have this term in that field. + * + * The posting is the entry in the invertedIndex for the matching + * term from above. + */ + var field = clause.fields[k], + fieldPosting = posting[field], + matchingDocumentRefs = Object.keys(fieldPosting), + termField = expandedTerm + "/" + field, + matchingDocumentsSet = new lunr.Set(matchingDocumentRefs) + + /* + * if the presence of this term is required ensure that the matching + * documents are added to the set of required matches for this clause. + * + */ + if (clause.presence == lunr.Query.presence.REQUIRED) { + clauseMatches = clauseMatches.union(matchingDocumentsSet) + + if (requiredMatches[field] === undefined) { + requiredMatches[field] = lunr.Set.complete + } + } + + /* + * if the presence of this term is prohibited ensure that the matching + * documents are added to the set of prohibited matches for this field, + * creating that set if it does not yet exist. + */ + if (clause.presence == lunr.Query.presence.PROHIBITED) { + if (prohibitedMatches[field] === undefined) { + prohibitedMatches[field] = lunr.Set.empty + } + + prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet) + + /* + * Prohibited matches should not be part of the query vector used for + * similarity scoring and no metadata should be extracted so we continue + * to the next field + */ + continue + } + + /* + * The query field vector is populated using the termIndex found for + * the term and a unit value with the appropriate boost applied. + * Using upsert because there could already be an entry in the vector + * for the term we are working with. In that case we just add the scores + * together. + */ + queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b }) + + /** + * If we've already seen this term, field combo then we've already collected + * the matching documents and metadata, no need to go through all that again + */ + if (termFieldCache[termField]) { + continue + } + + for (var l = 0; l < matchingDocumentRefs.length; l++) { + /* + * All metadata for this term/field/document triple + * are then extracted and collected into an instance + * of lunr.MatchData ready to be returned in the query + * results + */ + var matchingDocumentRef = matchingDocumentRefs[l], + matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field), + metadata = fieldPosting[matchingDocumentRef], + fieldMatch + + if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) { + matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata) + } else { + fieldMatch.add(expandedTerm, field, metadata) + } + + } + + termFieldCache[termField] = true + } + } + } + + /** + * If the presence was required we need to update the requiredMatches field sets. + * We do this after all fields for the term have collected their matches because + * the clause terms presence is required in _any_ of the fields not _all_ of the + * fields. + */ + if (clause.presence === lunr.Query.presence.REQUIRED) { + for (var k = 0; k < clause.fields.length; k++) { + var field = clause.fields[k] + requiredMatches[field] = requiredMatches[field].intersect(clauseMatches) + } + } + } + + /** + * Need to combine the field scoped required and prohibited + * matching documents into a global set of required and prohibited + * matches + */ + var allRequiredMatches = lunr.Set.complete, + allProhibitedMatches = lunr.Set.empty + + for (var i = 0; i < this.fields.length; i++) { + var field = this.fields[i] + + if (requiredMatches[field]) { + allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field]) + } + + if (prohibitedMatches[field]) { + allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field]) + } + } + + var matchingFieldRefs = Object.keys(matchingFields), + results = [], + matches = Object.create(null) + + /* + * If the query is negated (contains only prohibited terms) + * we need to get _all_ fieldRefs currently existing in the + * index. This is only done when we know that the query is + * entirely prohibited terms to avoid any cost of getting all + * fieldRefs unnecessarily. + * + * Additionally, blank MatchData must be created to correctly + * populate the results. + */ + if (query.isNegated()) { + matchingFieldRefs = Object.keys(this.fieldVectors) + + for (var i = 0; i < matchingFieldRefs.length; i++) { + var matchingFieldRef = matchingFieldRefs[i] + var fieldRef = lunr.FieldRef.fromString(matchingFieldRef) + matchingFields[matchingFieldRef] = new lunr.MatchData + } + } + + for (var i = 0; i < matchingFieldRefs.length; i++) { + /* + * Currently we have document fields that match the query, but we + * need to return documents. The matchData and scores are combined + * from multiple fields belonging to the same document. + * + * Scores are calculated by field, using the query vectors created + * above, and combined into a final document score using addition. + */ + var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]), + docRef = fieldRef.docRef + + if (!allRequiredMatches.contains(docRef)) { + continue + } + + if (allProhibitedMatches.contains(docRef)) { + continue + } + + var fieldVector = this.fieldVectors[fieldRef], + score = queryVectors[fieldRef.fieldName].similarity(fieldVector), + docMatch + + if ((docMatch = matches[docRef]) !== undefined) { + docMatch.score += score + docMatch.matchData.combine(matchingFields[fieldRef]) + } else { + var match = { + ref: docRef, + score: score, + matchData: matchingFields[fieldRef] + } + matches[docRef] = match + results.push(match) + } + } + + /* + * Sort the results objects by score, highest first. + */ + return results.sort(function (a, b) { + return b.score - a.score + }) +} + +/** + * Prepares the index for JSON serialization. + * + * The schema for this JSON blob will be described in a + * separate JSON schema file. + * + * @returns {Object} + */ +lunr.Index.prototype.toJSON = function () { + var invertedIndex = Object.keys(this.invertedIndex) + .sort() + .map(function (term) { + return [term, this.invertedIndex[term]] + }, this) + + var fieldVectors = Object.keys(this.fieldVectors) + .map(function (ref) { + return [ref, this.fieldVectors[ref].toJSON()] + }, this) + + return { + version: lunr.version, + fields: this.fields, + fieldVectors: fieldVectors, + invertedIndex: invertedIndex, + pipeline: this.pipeline.toJSON() + } +} + +/** + * Loads a previously serialized lunr.Index + * + * @param {Object} serializedIndex - A previously serialized lunr.Index + * @returns {lunr.Index} + */ +lunr.Index.load = function (serializedIndex) { + var attrs = {}, + fieldVectors = {}, + serializedVectors = serializedIndex.fieldVectors, + invertedIndex = Object.create(null), + serializedInvertedIndex = serializedIndex.invertedIndex, + tokenSetBuilder = new lunr.TokenSet.Builder, + pipeline = lunr.Pipeline.load(serializedIndex.pipeline) + + if (serializedIndex.version != lunr.version) { + lunr.utils.warn("Version mismatch when loading serialised index. Current version of lunr '" + lunr.version + "' does not match serialized index '" + serializedIndex.version + "'") + } + + for (var i = 0; i < serializedVectors.length; i++) { + var tuple = serializedVectors[i], + ref = tuple[0], + elements = tuple[1] + + fieldVectors[ref] = new lunr.Vector(elements) + } + + for (var i = 0; i < serializedInvertedIndex.length; i++) { + var tuple = serializedInvertedIndex[i], + term = tuple[0], + posting = tuple[1] + + tokenSetBuilder.insert(term) + invertedIndex[term] = posting + } + + tokenSetBuilder.finish() + + attrs.fields = serializedIndex.fields + + attrs.fieldVectors = fieldVectors + attrs.invertedIndex = invertedIndex + attrs.tokenSet = tokenSetBuilder.root + attrs.pipeline = pipeline + + return new lunr.Index(attrs) +} +/*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * lunr.Builder performs indexing on a set of documents and + * returns instances of lunr.Index ready for querying. + * + * All configuration of the index is done via the builder, the + * fields to index, the document reference, the text processing + * pipeline and document scoring parameters are all set on the + * builder before indexing. + * + * @constructor + * @property {string} _ref - Internal reference to the document reference field. + * @property {string[]} _fields - Internal reference to the document fields to index. + * @property {object} invertedIndex - The inverted index maps terms to document fields. + * @property {object} documentTermFrequencies - Keeps track of document term frequencies. + * @property {object} documentLengths - Keeps track of the length of documents added to the index. + * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing. + * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing. + * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index. + * @property {number} documentCount - Keeps track of the total number of documents indexed. + * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75. + * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2. + * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space. + * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index. + */ +lunr.Builder = function () { + this._ref = "id" + this._fields = Object.create(null) + this._documents = Object.create(null) + this.invertedIndex = Object.create(null) + this.fieldTermFrequencies = {} + this.fieldLengths = {} + this.tokenizer = lunr.tokenizer + this.pipeline = new lunr.Pipeline + this.searchPipeline = new lunr.Pipeline + this.documentCount = 0 + this._b = 0.75 + this._k1 = 1.2 + this.termIndex = 0 + this.metadataWhitelist = [] +} + +/** + * Sets the document field used as the document reference. Every document must have this field. + * The type of this field in the document should be a string, if it is not a string it will be + * coerced into a string by calling toString. + * + * The default ref is 'id'. + * + * The ref should _not_ be changed during indexing, it should be set before any documents are + * added to the index. Changing it during indexing can lead to inconsistent results. + * + * @param {string} ref - The name of the reference field in the document. + */ +lunr.Builder.prototype.ref = function (ref) { + this._ref = ref +} + +/** + * A function that is used to extract a field from a document. + * + * Lunr expects a field to be at the top level of a document, if however the field + * is deeply nested within a document an extractor function can be used to extract + * the right field for indexing. + * + * @callback fieldExtractor + * @param {object} doc - The document being added to the index. + * @returns {?(string|object|object[])} obj - The object that will be indexed for this field. + * @example Extracting a nested field + * function (doc) { return doc.nested.field } + */ + +/** + * Adds a field to the list of document fields that will be indexed. Every document being + * indexed should have this field. Null values for this field in indexed documents will + * not cause errors but will limit the chance of that document being retrieved by searches. + * + * All fields should be added before adding documents to the index. Adding fields after + * a document has been indexed will have no effect on already indexed documents. + * + * Fields can be boosted at build time. This allows terms within that field to have more + * importance when ranking search results. Use a field boost to specify that matches within + * one field are more important than other fields. + * + * @param {string} fieldName - The name of a field to index in all documents. + * @param {object} attributes - Optional attributes associated with this field. + * @param {number} [attributes.boost=1] - Boost applied to all terms within this field. + * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document. + * @throws {RangeError} fieldName cannot contain unsupported characters '/' + */ +lunr.Builder.prototype.field = function (fieldName, attributes) { + if (/\//.test(fieldName)) { + throw new RangeError ("Field '" + fieldName + "' contains illegal character '/'") + } + + this._fields[fieldName] = attributes || {} +} + +/** + * A parameter to tune the amount of field length normalisation that is applied when + * calculating relevance scores. A value of 0 will completely disable any normalisation + * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b + * will be clamped to the range 0 - 1. + * + * @param {number} number - The value to set for this tuning parameter. + */ +lunr.Builder.prototype.b = function (number) { + if (number < 0) { + this._b = 0 + } else if (number > 1) { + this._b = 1 + } else { + this._b = number + } +} + +/** + * A parameter that controls the speed at which a rise in term frequency results in term + * frequency saturation. The default value is 1.2. Setting this to a higher value will give + * slower saturation levels, a lower value will result in quicker saturation. + * + * @param {number} number - The value to set for this tuning parameter. + */ +lunr.Builder.prototype.k1 = function (number) { + this._k1 = number +} + +/** + * Adds a document to the index. + * + * Before adding fields to the index the index should have been fully setup, with the document + * ref and all fields to index already having been specified. + * + * The document must have a field name as specified by the ref (by default this is 'id') and + * it should have all fields defined for indexing, though null or undefined values will not + * cause errors. + * + * Entire documents can be boosted at build time. Applying a boost to a document indicates that + * this document should rank higher in search results than other documents. + * + * @param {object} doc - The document to add to the index. + * @param {object} attributes - Optional attributes associated with this document. + * @param {number} [attributes.boost=1] - Boost applied to all terms within this document. + */ +lunr.Builder.prototype.add = function (doc, attributes) { + var docRef = doc[this._ref], + fields = Object.keys(this._fields) + + this._documents[docRef] = attributes || {} + this.documentCount += 1 + + for (var i = 0; i < fields.length; i++) { + var fieldName = fields[i], + extractor = this._fields[fieldName].extractor, + field = extractor ? extractor(doc) : doc[fieldName], + tokens = this.tokenizer(field, { + fields: [fieldName] + }), + terms = this.pipeline.run(tokens), + fieldRef = new lunr.FieldRef (docRef, fieldName), + fieldTerms = Object.create(null) + + this.fieldTermFrequencies[fieldRef] = fieldTerms + this.fieldLengths[fieldRef] = 0 + + // store the length of this field for this document + this.fieldLengths[fieldRef] += terms.length + + // calculate term frequencies for this field + for (var j = 0; j < terms.length; j++) { + var term = terms[j] + + if (fieldTerms[term] == undefined) { + fieldTerms[term] = 0 + } + + fieldTerms[term] += 1 + + // add to inverted index + // create an initial posting if one doesn't exist + if (this.invertedIndex[term] == undefined) { + var posting = Object.create(null) + posting["_index"] = this.termIndex + this.termIndex += 1 + + for (var k = 0; k < fields.length; k++) { + posting[fields[k]] = Object.create(null) + } + + this.invertedIndex[term] = posting + } + + // add an entry for this term/fieldName/docRef to the invertedIndex + if (this.invertedIndex[term][fieldName][docRef] == undefined) { + this.invertedIndex[term][fieldName][docRef] = Object.create(null) + } + + // store all whitelisted metadata about this token in the + // inverted index + for (var l = 0; l < this.metadataWhitelist.length; l++) { + var metadataKey = this.metadataWhitelist[l], + metadata = term.metadata[metadataKey] + + if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) { + this.invertedIndex[term][fieldName][docRef][metadataKey] = [] + } + + this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata) + } + } + + } +} + +/** + * Calculates the average document length for this index + * + * @private + */ +lunr.Builder.prototype.calculateAverageFieldLengths = function () { + + var fieldRefs = Object.keys(this.fieldLengths), + numberOfFields = fieldRefs.length, + accumulator = {}, + documentsWithField = {} + + for (var i = 0; i < numberOfFields; i++) { + var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]), + field = fieldRef.fieldName + + documentsWithField[field] || (documentsWithField[field] = 0) + documentsWithField[field] += 1 + + accumulator[field] || (accumulator[field] = 0) + accumulator[field] += this.fieldLengths[fieldRef] + } + + var fields = Object.keys(this._fields) + + for (var i = 0; i < fields.length; i++) { + var fieldName = fields[i] + accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName] + } + + this.averageFieldLength = accumulator +} + +/** + * Builds a vector space model of every document using lunr.Vector + * + * @private + */ +lunr.Builder.prototype.createFieldVectors = function () { + var fieldVectors = {}, + fieldRefs = Object.keys(this.fieldTermFrequencies), + fieldRefsLength = fieldRefs.length, + termIdfCache = Object.create(null) + + for (var i = 0; i < fieldRefsLength; i++) { + var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]), + fieldName = fieldRef.fieldName, + fieldLength = this.fieldLengths[fieldRef], + fieldVector = new lunr.Vector, + termFrequencies = this.fieldTermFrequencies[fieldRef], + terms = Object.keys(termFrequencies), + termsLength = terms.length + + + var fieldBoost = this._fields[fieldName].boost || 1, + docBoost = this._documents[fieldRef.docRef].boost || 1 + + for (var j = 0; j < termsLength; j++) { + var term = terms[j], + tf = termFrequencies[term], + termIndex = this.invertedIndex[term]._index, + idf, score, scoreWithPrecision + + if (termIdfCache[term] === undefined) { + idf = lunr.idf(this.invertedIndex[term], this.documentCount) + termIdfCache[term] = idf + } else { + idf = termIdfCache[term] + } + + score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf) + score *= fieldBoost + score *= docBoost + scoreWithPrecision = Math.round(score * 1000) / 1000 + // Converts 1.23456789 to 1.234. + // Reducing the precision so that the vectors take up less + // space when serialised. Doing it now so that they behave + // the same before and after serialisation. Also, this is + // the fastest approach to reducing a number's precision in + // JavaScript. + + fieldVector.insert(termIndex, scoreWithPrecision) + } + + fieldVectors[fieldRef] = fieldVector + } + + this.fieldVectors = fieldVectors +} + +/** + * Creates a token set of all tokens in the index using lunr.TokenSet + * + * @private + */ +lunr.Builder.prototype.createTokenSet = function () { + this.tokenSet = lunr.TokenSet.fromArray( + Object.keys(this.invertedIndex).sort() + ) +} + +/** + * Builds the index, creating an instance of lunr.Index. + * + * This completes the indexing process and should only be called + * once all documents have been added to the index. + * + * @returns {lunr.Index} + */ +lunr.Builder.prototype.build = function () { + this.calculateAverageFieldLengths() + this.createFieldVectors() + this.createTokenSet() + + return new lunr.Index({ + invertedIndex: this.invertedIndex, + fieldVectors: this.fieldVectors, + tokenSet: this.tokenSet, + fields: Object.keys(this._fields), + pipeline: this.searchPipeline + }) +} + +/** + * Applies a plugin to the index builder. + * + * A plugin is a function that is called with the index builder as its context. + * Plugins can be used to customise or extend the behaviour of the index + * in some way. A plugin is just a function, that encapsulated the custom + * behaviour that should be applied when building the index. + * + * The plugin function will be called with the index builder as its argument, additional + * arguments can also be passed when calling use. The function will be called + * with the index builder as its context. + * + * @param {Function} plugin The plugin to apply. + */ +lunr.Builder.prototype.use = function (fn) { + var args = Array.prototype.slice.call(arguments, 1) + args.unshift(this) + fn.apply(this, args) +} +/** + * Contains and collects metadata about a matching document. + * A single instance of lunr.MatchData is returned as part of every + * lunr.Index~Result. + * + * @constructor + * @param {string} term - The term this match data is associated with + * @param {string} field - The field in which the term was found + * @param {object} metadata - The metadata recorded about this term in this field + * @property {object} metadata - A cloned collection of metadata associated with this document. + * @see {@link lunr.Index~Result} + */ +lunr.MatchData = function (term, field, metadata) { + var clonedMetadata = Object.create(null), + metadataKeys = Object.keys(metadata || {}) + + // Cloning the metadata to prevent the original + // being mutated during match data combination. + // Metadata is kept in an array within the inverted + // index so cloning the data can be done with + // Array#slice + for (var i = 0; i < metadataKeys.length; i++) { + var key = metadataKeys[i] + clonedMetadata[key] = metadata[key].slice() + } + + this.metadata = Object.create(null) + + if (term !== undefined) { + this.metadata[term] = Object.create(null) + this.metadata[term][field] = clonedMetadata + } +} + +/** + * An instance of lunr.MatchData will be created for every term that matches a + * document. However only one instance is required in a lunr.Index~Result. This + * method combines metadata from another instance of lunr.MatchData with this + * objects metadata. + * + * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one. + * @see {@link lunr.Index~Result} + */ +lunr.MatchData.prototype.combine = function (otherMatchData) { + var terms = Object.keys(otherMatchData.metadata) + + for (var i = 0; i < terms.length; i++) { + var term = terms[i], + fields = Object.keys(otherMatchData.metadata[term]) + + if (this.metadata[term] == undefined) { + this.metadata[term] = Object.create(null) + } + + for (var j = 0; j < fields.length; j++) { + var field = fields[j], + keys = Object.keys(otherMatchData.metadata[term][field]) + + if (this.metadata[term][field] == undefined) { + this.metadata[term][field] = Object.create(null) + } + + for (var k = 0; k < keys.length; k++) { + var key = keys[k] + + if (this.metadata[term][field][key] == undefined) { + this.metadata[term][field][key] = otherMatchData.metadata[term][field][key] + } else { + this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key]) + } + + } + } + } +} + +/** + * Add metadata for a term/field pair to this instance of match data. + * + * @param {string} term - The term this match data is associated with + * @param {string} field - The field in which the term was found + * @param {object} metadata - The metadata recorded about this term in this field + */ +lunr.MatchData.prototype.add = function (term, field, metadata) { + if (!(term in this.metadata)) { + this.metadata[term] = Object.create(null) + this.metadata[term][field] = metadata + return + } + + if (!(field in this.metadata[term])) { + this.metadata[term][field] = metadata + return + } + + var metadataKeys = Object.keys(metadata) + + for (var i = 0; i < metadataKeys.length; i++) { + var key = metadataKeys[i] + + if (key in this.metadata[term][field]) { + this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key]) + } else { + this.metadata[term][field][key] = metadata[key] + } + } +} +/** + * A lunr.Query provides a programmatic way of defining queries to be performed + * against a {@link lunr.Index}. + * + * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method + * so the query object is pre-initialized with the right index fields. + * + * @constructor + * @property {lunr.Query~Clause[]} clauses - An array of query clauses. + * @property {string[]} allFields - An array of all available fields in a lunr.Index. + */ +lunr.Query = function (allFields) { + this.clauses = [] + this.allFields = allFields +} + +/** + * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause. + * + * This allows wildcards to be added to the beginning and end of a term without having to manually do any string + * concatenation. + * + * The wildcard constants can be bitwise combined to select both leading and trailing wildcards. + * + * @constant + * @default + * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour + * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists + * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists + * @see lunr.Query~Clause + * @see lunr.Query#clause + * @see lunr.Query#term + * @example query term with trailing wildcard + * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING }) + * @example query term with leading and trailing wildcard + * query.term('foo', { + * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING + * }) + */ + +lunr.Query.wildcard = new String ("*") +lunr.Query.wildcard.NONE = 0 +lunr.Query.wildcard.LEADING = 1 +lunr.Query.wildcard.TRAILING = 2 + +/** + * Constants for indicating what kind of presence a term must have in matching documents. + * + * @constant + * @enum {number} + * @see lunr.Query~Clause + * @see lunr.Query#clause + * @see lunr.Query#term + * @example query term with required presence + * query.term('foo', { presence: lunr.Query.presence.REQUIRED }) + */ +lunr.Query.presence = { + /** + * Term's presence in a document is optional, this is the default value. + */ + OPTIONAL: 1, + + /** + * Term's presence in a document is required, documents that do not contain + * this term will not be returned. + */ + REQUIRED: 2, + + /** + * Term's presence in a document is prohibited, documents that do contain + * this term will not be returned. + */ + PROHIBITED: 3 +} + +/** + * A single clause in a {@link lunr.Query} contains a term and details on how to + * match that term against a {@link lunr.Index}. + * + * @typedef {Object} lunr.Query~Clause + * @property {string[]} fields - The fields in an index this clause should be matched against. + * @property {number} [boost=1] - Any boost that should be applied when matching this clause. + * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be. + * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline. + * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended. + * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents. + */ + +/** + * Adds a {@link lunr.Query~Clause} to this query. + * + * Unless the clause contains the fields to be matched all fields will be matched. In addition + * a default boost of 1 is applied to the clause. + * + * @param {lunr.Query~Clause} clause - The clause to add to this query. + * @see lunr.Query~Clause + * @returns {lunr.Query} + */ +lunr.Query.prototype.clause = function (clause) { + if (!('fields' in clause)) { + clause.fields = this.allFields + } + + if (!('boost' in clause)) { + clause.boost = 1 + } + + if (!('usePipeline' in clause)) { + clause.usePipeline = true + } + + if (!('wildcard' in clause)) { + clause.wildcard = lunr.Query.wildcard.NONE + } + + if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) { + clause.term = "*" + clause.term + } + + if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) { + clause.term = "" + clause.term + "*" + } + + if (!('presence' in clause)) { + clause.presence = lunr.Query.presence.OPTIONAL + } + + this.clauses.push(clause) + + return this +} + +/** + * A negated query is one in which every clause has a presence of + * prohibited. These queries require some special processing to return + * the expected results. + * + * @returns boolean + */ +lunr.Query.prototype.isNegated = function () { + for (var i = 0; i < this.clauses.length; i++) { + if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) { + return false + } + } + + return true +} + +/** + * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause} + * to the list of clauses that make up this query. + * + * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion + * to a token or token-like string should be done before calling this method. + * + * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an + * array, each term in the array will share the same options. + * + * @param {object|object[]} term - The term(s) to add to the query. + * @param {object} [options] - Any additional properties to add to the query clause. + * @returns {lunr.Query} + * @see lunr.Query#clause + * @see lunr.Query~Clause + * @example adding a single term to a query + * query.term("foo") + * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard + * query.term("foo", { + * fields: ["title"], + * boost: 10, + * wildcard: lunr.Query.wildcard.TRAILING + * }) + * @example using lunr.tokenizer to convert a string to tokens before using them as terms + * query.term(lunr.tokenizer("foo bar")) + */ +lunr.Query.prototype.term = function (term, options) { + if (Array.isArray(term)) { + term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this) + return this + } + + var clause = options || {} + clause.term = term.toString() + + this.clause(clause) + + return this +} +lunr.QueryParseError = function (message, start, end) { + this.name = "QueryParseError" + this.message = message + this.start = start + this.end = end +} + +lunr.QueryParseError.prototype = new Error +lunr.QueryLexer = function (str) { + this.lexemes = [] + this.str = str + this.length = str.length + this.pos = 0 + this.start = 0 + this.escapeCharPositions = [] +} + +lunr.QueryLexer.prototype.run = function () { + var state = lunr.QueryLexer.lexText + + while (state) { + state = state(this) + } +} + +lunr.QueryLexer.prototype.sliceString = function () { + var subSlices = [], + sliceStart = this.start, + sliceEnd = this.pos + + for (var i = 0; i < this.escapeCharPositions.length; i++) { + sliceEnd = this.escapeCharPositions[i] + subSlices.push(this.str.slice(sliceStart, sliceEnd)) + sliceStart = sliceEnd + 1 + } + + subSlices.push(this.str.slice(sliceStart, this.pos)) + this.escapeCharPositions.length = 0 + + return subSlices.join('') +} + +lunr.QueryLexer.prototype.emit = function (type) { + this.lexemes.push({ + type: type, + str: this.sliceString(), + start: this.start, + end: this.pos + }) + + this.start = this.pos +} + +lunr.QueryLexer.prototype.escapeCharacter = function () { + this.escapeCharPositions.push(this.pos - 1) + this.pos += 1 +} + +lunr.QueryLexer.prototype.next = function () { + if (this.pos >= this.length) { + return lunr.QueryLexer.EOS + } + + var char = this.str.charAt(this.pos) + this.pos += 1 + return char +} + +lunr.QueryLexer.prototype.width = function () { + return this.pos - this.start +} + +lunr.QueryLexer.prototype.ignore = function () { + if (this.start == this.pos) { + this.pos += 1 + } + + this.start = this.pos +} + +lunr.QueryLexer.prototype.backup = function () { + this.pos -= 1 +} + +lunr.QueryLexer.prototype.acceptDigitRun = function () { + var char, charCode + + do { + char = this.next() + charCode = char.charCodeAt(0) + } while (charCode > 47 && charCode < 58) + + if (char != lunr.QueryLexer.EOS) { + this.backup() + } +} + +lunr.QueryLexer.prototype.more = function () { + return this.pos < this.length +} + +lunr.QueryLexer.EOS = 'EOS' +lunr.QueryLexer.FIELD = 'FIELD' +lunr.QueryLexer.TERM = 'TERM' +lunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE' +lunr.QueryLexer.BOOST = 'BOOST' +lunr.QueryLexer.PRESENCE = 'PRESENCE' + +lunr.QueryLexer.lexField = function (lexer) { + lexer.backup() + lexer.emit(lunr.QueryLexer.FIELD) + lexer.ignore() + return lunr.QueryLexer.lexText +} + +lunr.QueryLexer.lexTerm = function (lexer) { + if (lexer.width() > 1) { + lexer.backup() + lexer.emit(lunr.QueryLexer.TERM) + } + + lexer.ignore() + + if (lexer.more()) { + return lunr.QueryLexer.lexText + } +} + +lunr.QueryLexer.lexEditDistance = function (lexer) { + lexer.ignore() + lexer.acceptDigitRun() + lexer.emit(lunr.QueryLexer.EDIT_DISTANCE) + return lunr.QueryLexer.lexText +} + +lunr.QueryLexer.lexBoost = function (lexer) { + lexer.ignore() + lexer.acceptDigitRun() + lexer.emit(lunr.QueryLexer.BOOST) + return lunr.QueryLexer.lexText +} + +lunr.QueryLexer.lexEOS = function (lexer) { + if (lexer.width() > 0) { + lexer.emit(lunr.QueryLexer.TERM) + } +} + +// This matches the separator used when tokenising fields +// within a document. These should match otherwise it is +// not possible to search for some tokens within a document. +// +// It is possible for the user to change the separator on the +// tokenizer so it _might_ clash with any other of the special +// characters already used within the search string, e.g. :. +// +// This means that it is possible to change the separator in +// such a way that makes some words unsearchable using a search +// string. +lunr.QueryLexer.termSeparator = lunr.tokenizer.separator + +lunr.QueryLexer.lexText = function (lexer) { + while (true) { + var char = lexer.next() + + if (char == lunr.QueryLexer.EOS) { + return lunr.QueryLexer.lexEOS + } + + // Escape character is '\' + if (char.charCodeAt(0) == 92) { + lexer.escapeCharacter() + continue + } + + if (char == ":") { + return lunr.QueryLexer.lexField + } + + if (char == "~") { + lexer.backup() + if (lexer.width() > 0) { + lexer.emit(lunr.QueryLexer.TERM) + } + return lunr.QueryLexer.lexEditDistance + } + + if (char == "^") { + lexer.backup() + if (lexer.width() > 0) { + lexer.emit(lunr.QueryLexer.TERM) + } + return lunr.QueryLexer.lexBoost + } + + // "+" indicates term presence is required + // checking for length to ensure that only + // leading "+" are considered + if (char == "+" && lexer.width() === 1) { + lexer.emit(lunr.QueryLexer.PRESENCE) + return lunr.QueryLexer.lexText + } + + // "-" indicates term presence is prohibited + // checking for length to ensure that only + // leading "-" are considered + if (char == "-" && lexer.width() === 1) { + lexer.emit(lunr.QueryLexer.PRESENCE) + return lunr.QueryLexer.lexText + } + + if (char.match(lunr.QueryLexer.termSeparator)) { + return lunr.QueryLexer.lexTerm + } + } +} + +lunr.QueryParser = function (str, query) { + this.lexer = new lunr.QueryLexer (str) + this.query = query + this.currentClause = {} + this.lexemeIdx = 0 +} + +lunr.QueryParser.prototype.parse = function () { + this.lexer.run() + this.lexemes = this.lexer.lexemes + + var state = lunr.QueryParser.parseClause + + while (state) { + state = state(this) + } + + return this.query +} + +lunr.QueryParser.prototype.peekLexeme = function () { + return this.lexemes[this.lexemeIdx] +} + +lunr.QueryParser.prototype.consumeLexeme = function () { + var lexeme = this.peekLexeme() + this.lexemeIdx += 1 + return lexeme +} + +lunr.QueryParser.prototype.nextClause = function () { + var completedClause = this.currentClause + this.query.clause(completedClause) + this.currentClause = {} +} + +lunr.QueryParser.parseClause = function (parser) { + var lexeme = parser.peekLexeme() + + if (lexeme == undefined) { + return + } + + switch (lexeme.type) { + case lunr.QueryLexer.PRESENCE: + return lunr.QueryParser.parsePresence + case lunr.QueryLexer.FIELD: + return lunr.QueryParser.parseField + case lunr.QueryLexer.TERM: + return lunr.QueryParser.parseTerm + default: + var errorMessage = "expected either a field or a term, found " + lexeme.type + + if (lexeme.str.length >= 1) { + errorMessage += " with value '" + lexeme.str + "'" + } + + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } +} + +lunr.QueryParser.parsePresence = function (parser) { + var lexeme = parser.consumeLexeme() + + if (lexeme == undefined) { + return + } + + switch (lexeme.str) { + case "-": + parser.currentClause.presence = lunr.Query.presence.PROHIBITED + break + case "+": + parser.currentClause.presence = lunr.Query.presence.REQUIRED + break + default: + var errorMessage = "unrecognised presence operator'" + lexeme.str + "'" + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } + + var nextLexeme = parser.peekLexeme() + + if (nextLexeme == undefined) { + var errorMessage = "expecting term or field, found nothing" + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } + + switch (nextLexeme.type) { + case lunr.QueryLexer.FIELD: + return lunr.QueryParser.parseField + case lunr.QueryLexer.TERM: + return lunr.QueryParser.parseTerm + default: + var errorMessage = "expecting term or field, found '" + nextLexeme.type + "'" + throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end) + } +} + +lunr.QueryParser.parseField = function (parser) { + var lexeme = parser.consumeLexeme() + + if (lexeme == undefined) { + return + } + + if (parser.query.allFields.indexOf(lexeme.str) == -1) { + var possibleFields = parser.query.allFields.map(function (f) { return "'" + f + "'" }).join(', '), + errorMessage = "unrecognised field '" + lexeme.str + "', possible fields: " + possibleFields + + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } + + parser.currentClause.fields = [lexeme.str] + + var nextLexeme = parser.peekLexeme() + + if (nextLexeme == undefined) { + var errorMessage = "expecting term, found nothing" + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } + + switch (nextLexeme.type) { + case lunr.QueryLexer.TERM: + return lunr.QueryParser.parseTerm + default: + var errorMessage = "expecting term, found '" + nextLexeme.type + "'" + throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end) + } +} + +lunr.QueryParser.parseTerm = function (parser) { + var lexeme = parser.consumeLexeme() + + if (lexeme == undefined) { + return + } + + parser.currentClause.term = lexeme.str.toLowerCase() + + if (lexeme.str.indexOf("*") != -1) { + parser.currentClause.usePipeline = false + } + + var nextLexeme = parser.peekLexeme() + + if (nextLexeme == undefined) { + parser.nextClause() + return + } + + switch (nextLexeme.type) { + case lunr.QueryLexer.TERM: + parser.nextClause() + return lunr.QueryParser.parseTerm + case lunr.QueryLexer.FIELD: + parser.nextClause() + return lunr.QueryParser.parseField + case lunr.QueryLexer.EDIT_DISTANCE: + return lunr.QueryParser.parseEditDistance + case lunr.QueryLexer.BOOST: + return lunr.QueryParser.parseBoost + case lunr.QueryLexer.PRESENCE: + parser.nextClause() + return lunr.QueryParser.parsePresence + default: + var errorMessage = "Unexpected lexeme type '" + nextLexeme.type + "'" + throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end) + } +} + +lunr.QueryParser.parseEditDistance = function (parser) { + var lexeme = parser.consumeLexeme() + + if (lexeme == undefined) { + return + } + + var editDistance = parseInt(lexeme.str, 10) + + if (isNaN(editDistance)) { + var errorMessage = "edit distance must be numeric" + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } + + parser.currentClause.editDistance = editDistance + + var nextLexeme = parser.peekLexeme() + + if (nextLexeme == undefined) { + parser.nextClause() + return + } + + switch (nextLexeme.type) { + case lunr.QueryLexer.TERM: + parser.nextClause() + return lunr.QueryParser.parseTerm + case lunr.QueryLexer.FIELD: + parser.nextClause() + return lunr.QueryParser.parseField + case lunr.QueryLexer.EDIT_DISTANCE: + return lunr.QueryParser.parseEditDistance + case lunr.QueryLexer.BOOST: + return lunr.QueryParser.parseBoost + case lunr.QueryLexer.PRESENCE: + parser.nextClause() + return lunr.QueryParser.parsePresence + default: + var errorMessage = "Unexpected lexeme type '" + nextLexeme.type + "'" + throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end) + } +} + +lunr.QueryParser.parseBoost = function (parser) { + var lexeme = parser.consumeLexeme() + + if (lexeme == undefined) { + return + } + + var boost = parseInt(lexeme.str, 10) + + if (isNaN(boost)) { + var errorMessage = "boost must be numeric" + throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end) + } + + parser.currentClause.boost = boost + + var nextLexeme = parser.peekLexeme() + + if (nextLexeme == undefined) { + parser.nextClause() + return + } + + switch (nextLexeme.type) { + case lunr.QueryLexer.TERM: + parser.nextClause() + return lunr.QueryParser.parseTerm + case lunr.QueryLexer.FIELD: + parser.nextClause() + return lunr.QueryParser.parseField + case lunr.QueryLexer.EDIT_DISTANCE: + return lunr.QueryParser.parseEditDistance + case lunr.QueryLexer.BOOST: + return lunr.QueryParser.parseBoost + case lunr.QueryLexer.PRESENCE: + parser.nextClause() + return lunr.QueryParser.parsePresence + default: + var errorMessage = "Unexpected lexeme type '" + nextLexeme.type + "'" + throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end) + } +} + + /** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ + ;(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like enviroments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + root.lunr = factory() + } + }(this, function () { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + return lunr + })) +})(); diff --git a/assets/js/lunr/lunr.min.js b/assets/js/lunr/lunr.min.js new file mode 100644 index 0000000..cdc94cd --- /dev/null +++ b/assets/js/lunr/lunr.min.js @@ -0,0 +1,6 @@ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */ +!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.9",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/assets/js/main.min.js b/assets/js/main.min.js new file mode 100644 index 0000000..0ea1b69 --- /dev/null +++ b/assets/js/main.min.js @@ -0,0 +1,6 @@ +/*! + * Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose + * Copyright 2013-2021 Michael Rose - mademistakes.com | @mmistakes + * Licensed under MIT + */ +!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";function m(e){return null!=e&&e===e.window}var t=[],n=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,o=t.indexOf,r={},i=r.toString,v=r.hasOwnProperty,a=v.toString,l=a.call(Object),y={},b=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},T=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function x(e,t,n){var r,o,i=(n=n||T).createElement("script");if(i.text=e,t)for(r in c)(o=t[r]||t.getAttribute&&t.getAttribute(r))&&i.setAttribute(r,o);n.head.appendChild(i).parentNode.removeChild(i)}function h(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?r[i.call(e)]||"object":typeof e}var f="3.5.1",E=function(e,t){return new E.fn.init(e,t)};function d(e){var t=!!e&&"length"in e&&e.length,n=h(e);return!b(e)&&!m(e)&&("array"===n||0===t||"number"==typeof t&&0>10|55296,1023&e|56320))}function r(){C()}var e,p,x,i,o,h,d,m,w,u,l,C,T,a,E,g,s,c,v,S="sizzle"+ +new Date,y=n.document,k=0,b=0,A=ue(),N=ue(),j=ue(),I=ue(),L=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],O=t.pop,H=t.push,P=t.push,q=t.slice,M=function(e,t){for(var n=0,r=e.length;n+~]|"+$+")"+$+"*"),Q=new RegExp($+"|>"),Y=new RegExp(F),V=new RegExp("^"+R+"$"),G={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+$+"*(even|odd|(([+-]|)(\\d*)n|)"+$+"*(?:([+-]|)"+$+"*(\\d+)|))"+$+"*\\)|)","i"),bool:new RegExp("^(?:"+_+")$","i"),needsContext:new RegExp("^"+$+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+$+"*((?:-\\d)?\\d*)"+$+"*\\)|)(?=[^-]|$)","i")},K=/HTML$/i,Z=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,ee=/^[^{]+\{\s*\[native \w/,te=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ne=/[+~]/,re=new RegExp("\\\\[\\da-fA-F]{1,6}"+$+"?|\\\\([^\\r\\n\\f])","g"),oe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ae=ye(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{P.apply(t=q.call(y.childNodes),y.childNodes),t[y.childNodes.length].nodeType}catch(e){P={apply:t.length?function(e,t){H.apply(e,q.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function se(t,e,n,r){var o,i,a,s,u,l,c,f=e&&e.ownerDocument,d=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==d&&9!==d&&11!==d)return n;if(!r&&(C(e),e=e||T,E)){if(11!==d&&(u=te.exec(t)))if(o=u[1]){if(9===d){if(!(a=e.getElementById(o)))return n;if(a.id===o)return n.push(a),n}else if(f&&(a=f.getElementById(o))&&v(e,a)&&a.id===o)return n.push(a),n}else{if(u[2])return P.apply(n,e.getElementsByTagName(t)),n;if((o=u[3])&&p.getElementsByClassName&&e.getElementsByClassName)return P.apply(n,e.getElementsByClassName(o)),n}if(p.qsa&&!I[t+" "]&&(!g||!g.test(t))&&(1!==d||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===d&&(Q.test(t)||X.test(t))){for((f=ne.test(t)&&me(e.parentNode)||e)===e&&p.scope||((s=e.getAttribute("id"))?s=s.replace(oe,ie):e.setAttribute("id",s=S)),i=(l=h(t)).length;i--;)l[i]=(s?"#"+s:":scope")+" "+ve(l[i]);c=l.join(",")}try{return P.apply(n,f.querySelectorAll(c)),n}catch(e){I(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return m(t.replace(W,"$1"),e,n,r)}function ue(){var n=[];function r(e,t){return n.push(e+" ")>x.cacheLength&&delete r[n.shift()],r[e+" "]=t}return r}function le(e){return e[S]=!0,e}function ce(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){for(var n=e.split("|"),r=n.length;r--;)x.attrHandle[n[r]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function pe(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 he(a){return le(function(i){return i=+i,le(function(e,t){for(var n,r=a([],e.length,i),o=r.length;o--;)e[n=r[o]]&&(e[n]=!(t[n]=e[n]))})})}function me(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=se.support={},o=se.isXML=function(e){var t=e.namespaceURI,e=(e.ownerDocument||e).documentElement;return!K.test(t||e&&e.nodeName||"HTML")},C=se.setDocument=function(e){var t,e=e?e.ownerDocument||e:y;return e!=T&&9===e.nodeType&&e.documentElement&&(a=(T=e).documentElement,E=!o(T),y!=T&&(t=T.defaultView)&&t.top!==t&&(t.addEventListener?t.addEventListener("unload",r,!1):t.attachEvent&&t.attachEvent("onunload",r)),p.scope=ce(function(e){return a.appendChild(e).appendChild(T.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),p.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=ce(function(e){return e.appendChild(T.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=ee.test(T.getElementsByClassName),p.getById=ce(function(e){return a.appendChild(e).id=S,!T.getElementsByName||!T.getElementsByName(S).length}),p.getById?(x.filter.ID=function(e){var t=e.replace(re,f);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&E){e=t.getElementById(e);return e?[e]:[]}}):(x.filter.ID=function(e){var t=e.replace(re,f);return function(e){e=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&E){var n,r,o,i=t.getElementById(e);if(i){if((n=i.getAttributeNode("id"))&&n.value===e)return[i];for(o=t.getElementsByName(e),r=0;i=o[r++];)if((n=i.getAttributeNode("id"))&&n.value===e)return[i]}return[]}}),x.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"!==e)return i;for(;n=i[o++];)1===n.nodeType&&r.push(n);return r},x.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],g=[],(p.qsa=ee.test(T.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+$+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+$+"*(?:value|"+_+")"),e.querySelectorAll("[id~="+S+"-]").length||g.push("~="),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||g.push("\\["+$+"*name"+$+"*="+$+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||g.push(".#.+[+~]"),e.querySelectorAll("\\\f"),g.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=T.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+$+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&g.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(p.matchesSelector=ee.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){p.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),g=g.length&&new RegExp(g.join("|")),s=s.length&&new RegExp(s.join("|")),t=ee.test(a.compareDocumentPosition),v=t||ee.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(n.contains?n.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},L=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)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e==T||e.ownerDocument==y&&v(y,e)?-1:t==T||t.ownerDocument==y&&v(y,t)?1:u?M(u,e)-M(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],s=[t];if(!o||!i)return e==T?-1:t==T?1:o?-1:i?1:u?M(u,e)-M(u,t):0;if(o===i)return de(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?de(a[r],s[r]):a[r]==y?-1:s[r]==y?1:0}),T},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(C(e),p.matchesSelector&&E&&!I[t+" "]&&(!s||!s.test(t))&&(!g||!g.test(t)))try{var n=c.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){I(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(re,f),e[3]=(e[3]||e[4]||e[5]||"").replace(re,f),"~="===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&&Y.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(re,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=A[e+" "];return t||(t=new RegExp("(^|"+$+")"+e+"("+$+"|$)"))&&A(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(e){e=se.attr(e,t);return null==e?"!="===n:!n||(e+="","="===n?e===r:"!="===n?e!==r:"^="===n?r&&0===e.indexOf(r):"*="===n?r&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return b(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){if(!e)return this;if(n=n||I,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):b(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this);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:this.constructor(t)).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:T,!0)),N.test(r[1])&&E.isPlainObject(t))for(var r in t)b(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(e=T.getElementById(r[2]))&&(this[0]=e,this.length=1),this}).prototype=E.fn,I=E(T);var D=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function H(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,de=/^$|^module$|\/(?:java|ecma)script/i;f=T.createDocumentFragment().appendChild(T.createElement("div")),(p=T.createElement("input")).setAttribute("type","radio"),p.setAttribute("checked","checked"),p.setAttribute("name","t"),f.appendChild(p),y.checkClone=f.cloneNode(!0).cloneNode(!0).lastChild.checked,f.innerHTML="",y.noCloneChecked=!!f.cloneNode(!0).lastChild.defaultValue,f.innerHTML="",y.option=!!f.lastChild;var pe={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function he(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&A(e,t)?E.merge([e],n):n}function me(e,t){for(var n=0,r=e.length;n",""]);var ge=/<|&#?\w+;/;function ve(e,t,n,r,o){for(var i,a,s,u,l,c=t.createDocumentFragment(),f=[],d=0,p=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Le(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function De(e,t){var n,r,o,i;if(1===t.nodeType){if(V.hasData(e)&&(i=V.get(e).events))for(o in V.remove(t,"handle events"),i)for(n=0,r=i[o].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",o=function(e){r.remove(),o=null,e&&t("error"===e.type?404:200,e.type)}),T.head.appendChild(r[0])},abort:function(){o&&o()}}});var Gt=[],Kt=/(=)\?(?=&|$)|\?\?/;E.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||E.expando+"_"+jt.guid++;return this[e]=!0,e}}),E.ajaxPrefilter("json jsonp",function(e,t,n){var r,o,i,a=!1!==e.jsonp&&(Kt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Kt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=b(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Kt,"$1"+r):!1!==e.jsonp&&(e.url+=(It.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return i||E.error(r+" was not called"),i[0]},e.dataTypes[0]="json",o=C[r],C[r]=function(){i=arguments},n.always(function(){void 0===o?E(C).removeProp(r):C[r]=o,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),i&&b(o)&&o(i[0]),i=o=void 0}),"script"}),y.createHTMLDocument=((f=T.implementation.createHTMLDocument("").body).innerHTML="
",2===f.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=T.implementation.createHTMLDocument("")).createElement("base")).href=T.location.href,t.head.appendChild(r)):t=T),r=!n&&[],(n=N.exec(e))?[t.createElement(n[1])]:(n=ve([e],t,r),r&&r.length&&E(r).remove(),E.merge([],n.childNodes)));var r},E.fn.load=function(e,t,n){var r,o,i,a=this,s=e.indexOf(" ");return-1").append(E.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,i||[e.responseText,t,e])})}),this},E.expr.pseudos.animated=function(t){return E.grep(E.timers,function(e){return t===e.elem}).length},E.offset={setOffset:function(e,t,n){var r,o,i,a,s=E.css(e,"position"),u=E(e),l={};"static"===s&&(e.style.position="relative"),i=u.offset(),r=E.css(e,"top"),a=E.css(e,"left"),a=("absolute"===s||"fixed"===s)&&-1<(r+a).indexOf("auto")?(o=(s=u.position()).top,s.left):(o=parseFloat(r)||0,parseFloat(a)||0),null!=(t=b(t)?t.call(e,n,E.extend({},i)):t).top&&(l.top=t.top-i.top+o),null!=t.left&&(l.left=t.left-i.left+a),"using"in t?t.using.call(e,l):("number"==typeof l.top&&(l.top+="px"),"number"==typeof l.left&&(l.left+="px"),u.css(l))}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n=this[0];return n?n.getClientRects().length?(e=n.getBoundingClientRect(),n=n.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],o={top:0,left:0};if("fixed"===E.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===E.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((o=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),o.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-o.top-E.css(r,"marginTop",!0),left:t.left-o.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===E.css(e,"position");)e=e.offsetParent;return e||re})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,o){var i="pageYOffset"===o;E.fn[t]=function(e){return F(this,function(e,t,n){var r;return m(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n?r?r[o]:e[t]:void(r?r.scrollTo(i?r.pageXOffset:n,i?n:r.pageYOffset):e[t]=n)},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=Ge(y.pixelPosition,function(e,t){if(t)return t=Ve(e,n),We.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,i){E.fn[i]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),o=r||(!0===e||!0===t?"margin":"border");return F(this,function(e,t,n){var r;return m(e)?0===i.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?E.css(e,t,o):E.style(e,t,n,o)},s,n?e:void 0,n)}})}),E.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.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){E.fn[n]=function(e,t){return 0x

',t.appendChild(n.childNodes[1])),e&&i.extend(o,e),this.each(function(){var e=['iframe[src*="player.vimeo.com"]','iframe[src*="youtube.com"]','iframe[src*="youtube-nocookie.com"]','iframe[src*="kickstarter.com"][src*="video.html"]',"object","embed"];o.customSelector&&e.push(o.customSelector);var r=".fitvidsignore";o.ignore&&(r=r+", "+o.ignore);e=i(this).find(e.join(","));(e=(e=e.not("object object")).not(r)).each(function(e){var t,n=i(this);0').parent(".fluid-width-video-wrapper").css("padding-top",100*t+"%"),n.removeAttr("height").removeAttr("width"))})})}}(window.jQuery||window.Zepto),$(function(){var n,r,e,o,t=$("nav.greedy-nav .greedy-nav__toggle"),i=$("nav.greedy-nav .visible-links"),a=$("nav.greedy-nav .hidden-links"),s=$("nav.greedy-nav"),u=$("nav.greedy-nav .site-logo"),l=$("nav.greedy-nav .site-logo img"),c=$("nav.greedy-nav .site-title"),f=$("nav.greedy-nav button.search__toggle");function d(){function t(e,t){r+=t,n+=1,o.push(r)}r=n=0,e=1e3,o=[],i.children().outerWidth(t),a.children().each(function(){var e;(e=(e=$(this)).clone()).css("visibility","hidden"),i.append(e),t(0,e.outerWidth()),e.remove()})}d();var p,h,m,g,v=$(window).width(),y=v<768?0:v<1024?1:v<1280?2:3;function b(){var e=(v=$(window).width())<768?0:v<1024?1:v<1280?2:3;e!==y&&d(),y=e,h=i.children().length,p=s.innerWidth()-(0!==u.length?u.outerWidth(!0):0)-c.outerWidth(!0)-(0!==f.length?f.outerWidth(!0):0)-(h!==o.length?t.outerWidth(!0):0),m=o[h-1],po[h]&&(a.children().first().appendTo(i),h+=1,b()),t.attr("count",n-h),h===n?t.addClass("hidden"):t.removeClass("hidden")}$(window).resize(function(){b()}),t.on("click",function(){a.toggleClass("hidden"),$(this).toggleClass("close"),clearTimeout(g)}),a.on("mouseleave",function(){g=setTimeout(function(){a.addClass("hidden")},e)}).on("mouseenter",function(){clearTimeout(g)}),0===l.length||l[0].complete||0!==l[0].naturalWidth?b():l.one("load error",b)}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?e(require("jquery")):e(window.jQuery||window.Zepto)}(function(l){function e(){}function c(e,t){h.ev.on("mfp"+e+x,t)}function f(e,t,n,r){var o=document.createElement("div");return o.className="mfp-"+e,n&&(o.innerHTML=n),r?t&&t.appendChild(o):(o=l(o),t&&o.appendTo(t)),o}function d(e,t){h.ev.triggerHandler("mfp"+e,t),h.st.callbacks&&(e=e.charAt(0).toLowerCase()+e.slice(1),h.st.callbacks[e]&&h.st.callbacks[e].apply(h,l.isArray(t)?t:[t]))}function p(e){return e===t&&h.currTemplate.closeBtn||(h.currTemplate.closeBtn=l(h.st.closeMarkup.replace("%title%",h.st.tClose)),t=e),h.currTemplate.closeBtn}function i(){l.magnificPopup.instance||((h=new e).init(),l.magnificPopup.instance=h)}var h,r,m,o,g,t,u="Close",v="BeforeClose",y="MarkupParse",b="Open",x=".mfp",w="mfp-ready",n="mfp-removing",a="mfp-prevent-close",s=!!window.jQuery,C=l(window);e.prototype={constructor:e,init:function(){var e=navigator.appVersion;h.isLowIE=h.isIE8=document.all&&!document.addEventListener,h.isAndroid=/android/gi.test(e),h.isIOS=/iphone|ipad|ipod/gi.test(e),h.supportsTransition=function(){var e=document.createElement("p").style,t=["ms","O","Moz","Webkit"];if(void 0!==e.transition)return!0;for(;t.length;)if(t.pop()+"Transition"in e)return!0;return!1}(),h.probablyMobile=h.isAndroid||h.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),m=l(document),h.popupsCache={}},open:function(e){if(!1===e.isObj){h.items=e.items.toArray(),h.index=0;for(var t,n=e.items,r=0;r(e||C.height())},_setFocus:function(){(h.st.focus?h.content.find(h.st.focus).eq(0):h.wrap).focus()},_onFocusIn:function(e){if(e.target!==h.wrap[0]&&!l.contains(h.wrap[0],e.target))return h._setFocus(),!1},_parseMarkup:function(o,e,t){var i;t.data&&(e=l.extend(t.data,e)),d(y,[o,e,t]),l.each(e,function(e,t){return void 0===t||!1===t||void(1<(i=e.split("_")).length?0<(n=o.find(x+"-"+i[0])).length&&("replaceWith"===(r=i[1])?n[0]!==t[0]&&n.replaceWith(t):"img"===r?n.is("img")?n.attr("src",t):n.replaceWith(l("").attr("src",t).attr("class",n.attr("class"))):n.attr(i[1],t)):o.find(x+"-"+e).html(t));var n,r})},_getScrollbarSize:function(){var e;return void 0===h.scrollbarSize&&((e=document.createElement("div")).style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(e),h.scrollbarSize=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),h.scrollbarSize}},l.magnificPopup={instance:null,proto:e.prototype,modules:[],open:function(e,t){return i(),(e=e?l.extend(!0,{},e):{}).isObj=!0,e.index=t||0,this.instance.open(e)},close:function(){return l.magnificPopup.instance&&l.magnificPopup.instance.close()},registerModule:function(e,t){t.options&&(l.magnificPopup.defaults[e]=t.options),l.extend(this.proto,t.proto),this.modules.push(e)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},l.fn.magnificPopup=function(e){i();var t,n,r,o=l(this);return"string"==typeof e?"open"===e?(t=s?o.data("magnificPopup"):o[0].magnificPopup,n=parseInt(arguments[1],10)||0,r=t.items?t.items[n]:(r=o,(r=t.delegate?r.find(t.delegate):r).eq(n)),h._openClick({mfpEl:r},o,t)):h.isOpen&&h[e].apply(h,Array.prototype.slice.call(arguments,1)):(e=l.extend(!0,{},e),s?o.data("magnificPopup",e):o[0].magnificPopup=e,h.addGroup(o,e)),o};function T(){k&&(S.after(k.addClass(E)).detach(),k=null)}var E,S,k,A="inline";l.magnificPopup.registerModule(A,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){h.types.push(A),c(u+"."+A,function(){T()})},getInline:function(e,t){if(T(),e.src){var n,r=h.st.inline,o=l(e.src);return o.length?((n=o[0].parentNode)&&n.tagName&&(S||(E=r.hiddenClass,S=f(E),E="mfp-"+E),k=o.after(S).detach().removeClass(E)),h.updateStatus("ready")):(h.updateStatus("error",r.tNotFound),o=l("
")),e.inlineElement=o}return h.updateStatus("ready"),h._parseMarkup(t,{},e),t}}});function N(){I&&l(document.body).removeClass(I)}function j(){N(),h.req&&h.req.abort()}var I,L="ajax";l.magnificPopup.registerModule(L,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){h.types.push(L),I=h.st.ajax.cursor,c(u+"."+L,j),c("BeforeChange."+L,j)},getAjax:function(r){I&&l(document.body).addClass(I),h.updateStatus("loading");var e=l.extend({url:r.src,success:function(e,t,n){n={data:e,xhr:n};d("ParseAjax",n),h.appendContent(l(n.data),L),r.finished=!0,N(),h._setFocus(),setTimeout(function(){h.wrap.addClass(w)},16),h.updateStatus("ready"),d("AjaxContentAdded")},error:function(){N(),r.finished=r.loadError=!0,h.updateStatus("error",h.st.ajax.tError.replace("%url%",r.src))}},h.st.ajax.settings);return h.req=l.ajax(e),""}}});var D;l.magnificPopup.registerModule("image",{options:{markup:'
',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'The image could not be loaded.'},proto:{initImage:function(){var e=h.st.image,t=".image";h.types.push("image"),c(b+t,function(){"image"===h.currItem.type&&e.cursor&&l(document.body).addClass(e.cursor)}),c(u+t,function(){e.cursor&&l(document.body).removeClass(e.cursor),C.off("resize"+x)}),c("Resize"+t,h.resizeImage),h.isLowIE&&c("AfterChange",h.resizeImage)},resizeImage:function(){var e,t=h.currItem;t&&t.img&&h.st.image.verticalFit&&(e=0,h.isLowIE&&(e=parseInt(t.img.css("padding-top"),10)+parseInt(t.img.css("padding-bottom"),10)),t.img.css("max-height",h.wH-e))},_onImageHasSize:function(e){e.img&&(e.hasSize=!0,D&&clearInterval(D),e.isCheckingImgSize=!1,d("ImageHasSize",e),e.imgHidden&&(h.content&&h.content.removeClass("mfp-loading"),e.imgHidden=!1))},findImageSize:function(t){var n=0,r=t.img[0],o=function(e){D&&clearInterval(D),D=setInterval(function(){0
',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){h.types.push(P),c("BeforeChange",function(e,t,n){t!==n&&(t===P?H():n===P&&H(!0))}),c(u+"."+P,function(){H()})},getIframe:function(e,t){var n=e.src,r=h.st.iframe;l.each(r.patterns,function(){if(-1',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var i=h.st.gallery,e=".mfp-gallery";if(h.direction=!0,!i||!i.enabled)return!1;g+=" mfp-gallery",c(b+e,function(){i.navigateByImgClick&&h.wrap.on("click"+e,".mfp-img",function(){if(1=h.index,h.index=e,h.updateItemHTML()},preloadNearbyImages:function(){for(var e=h.st.gallery.preload,t=Math.min(e[0],h.items.length),n=Math.min(e[1],h.items.length),r=1;r<=(h.direction?n:t);r++)h._preloadItem(h.index+r);for(r=1;r<=(h.direction?t:n);r++)h._preloadItem(h.index-r)},_preloadItem:function(e){var t;e=q(e),h.items[e].preloaded||((t=h.items[e]).parsed||(t=h.parseEl(e)),d("LazyLoad",t),"image"===t.type&&(t.img=l('').on("load.mfploader",function(){t.hasSize=!0}).on("error.mfploader",function(){t.hasSize=!0,t.loadError=!0,d("LazyLoadError",t)}).attr("src",t.src)),t.preloaded=!0)}}});var _="retina";l.magnificPopup.registerModule(_,{options:{replaceSrc:function(e){return e.src.replace(/\.\w+$/,function(e){return"@2x"+e})},ratio:1},proto:{initRetina:function(){var n,r;1t.durationMax?t.durationMax:t.durationMin&&e=u)return b.cancelScroll(!0),e=t,n=g,0===(t=r)&&document.body.focus(),n||(t.focus(),document.activeElement!==t&&(t.setAttribute("tabindex","-1"),t.focus(),t.style.outline="none"),x.scrollTo(0,e)),E("scrollStop",m,r,o),!(y=f=null)},h=function(e){var t,n,r;l+=e-(f=f||e),d=i+s*(n=d=1<(d=0===c?0:l/c)?1:d,"easeInQuad"===(t=m).easing&&(r=n*n),"easeOutQuad"===t.easing&&(r=n*(2-n)),"easeInOutQuad"===t.easing&&(r=n<.5?2*n*n:(4-2*n)*n-1),"easeInCubic"===t.easing&&(r=n*n*n),"easeOutCubic"===t.easing&&(r=--n*n*n+1),"easeInOutCubic"===t.easing&&(r=n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1),"easeInQuart"===t.easing&&(r=n*n*n*n),"easeOutQuart"===t.easing&&(r=1- --n*n*n*n),"easeInOutQuart"===t.easing&&(r=n<.5?8*n*n*n*n:1-8*--n*n*n*n),"easeInQuint"===t.easing&&(r=n*n*n*n*n),"easeOutQuint"===t.easing&&(r=1+--n*n*n*n*n),"easeInOutQuint"===t.easing&&(r=n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n),(r=t.customEasing?t.customEasing(n):r)||n),x.scrollTo(0,Math.floor(d)),p(d,a)||(y=x.requestAnimationFrame(h),f=e)},0===x.pageYOffset&&x.scrollTo(0,0),t=r,e=m,g||history.pushState&&e.updateURL&&history.pushState({smoothScroll:JSON.stringify(e),anchor:t.id},document.title,t===document.documentElement?"#top":"#"+t.id),"matchMedia"in x&&x.matchMedia("(prefers-reduced-motion)").matches?x.scrollTo(0,Math.floor(a)):(E("scrollStart",m,r,o),b.cancelScroll(!0),x.requestAnimationFrame(h)))};function t(e){if(!e.defaultPrevented&&!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey)&&"closest"in e.target&&(i=e.target.closest(o),i&&"a"===i.tagName.toLowerCase()&&!e.target.closest(v.ignore)&&i.hostname===x.location.hostname&&i.pathname===x.location.pathname&&/#/.test(i.href))){var t,n,r;try{t=a(decodeURIComponent(i.hash))}catch(e){t=a(i.hash)}if("#"===t){if(!v.topOnEmptyHash)return;n=document.documentElement}else n=document.querySelector(t);(n=n||"#top"!==t?n:document.documentElement)&&(e.preventDefault(),r=v,history.replaceState&&r.updateURL&&!history.state&&(e=(e=x.location.hash)||"",history.replaceState({smoothScroll:JSON.stringify(r),anchor:e||x.pageYOffset},document.title,e||x.location.href)),b.animateScroll(n,i))}}function r(e){var t;null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(v)&&("string"==typeof(t=history.state.anchor)&&t&&!(t=document.querySelector(a(history.state.anchor)))||b.animateScroll(t,null,{updateURL:!1}))}b.destroy=function(){v&&(document.removeEventListener("click",t,!1),x.removeEventListener("popstate",r,!1),b.cancelScroll(),y=n=i=v=null)};return function(){if(!("querySelector"in document&&"addEventListener"in x&&"requestAnimationFrame"in x&&"closest"in x.Element.prototype))throw"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.";b.destroy(),v=w(S,e||{}),n=v.header?document.querySelector(v.header):null,document.addEventListener("click",t,!1),v.updateURL&&v.popstate&&x.addEventListener("popstate",r,!1)}(),b}}),function(e,t){"function"==typeof define&&define.amd?define([],function(){return t(e)}):"object"==typeof exports?module.exports=t(e):e.Gumshoe=t(e)}("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,function(c){"use strict";function f(e,t,n){n.settings.events&&(n=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n}),t.dispatchEvent(n))}function n(e){var t=0;if(e.offsetParent)for(;e;)t+=e.offsetTop,e=e.offsetParent;return 0<=t?t:0}function d(e){e&&e.sort(function(e,t){return n(e.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)}function p(e,t){var n,r,o=e[e.length-1];if(n=o,r=t,!(!s()||!a(n.content,r,!0)))return o;for(var i=e.length-1;0<=i;i--)if(a(e[i].content,t))return e[i]}function h(e,t){var n;!e||(n=e.nav.closest("li"))&&(n.classList.remove(t.navClass),e.content.classList.remove(t.contentClass),r(n,t),f("gumshoeDeactivate",n,{link:e.nav,content:e.content,settings:t}))}var m={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},r=function(e,t){!t.nested||(e=e.parentNode.closest("li"))&&(e.classList.remove(t.nestedClass),r(e,t))},g=function(e,t){!t.nested||(e=e.parentNode.closest("li"))&&(e.classList.add(t.nestedClass),g(e,t))};return function(e,t){var n,o,i,r,a,s={setup:function(){n=document.querySelectorAll(e),o=[],Array.prototype.forEach.call(n,function(e){var t=document.getElementById(decodeURIComponent(e.hash.substr(1)));t&&o.push({nav:e,content:t})}),d(o)}};s.detect=function(){var e,t,n,r=p(o,a);r?i&&r.content===i.content||(h(i,a),t=a,!(e=r)||(n=e.nav.closest("li"))&&(n.classList.add(t.navClass),e.content.classList.add(t.contentClass),g(n,t),f("gumshoeActivate",n,{link:e.nav,content:e.content,settings:t})),i=r):i&&(h(i,a),i=null)};function u(e){r&&c.cancelAnimationFrame(r),r=c.requestAnimationFrame(s.detect)}function l(e){r&&c.cancelAnimationFrame(r),r=c.requestAnimationFrame(function(){d(o),s.detect()})}s.destroy=function(){i&&h(i,a),c.removeEventListener("scroll",u,!1),a.reflow&&c.removeEventListener("resize",l,!1),a=r=i=n=o=null};return a=function(){var n={};return Array.prototype.forEach.call(arguments,function(e){for(var t in e){if(!e.hasOwnProperty(t))return;n[t]=e[t]}}),n}(m,t||{}),s.setup(),s.detect(),c.addEventListener("scroll",u,!1),a.reflow&&c.addEventListener("resize",l,!1),s}}),$(document).ready(function(){$("#main").fitVids();function e(){(0===$(".author__urls-wrapper button").length?1024<$(window).width():!$(".author__urls-wrapper button").is(":visible"))?$(".sidebar").addClass("sticky"):$(".sidebar").removeClass("sticky")}e(),$(window).resize(function(){e()}),$(".author__urls-wrapper button").on("click",function(){$(".author__urls").toggleClass("is--visible"),$(".author__urls-wrapper button").toggleClass("open")}),$(document).keyup(function(e){27===e.keyCode&&$(".initial-content").hasClass("is--hidden")&&($(".search-content").toggleClass("is--visible"),$(".initial-content").toggleClass("is--hidden"))}),$(".search__toggle").on("click",function(){$(".search-content").toggleClass("is--visible"),$(".initial-content").toggleClass("is--hidden"),setTimeout(function(){$(".search-content input").focus()},400)});new SmoothScroll('a[href*="#"]',{offset:20,speed:400,speedAsDuration:!0,durationMax:500});0<$("nav.toc").length&&new Gumshoe("nav.toc a",{navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:20,reflow:!0,events:!0}),$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif'],a[href$='.webp']").has("> img").addClass("image-popup"),$(".image-popup").magnificPopup({type:"image",tLoading:"Loading image #%curr%...",gallery:{enabled:!0,navigateByImgClick:!0,preload:[0,1]},image:{tError:'Image #%curr% could not be loaded.'},removalDelay:500,mainClass:"mfp-zoom-in",callbacks:{beforeOpen:function(){this.st.image.markup=this.st.image.markup.replace("mfp-figure","mfp-figure mfp-with-anim")}},closeOnContentClick:!0,midClick:!0}),$(".page__content").find("h1, h2, h3, h4, h5, h6").each(function(){var e,t=$(this).attr("id");t&&((e=document.createElement("a")).className="header-link",e.href="#"+t,e.innerHTML='Permalink',e.title="Permalink",$(this).append(e))})}); \ No newline at end of file diff --git a/banner.js b/banner.js new file mode 100644 index 0000000..db3974c --- /dev/null +++ b/banner.js @@ -0,0 +1,19 @@ +const fs = require("fs"); +const pkg = require("./package.json"); +const filename = "assets/js/main.min.js"; +const script = fs.readFileSync(filename); +const padStart = str => ("0" + str).slice(-2); +const dateObj = new Date(); +const date = `${dateObj.getFullYear()}-${padStart( + dateObj.getMonth() + 1 +)}-${padStart(dateObj.getDate())}`; +const banner = `/*! + * Minimal Mistakes Jekyll Theme ${pkg.version} by ${pkg.author} + * Copyright 2013-${dateObj.getFullYear()} Michael Rose - mademistakes.com | @mmistakes + * Licensed under ${pkg.license} + */ +`; + +if (script.slice(0, 3) != "/**") { + fs.writeFileSync(filename, banner + script); +} diff --git a/data/gegelati-tutorial-solution.zip b/data/gegelati-tutorial-solution.zip new file mode 100644 index 0000000000000000000000000000000000000000..82bae2ebbf1f530c38b693f400f236bcb24cbac7 GIT binary patch literal 78365 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 VywA=3DE{{e7K(qg1OY$y{{Y@1f;IpE literal 0 HcmV?d00001 diff --git a/data/gegelati-tutorial.zip b/data/gegelati-tutorial.zip new file mode 100644 index 0000000000000000000000000000000000000000..f0421abf96d38986915b9c30b31f82a72ac03ec7 GIT binary patch literal 73050 zcmeIbU5sPNavoT+R+g&__;0nc{0ARZx975Iiez>5OwUZsObhHPRyFU`-z8by)9z{W zo+3|GahgT)@{nEKw_UbnJs37%0hSEdelTnU0&M8PUaheUtgtY!TD?iweX#r@V1a!y zunXxKDpIoO+=9Yv#Ha2$-H_F&ZM_D|yAH0pJNZa)~GMnPrNKJC7UN>X|;)L)J6 z_oKyNJ$Qe0B><4k=s2A8#=(oQH;ESJv!&KnS65f0{=sN)6drYZ-SI0nsnF1*v^0uh z0>SerY@Y@wdje#G=w;NNjJtz=3I$a1fDxC~((3z{V3S+nj-vHoFz7{LKbXW(Cm0Wc zus!a+2**)?XAwIEx)1uqj1-9{qZi#5#CkLsjAIfCWx5?HB;7n4bWrzr48pR)cocT~ zEFX@wYbQ}Z8cA`}r_SJ!gTTHVhrKw;?M!}2X>~Vz**%+_1${T9?8l%V2g7J|JQ$s! zbLa&zLT^WcQPh9Y9S!I2>dTek$3t#RXRkVeJXjBCai25B4 zb{Xa&m#CT{r-HiqJ5s{BNE5UFO$K9je zD>E8#^a6zM1<3%!D>|m&{m2e5hc!6w_IkmQlH$1glEA`#C+H7?UZ!JyY|zq*=6Gb@2v7tbbRVH|>4n8zHRUmRkh=ui30S#3$##^{ej zj4knqEH#MYJc}&?$qg0(_f2F%WAyR{53S@B1wI1Cww5s7PPZR{DC1KjMC@EPGpKp6 z?W17cTA}jMz1b*aimp+vC=QrmWd19A-0i1(T)Z>0$9Y9fbHKwFWZixojm9#?gC6^y z?zijgu+r&ps8&n4qKbp*mB?>P=B4WP>i=_3Yy*JGDU8l6=X}hbN2c0p~9#;^R}ux6mzlkY{E@SAw(fIb3?^&(3mdI;--yh;WaRzgNTTmRT0=KdNMFvRUMxLqbY1=P4B6)(4j0Q zdv4uEW4f>gSgyv=OG_h<9)U&3qR~7BM~HfdIVbF)i(HS3A5_LOEF0~Rzv5^d9KDid zZ^!5X)kF=j@XE`b$QO!?inODIOIq90Lt!C(B>RM;e zjmG%MxMPJHPN?M?mC$z5fB`~vs$4SPX0BAW5Ofjfr>1H~V22%Qy43I7XbYQC`3uOF zmJEwSK8H{SCl2~ThtdZ#SS?+YQvQP(%_kBxivVUr9s(jIuZMsudKm(3$^uK}P85UU zqE?X8Kos^lO@Ym%jLH!u#huGYFywK*R{o%)6~jc_#tOL0+xnVTM*Z5Jz!HZIn~=m%6~aHO6lxYGjbNla5QK~F{LTmtJ3fj5pfp2!gzCeMa-0gY6riEbPm>bU4i-Bbj1NG@BcbBhb5Ff-bi&LOlOu&At2 zz`sDV7bB&@BUMRf(yRqd<274Y5JhPe!86c>BkdJ6Q|ce!K@1L*>L}`{ zmKsln!@+2b^%!EL6Bp?_F;IkGE$mVnzuzwY5igK;Ze2TsO|3scT0CZDy=RpEZho~um2}oI*>M@yFqb-J0Jrn zTRQVP^An|oh6=Kcc|lKEa6TA4kB1>7v!SR}FOCO2h-Ci4H2D%nKnw`@-^_LX3X1Si z^*fW^z;nTYHt=>U1H{#Q-hbe(e{%5Q;%>qlzkeGp8S<%t*Yb zFW?Lb$ER40FwqQz1t^8Bq;y;eiklW>eSg2%I;b=se!6)3^~P@HvubPOuwJk3HCv7S z!}>!f~DENZQavugFW-c`;fgSXqPmVFDF}fLc+yaJ)G5N~ zfIGJnaRjk4cj>Z&$QYka0AvtnF;Jnoka@2|7|7RiRPuRvV4VcD1l* z)V>IAdBQT>t%VY->W6#H+HSSAf7m=YY?6I3%l7L}T<;&$_A2!!!q;ViB&{R>TpwDS z)dz>$Ii1rN=;8@_iO*xKyhI~{bGtAD=elKz*s(F~3SHRsN-S1!| z0P7aS1bjkAFsM(hcc2g9@5|i ztBRYgjXH!;6=JE{+S_kEuGIHxd)p1PWiZEFOUpx}c8R?OKADUt3}ViL+pn9|MibQ` zMia(rnv&e!;5bg>fOa<^$o6+29{2Z}_5B^l(7gvOGm|LfK3z*;lv!IY`w9HL*8wP5 zuheUpl$17`&_cYo%ggD~saH8aWU(o1R%9Z$DUc)L%h={wTIlxMy-6nmolKRBa(Yn* zb?`?767Xzr7F`Mz{Nxrad>@5SObQh7rX|=l?U29iHXybdqPYL9F+{3rDe>f}1I3{& zI?byng``Dc8q2p-E0%+*?9Oq$i-Yt4fXX)=11yPfE*U*pxf3G8%7S=-8d_m{XaB*% zyj2%kqO~o|m&);|U0yD=hr{H@>4FfoF*&j@LB;^Wkdm$=c38if@lUmT{n1zB zIKWDA*u<&;L6K#LZvQwM(b3~E0HmRLXgDCy8RZ@u7RY&gx?mn!dX{1GVe3NouS?5Q zuiZ$TV^;!B8W#Cs;UX&!TwkU|3dhBfC6}?>+iP%^D+@?JP}WKszAkUw5_N}uPRm?r z^ZfPC|3>3ieq?TrpWC_SIac`0YVK6)&B1xUHwa-=LfxRaruP%Xry5sjG^$Mq%|E{qA59t|c8SL0;}tnaiQ!gmoYo{q=Ec)eU6j-n_& zE1h5`eR5Rl4$5>+jpK61;1QS6_yUYJdg~N}ptc9qsL^Z$2}00D+|p?tZ`F20@pbyk z?blKsHtf9E99mn7IpgQ{UqW+uJ&&-A7-nT*(GrB#y@f#KSQMD!(csKJZQ0IUlx;b} znpea&_aE==?4#%AT~29g={d;4nlS1u{#%Hh zBlQ|hy6}E+ADdcMh&#!bFY3b{PljTfyA_&7 zHDaz{Wy1?$R#%o-fZ)SZahbrl&T1%DnJEPe3q;9EG5D$A*Eou>mpoQ08|beuEG!3) zyM3@s9DEQgKuZJOooIdiL2uB09tVZpZh!mnlDtS+x53)#osYEq4m%tK@SVYLqD~xx zukIQduN52-$E5f8G@=FWT zcWGg*q#iGLE`|ZjKrBMBad@z0ItI~isOKHFUIL{+9*3IOyVldvwdomYCPzmxXzbU`0X;Go zbmL3JoQk$rlr|zpIeR!Wv7U&8!&6fP@j)@7IIv?blWS^HfjWdp@#Q9vQVb)nQ|G&! zJKw$5e)Z6m0LhK>d6HY#HAPz`o( zf3J!HMwAt**qIph!`^`sp6Wp6Q47vP2S?U|?OGEK^n?9IO&rJIEW5%Qg%!(I*|zMy zP@8qto0VIY7SRS^T11^o&>o=c4reE*)t!DEPJot0nYGz9Y}-GD(;HV@gn$ZglXwbI&$rS}bH@@f}u`Nv7;_^jBWevEGUbuUym z^E#$)J;Gd4_t8eSqP9DW94fnul-+=uLyM78CyOM=A!wy~MOq}J*q}9-I|gstXu>3E z>eKt_j{w53e2n-yg>SGZec)o78VL{1jM0!1nGumidp4ZukxB5m9--L4)g$C1Z$~L< z$>Ul#Ql>LM2qb2WoTw-M*nL=9^@mR1=MA2&?kTdTfXx^{QzkovS3{c~Mjy9p(oi)c zGqpUylbLMkj@ZHU+shkH*R>xUGC9Mld*8eJn}^s`JU|2nd_+^vutReDH5}Wr(RNWb zy3qguC6T(w-eR3hVu+0AJhRP(RVua0Uj73b*Ky%-ZSO9&K^ZxK*c66JM8UQ_-}kcg zs`PzpJDaEr2)e|QMATQ}&2wvs-Em1%!e9EHe(^==FRvCqdd8>)*_f{GJxUfM2C#s( zQvexB14O&W4n^wt7D2lW8NEb2lQ<5i03^{0;y;Ab53mYcqUit(7>}N;xpvX^5b+mt z?nh^M?9w9mQda8)1xA-CtFOqEF!+(X2hQ&~iyT94ok zp;2dHSv>qE4Frb4)GHfJ!DW8FwugX?t6MdtH)SIqA#eyR^5%%wv3hlPA8L~K($`UJ zFUSQpazj8nsuqjE14cXey)nIjPmh`)4)DQUj$mGdvw)m1X^*=nFo0#}p^%!oQ+CcG z5HsOGm+Af1uF2@f+D+YRjap)P$8o`G?hdl5_lWlJ!dQ~%pTz)E4tNJaz1le3X|^6A z?x6Aj4s<=TYF<9xuYU&JEGLx4#t|eo$%QkA5{pc6g?Lb?`ZM9)tqM$wR<&N=uLp}l zCd5_2A4wOro#r?=3U6X(9W+xQmV>R6oZYwu2Ww_Tu1}z%*hfEn1Q8B=V}ihuuN;|B zQq~X|*=rN0R7yq_cIZrQDsDDDs~xm9_dkCECTmGt*Qc1C#Z439rLi}kBB)IexPCZ*p&DrXEkt!LDi@0Z z<8zgv1nrIegC|_0@{5-j1AkpgtpMH%YTLC^3{iL?t%acH=kQQEB?ilcMwMp#310M20}|R{?LVisg(YAQVW{r?*8bt%CTMH7 zp;I%{mcnV!G1dZ{I|zOntFNOIbuFWBCKLnp=558+=FSd(dk9$$yO10c%cV}QH?stY zil_@yf=YtLa#6V2wi2Kf1{GtY)2_O+A|7S56DIQT0*s3k<6H^KBg75$^sH7dyOSp9 z@JUwVzcFm6MH;d#fpbR@7IAp|!Aw-5;7l-^&aVLYVbr554S5G>DyZ+CB|vzM^OCUf z7+b%cV3u)#@@vJL85XR9`Ipu+1x{Lg*coKX+b|Xa32EN7 zLW0fv^4c>MNKJvAYel5s2(nU^A)GRwuESu?QYA356$FU=Dj;tKy8}tbLfBxdH19}* zZZ$F>WOMoDz4xZqAq!bb2<1Gk$%loV%@%gTz1?sTn^Q}i1I@%e0$M3Ig~VvE8A^Na^-v}Crz)Cu5^X;$ld!Qyi1REfo495WRVAA=(d+_^+- z&6y6-q%TntcBC+L3_eNo5cZT{Flk)AqggiKAYp1{yxdCDguGTY2G5`%umXN?Q(OZ* zjsRM_7I-Op?>%WD5gl&9-l9rzpejWmLdxkA0gy7v0SVK(R53t_8|wrD)#(F{_+(hO z#wW8+=7@Vvf~D7f)_uO9($YPkDShBtE4~NxnhU@BqSezUP5aL2 z%zCY_GOBAlzmt5IRg& zaYK-X{ zGBJIo4 z;4xz_(R4KKW0t<7Jb0DTW7fx;xvPp>@yZKoMoLMYtqz}dJ#+AP%C1@#?5siG?Z(&O5jFH8%o)(TFsiT z<`?F}wNxh4<~7wNl=gik{0U!(Zi+%|JMRZyWE3S+_9`_gr-fN6(u_vlR6WumewFg0 z7;G+4i)@KprO3nZDwPOD-&P??wf2_kkPjlB5;M0rMCn zDh0^ayqWT2YjI4_=5-s9;!{eG(^M9woib=>mY#xFSGs0oO?wj^g}_rD8r$O><;1>X z@2>FEaP4|qUyVWSP2Dx=u=sx;{_EfRkAHG*j-R!eVe#omFOCvtQ%N2pEep>=Me4`_ z4R}5Z>V_mQQngi+1HoymhtKShcg+dS-B5cV%GBmI3=duh;R(<9jcq;ANmm#nWfH1( z2I6}g<3N_Jf`5sdt>SI^t(aXMyT^lKrPGC58B`I_!J}@n6~ursevW(L$-0Fo!2=9H zF>z{mUSl#K9FM~PCLNh{4Tqu>8D>=TaNj3oh1Lpt3`DbLV*6ewbA4`&U z7I38MRc`uy7l8q_Ze&((gQt^3!Oo|}n>%JA3v5+L%;h0C+ z#zHk6J!bcS!Xo`;pAp2voOv<~>^~vk{0p-X+0hyy=xD^;Yb3ZOhud!h+NiQQVD=2C zn%MkiYevSh3aL^$6%6gKGxlfX&OS2c2Dq^Qjo@>rB48EfzcL5?%+a$_P!RGki>oAk zQl!yXu}935`lsDC23yC;r-b1h8d*GHDD5-*Z|}IY6jXXKHUxnM+t-v%fZWhLMl{2_MIJrnBqx(Mx@Sm?IO@HUDV|G+-AZlGHnpO( z(u9=Cx|o2Hf*ruXtC$C1VkGPuM{?E++miAYZ?Fw4J0w8VX55p316i1M%Igq7NzyOu zAg>_Z5Hi*?i8Qz}0}ZLk$4VxPpX81aVw3kZfg2Jm>(Jk38&n#BGN!D5L4a)zjo|qE zIWvd>iR7Rcrx9mpshrTTSj53qkwET%|T0cY+O5*kT?6VJk6#8t>LP z=_8MIMqZG_q#>rKoo|Qz?n}u{hoizUXOE?UPOd(w_c*u(EJE)BrV4VwE$_6E@u8r$!Kaz@bUfw{=8#3_AQYvi~*h^0Afu+T|XWL;U?yg6G-AuH{u0nm6v#1p6x(nXN0Jz$3PrHaIri2JxQz5Egoz@J z!{9ttNhEmy2g?_re#t|k@(WNz?Mbp*n!eh+QYlUWpX0&}&2qqDyk!?ho^!!Y?}`YI zPm;#&n*;JF%PTNsWn%73bJq)6M}`U{K&5v_^H@>TGq+Rx3iIg<%Qug2la#!F2C_k5 z2L&!TW)?uIFWma{tNg>!z*+E7_vCbpWCyEvA#+wg3O?(O&mo6bf?B_=1AvT<<53qf z7V?CNU6t){?y)G6oRK$}rij@=`c#IPaF`a&uf?U0(T*&fZE|_oe?=ig&w0{1^MDG` zIuQ>0_RP4;h{c0rL5Jhe@$h(DYd%EozM!)ABtWjWdS$Qq*@ zZ@>_J8X-fZT)eYe#o0L2s643c)S6Govs<<19x@09TL>?%U}L}DtZf|bRO-ROVI4<2 zk=1~XI-MN0qZAqwFXXp{FrtAhJctR9itdv?F8>M?MEd z^mu~EHKZ4{2qTxi(wQR^9$^ZDF-=OL5-fORaM7@!MwJdQId9TfnExx~9km|HPShaI zB>&+g9+jDc0TFX$e8=DMIYO>snmot%!Emf^8HF7}aqb^rnh+S@w58|+q#(wSzu?_7 zc*-1RTeZDSK}NB&(u2#iPVf1LwY?@Vz0F`o&KPf!R!L2ypumNFDOo}V62!t81+^+2YN^T!Oh_Uv#$9t=mYLCm z$q7XJX@rEUG++b@F4kZ^o>3PlP{6|yywplLpu&v24A ziu!5>1I^E4sH%ILHy*8|&I|^iG$I=_PrS)K1F~S1fq`tTC0$!6xSE*m6^4{Q=X4E-CqXex=o*|YQx<3-3j{C-Alm}yJVmj5znf@X7N3m@ zlJN$OW}Pu;ixv}^enJUMccqd6M!3R9zU)F95X+cnb~-zuGK1w1E2&`oc?2l)g6kA~ zBU1gscJIfkks?DSdPUJC48J^pC!;+BE87do8a4B1U%{#t^Pa{goD%KlaAiV==Rip2 z5F^gC6odu!Qsg3XSw*2~KqFIybjoKyWe6$^v^4VaVNJ9R!WhHkg?K_EINYWj0pW;3 zFr%Q6*Q}ZwV%kJSF$1mnB{+EOLd}*ohiHTpk?^STLNRI5AAhOX7yvjYm!ApAf`-aA z?)Idjp+YTaW6~Qforo`DGUN6-R|8!GlNK>0C`mEwc1m74)ahXj7PExoDx~9SXRhHu zBe>vyfN)X88&X^amOWr8q6*Z2ZirenBr^w%#hVA>avkB6hUfwbu$sUraHb>|Ds!AN z(uPpDM$yfrb}@ldAVBj4r_{c6ruIYpysLL%VOWXVC^9RZtZr`7ya|PD_Ar$k#qlJ#c2tP@g2Ad;z8ty;e0B~N9}9c}XH9z$KsXkoD^@KTDM5}7(}Z=w z1W*MLlv~*`6CR_=wGKSew{un}JCL77QT=2#>?eijqQTU`Uvz@j@1#J0(rUES0#x6Q ziD!KXj_XAYTuImoN1e*(Bu{@>N;YxO+a+kP)VCWVyWM6BPhYCWY3G{|%Fo)m zl({nEAAR@NfBA3x)Z83D@857Q0h=1%Y$qVm_7f@&-)tu&%7|SojEmr#?SyZ(6I7Qp z8ZC5guCLIB&C%j-wiCYDPWWa!0gCN6+X+}peT|8l`#0MOq=@cae6yYK&33|nO4|tx zjPgC}KXf|^L@=|dz<@ABAz7EOa|om8o9!)RiIBg&z*4@^>F+QQrE4SPxu_4Y3t}DA zxmdu#!-NYIKzx7Ib_2_J)befz`#N_V&??>Z$xbVOeN~$d2DrFTzw&(t0QbF`>8%GH z)V!?+R8vm7_U;2}q~;lR!16XASnL|(mw2FNGlp5n0r8ui2)J^7Ksym2H<{n;OOW`# zKldZZh`z8Bx1QaSFr9P`*4a$xHYQNTpJ)J=>`i3bGOox>73&(!md~C&YuT;H4rem>DgHwm&HudjEUrzbuWRQb2Z0%z7uk}@p2^p+ zf8jMYlXWiJ#X$WZ*hYqjYiche`y4sT6y+J)8QJn*`HlvOVl#y$n;KrTP9gP_l}yg~ z|M07S>lgp!ADNru=ffNBZ0K23-Q3{Pz3D}lT@vMXx46-ht0+xSRY}6aLNB-tuyVrN zAo%U|0CGG-?s-7e1usNqKpft?=(mMirBOWQ$p&s7apg-g!WX?i5+3QD@-WA1?dBkZ zC!5^WG=cGY1|kMryja(N1h}3o)}73xiJb17eKHeUDpU#bOA`*k<_qa4wqf75MO}(X9<_We)<$;eZoFLI46(PNT@rv zy4k#60F++>4kXSLL1)+Xsh+Mbq@7*S93+>HqgflE&Opnn1K&X$d-)WZ0>lA`O9S7j z=;-Mh8gLe~292?$aEvDL?aI05pcA4idlO!TC?z-!W>%QFYY%>yV*rej_?jZn zQ`v{6$B0*C8j<%SXa(Ec{Dh+?w_ zOpWD*UXm(OiO}qyTN3AwnAKw(kU+=|_{ao*<7^q@T2n!IwwC=jH<}ZR6cR*fjCrH> z7pwa?_`P34>}Y_Ll!yrU(2fL-gG1a&OsNSF<+fEBInh8ay`Ni$Y*xV!?t~ZB|`3>_ekymzev>+RyP>fRc5#H z?fp7fW)FA!A`$K9!Qx-KrOWBl;EVCIcLCSb(2}N}zI@88^Y7lqO#BKFs_k7DAu0K_ zBLvn&#Q1e6BqevMkE%P<OR&95OGs1R zYLe-n%4H~rW^qWb7@$d}yeHQ(RlGN-W=~aI5qRd70K4$c`ghuvOJT|mfM3YFK z@)3@Xo`Qs*g*fzyt5@UxAm(GWR1vx#ZPa#liW>{dWf;xfV;l!N4i4b{Jlr|lZ9QBt ztD^tNJ!>5{s!X2xu(er5a6cFV*Hkxo(svx}whn55*KhYG(EL7uiHu87T?6`77hEZd zi%jplcjx_&*6zK3_x%q)`rxCxYj;0<@7{u5f4#6^`gb(y0=*iJ^Nna=*q-7t4xE-< zAPJf_ssOMZ;pOn!Ar)I7IxooJ91`VvlVx7r+HpoTzqf>oB4{`JJr4I z=EFCyzg4eo@D?5mVLL*qi;)bwvZVx#TYhF4_*B{~VedOBnYA5a4s;;rz+K{gE5Sl7}c#uJllALtqT&gl&hTFi{ z9UO$0r9fE6a?$`f80Hlol6-_`PrLnRU{zsWvY5}ukXIS7xc-_^%Mot8VcVL80l1l{ zc%CW2{AU53!OGw(GKKZ~GdLMAQm83OE9B_-5e{cA2XTlzBjUL+jpB|YoV~%tygYkO ztji1YLNHFUS53jWU+Q8RdE{uHtU*4A`^q zWn;)gj8;s=@+&hrrzNuMf&kd;_d*g-Zuj^vnmrXN|DMilMLl1M3(kC6*QQVwj{FEQ>_r{v|>$?#Z? z;h7*F$VWHipdL@MVh&*0;eb)x5)*LifnhPrrD5=?=o>3`IeCEx7&iCYjn}8aoqKqW zJ!iwjEED ziqiR|4*##__kZdS&&}~OTVaIOfaCtrsFYF|lc&@S-$Y@oLt(7et94Id^d5P7U^pJ& z2r?Bxs~L78tlIa{DWeT;)*A2fsxE;0@5Kb~0;DFz1TrRiGS>YCNqX7pwFXwsneh4`*Ts;)U| zsU`VaYo@q&cq6Nu24AmoYLxLkY<|Qz>#ON8v_qV%ZjQS1jWiSKj)m@AUSJwBtyVY8 z2=x{UL2AvY^&#iQ4KCX%IFqJ)D~l?re~fJ)o#C<`>3h~P$^xMUU}jyhw8Q3z^12n_iV7#PVKAr+cfn9ODrq#yE*@ajY6(2%SSJZ36&{j~*a&gVhp zC~kLguH7yr0&F}O7JJb#S4U*{8s*h|66}wVzz6H{l{M}1Y&z3KdWeE5&qQ-MV3Sz% zVL1>Z_w7ltY9}!p0jrHiO~S6C&NkjE@;T=C7nMzFb1rU+H zm@;60rn^$wa{8OOK}j`=$l;QohozAd3&*Ol`8h%`9^M0eNPy+QNe`orhTmspa~Mi; zX~}O3*>u%!K(!>oa>8){VbG&tiNRt+x;=Vq1(nHOfD^I^PUs_dlWet8!BJI++u{~K zr^K!xfy^^rM>P%}3dIwg@P1HUY**u_D6rpMVk$gnw{ke)@$Q^YmLgWl=R}l6Gi= zmU&?==TRk*bSAvGGnhlQ!dbplHquHqF6 zCOxM1fFJ|WD5xPMS~OjjKkezNX|4LbU;8_|fA!DK&GEB1(+z92lTv#)^fX&wSQ4M7 zRdw;eZpZr?Fdxh51plFPnA*zi9iZAE z-U%F{$dqEUg@iD7P)euu2lnzc2q96irY?6wp?=Q6SP_(}Bt6>BM zpNbPa00GinTKVxBXZAsWx@l<{1Fvm`sN`u8?>z&4Za+p4n3ta zUc=2hILA8%qitb9SQh;eY>?mqvkIJ${Dw$?n1LIAfeRIqGT3NqYu^aPM$u2UyzYmJsd@-DYrpTh*9T0E;W` zCnEs`u6#kpiPodqW_5pQiOtL(!+G2vA9JoF#or2UTV|?DNupp@G-h%{RcI1_A^xI| ze0YQd_gocp8x@u?VQ||ZmX*RCe!XCh|0zrYRm-6VV{Gi$D|#fmc3TlL_$;!9!$6io zcj2?agEiB5pmDankJ*msE+`gU+tN*1`q4%J?FfU#S-KzwBc7}vK_2@;>ix7|VG2W6 zcij?aCQ=&rWDJO89NqYms#->wy08d+s5=_;#s9yl3b&y??l{H$iO5vf!eyzlyMnx# z1d#Uv!{f~6mB4;|=vQbp9_~Nho9eRSHiJ*l+&c6I%Pd@lkxMj^^p41<79Q`d-=(x(Fn4LM9CT4UY!%v3#j+zF@bw@#* zGe`%CtBUi7K&1W@{l()mMSLkc1MRn_yhY?q$*#!Fp!sE(=M(&zbe>+)%zOpY9YiC@ zUBu_MBP=G|P7tkXYRNNmnOt@~M+6rvijDy`Xhk_jO&wi*)aHwAY63v!bpT)K+WYUX zn12JPb)rmoWgnk*F~eC_3a0*I`3&ojHk=5kK{2mFiRiZ;z(tGn%x-#cb;0feUU7mX zcu^#ApjpXRQ4H}^D4Lg7O*=v-Hp;G8&Ca`>@#zY3=F<6Y8v4#88oe?A3#@@wS45Yv zf4^g@y`%LkhIJ;0WCea9CG7XoOCU=R5n6E1Ug@(Z{vaiW2L0&e>V{ZT}kWF_%oK;ZEJWsY3TF1B*n|}VOm*I<(*)Neo(7fDyu!C3( z44F)zhU9M+TTob2)TGWRQqHiY=8;T7 zausJT!x*Gp+P=)?1~HG>3d58)4rpF!v?y4?%;jJj24T&qrj!rL!NH8JKTuU#Q?IRs z2gasd=q-7e|7#EwYwts3y!R2l+0vJ#O@> z6P=JnowIvzd~67dkQby4r#U`+g%}**X&g(?guJK>jQX7qS4+oO_sA6y3|;+Q4hjV^ z@s_xgX$fJ}M1^Y<5!-E!8s}N{gJ^_eeWZ$Fwjt*G(2P%@7F=WD%OuN zR7s;tK{;4kF%8=y5BV^7H@Nd2{?hI*W9tfZ0cjI_%@2bQmoI7DXUL>|ub#9hzfD!P zCaW1~Xjw!Gxc=OPIi%4PXQZCcP(_c8JK2o)&xn>Tyzy|qUi*vt$j7~dttb)K9>>sr zl#!-Y8f?RBqx;da6d>3KI~ATI34R8MtfzNYSD#Tb8q+axH0gU7wTL*xQ)tJl@AY~e zSW!tCvOps9eVrsJW8pwN&@l8c6qA0>Y$ssu7!<`pt&gAH`M^icdjq`W7tk_T$tQu_knK>dzW62Jm#oDJmu0Au!mx(oBpkAaAf_H#@l z4%$pTZ(gKQ5cR?#&j4W>X|-aG8-%mNNU>>{SjDl)&~LxeT{{*)%tH98P&fo{++ABz zIf0$`g6xYYdk>J2tE;Ot6%>gjaZ=n|W!1$}Jv?TU#V%1?4>6f4y7eMEHx%rW_*d>G zd5)~r@)!#j=zzrx#pQe+o-)5FXk+gOfHzamM43i-%8Xeo;a@*GLOFPykr5mIT44Zf zSyE)%TTlYFHiAzbekqbU))tK(A(BlI75zf_p~_niB%3XDMIg70*5sOkKKNK)Fv?5= ziZBurCi%o|7ZBFsQ#!ysAp)fE4v`rfhmziE5ftQEiLN~!&3}zg8-x(v`KV&S~&j5 zSFS?w?(DLiY}vKhWskFE@60ayWv1*UMW1JiUV=d{Q*^3h%m zwMDzOYZz1VQrF_-EmRG>baGwAinTqk=W~O-80?)wf2+%8De*P};-@*x98Tqf$Fl3E z!vsMko5xY-XAB>>y(2UJV4OA-RncNi9h98+T0;Nz1-ii)tfXs}ETTxL2iL1tlH0uC zv=-m@yy&q>U9!YnN2E6n8DHUQ*acVK^AJ z3>xe@XNT;di?jt*5=}-Kiq@;&OE@KDo8NSL#cri1x(;js?#fXMNegGCnFt0O3_#*@ zpwTe4Zlc+Pkr70z6c)bRz=-cb?|`~N6{dr2S5Lq|mf-(v&-@*`dAn)wMgKszrD1a6 z!X21wuz_hdnT=aaGCGcAg-g0zGEQn44Y;(&C7eNyPet#@6E>WwN%Ne}s+^=e3!Qw6 zigdlYv?$b>qLu)8x|HzGc%|=f#d>wGr+X%cib6_^>s)KMQe$*&4T5jBRJ$%b7)N0w9V&rV0Mr-5x{)f zkcet%gd#?bHKySQm|`>Izd=Ne12P6V=1+mADr~5@z9nmB%0Ug6Qz26Y1)IYmVlCyQ zN$Na@9Wsonqk~cn1a(iAU?vv|#k+JIEC<^(8rDjy_^QVg_^^Py8Y<{eRy-o81SwLu z3*QOK^Eia7;J#oTz%H@$m*0}(8PY#tCLc4A567g4`G!8{V2fQTcMb&>eexYpg%}k% zBVYq~uS)}T@(yeod$fYfP=>TU>~$zUZk9Oo40nP$?vY2|Oy42&lBr_9+1M-uY?!(C z!hN%W(eQSgcP=2>m2vi&dtzds{Yr7{-fGmd`)SFw6kzd?DgGMaK^H6TY|!iA1%Enn zzh->AhS!_N%9`@LsZ4%>wv$nR9XK2bY5O%TFgczh02&QeMRYcPDd)XLu%H~LAsjm} zud$|@SoI6c#jM!9*ZCblDsXnB&kn$0cI}7ZaobTz#%ObzZeHk8_!mP zrCV_&!2J%OiG3w8U3!jV zFuHgVE1oa^7PXHkMG{i zK3&^rZpC3K5s5O|Vn!J~ zKgVb{##DMf3TGy#+LRdSIRaX6Z{Obypg93_Sm3w{s56DS(eW^%SqWeGumAYyul<3!Iexx1 zQ^MQ*p0XOU*+VySRN(aHQeDqzOEQfosRK81ZswsUy+1LBYn(X$@MGBHyf9^P$Tw&nYzHGao)Hbm z9w&kOd?*8n5|4PS`z59ls$dG3-80h=oT?fz0#9oS0yH53Kyk(BLIxJ|nTf3h+)M>& zTvrnAIWpFp_pM`wK}g0fu@wcGRxTq5@PBB6cs8`Y z?nr!nSE*NUDK=ChDEW|`J>l@36;Cj2!Y3Nz?F`9-iBixCm}fHboSQvkmBM{4p29|Ih=W%%+U12EsK@DCH@c4 zPLBe6Xp%joL9wh!B9AQKpMv+(<0vwUg2pZk=7P#s@77Rs8LmL~(`yW&*65nF1h*2Z z`M@t}DUT%=U;ekB{S#=-{FHCVk{R!XhvAKxlBqDval{+sxL}Hlj9m4Qz?`wJj_VHy zeVA~&AmS1WDC0w(KAX1Dj+TPreQU721}kEFpX^r*jy{$c2Z4Y~G;dh{-Bf)XBBm4Y zCI~F20Cc)MYkQOWN|h799CB0cZW$*O$ihCo+z{fMi_V6CR_XMWeB5_y+fq7&3JShkljPiFo#*<4hR@`$W1oxlsYh+ymJNwS->E{2sD0;ohrw6GaQEvjj}Aj zrKzf8see?DPP)h&F@o35Ju^En8`NBp(T1j()nBVGqc+sELBHBR!QHFapNR@+k*bBd ztj~tL&7R8B8SaRJ$?u`T$dz#c_Gw0^-5qqI_4P-Uo!TahwtYFqApEK;TN3zSOc8Lb z!4>m*@2H~o34)fZ@Q#0M3R%t-7?M!x?;W@i_5DVUsI_oPzHEu}hc^VqdUYGpu5O5NT3_A&q_cKiYd2gjqTO?DSJe#92dkp}n z$QPo(2H3vLf3@c+DflR{_1z&`vx~+<+{mgvVH_A_8m+ja@JMV;NIkRNtor~EgLH2I z`Qa%9H4e^&XAJIE0%%|zwqN=uaVg-TA8|9BsY`=MpeF{oxb$T_=%Zdn*c~_n-Uu-g zU<=jO*OOQH#`FK{I01^wh^^~_((2m)T96DV$lM$(mWSd4khTyMslR+`VZ9+<)_oB8 zOGRO)%E+z*!ve;A;Vm5Etpn9LhFA#1Q%v%7lem@?@CtV1$3bDILa>>B>$_f9ume`EC_hjhBvu$0oI#JP#h&TU;vv_9B5=Lpyum;Wwu8QVUKt93yRLcQKSic2ffr z3O1gA2OTI!n)241#>PG0P)WOELkX<;0*H@YSNw-bFa_0vM0c=XJ(scvN*mUI8WT9= zH!6gG93sAivou9;@%&J#G4hd#5=A&+oF0TR&f`MoTD{ z<2y?qv8sMA^cVnxVu09WV7|&Foh|*NZ5Njud&5PrqIhKVV>8Lp)!un05D&f~u%|4O zcLm}7ev~u>Jy{SUM%!RTB^|v}M>xwM9zpABwRu4-?SYnA*TGOJ*P|`L$%Iy+dOQFy zQE8S+$6Z`Yap@$(u8@n*{xs-1{1BBb1a;o`bcmJ<6*5Ea7%IpR1wA$)PUtkxj`Sgq zyh%^X10`}y8LyBp|7BBxGACaSF!V?E#aIqf+DdnddG0QT!fmME51v9)nLRUdY=Ce^ zMC?+uBP#@a9pTyDi>ngunS77s*PwCK}(yw0pe@!@U`MGGMsSGJAYU(ZRDG%)zaA^)k#xHT- z#l)EP00|^i!Nz$!Y_?s1NeEQKT zwjEJjb}6SScjKmp+4W{rHzAo>RsWq|`K|x)f7n%35bnXSb49iQ=8-gf|(+ocaV?*PiGP&UL#-78WcRI5QizDLyEkY;SaX z!tO`Hl`gvz-0NaWV;pZro)o4BfM{a0BWhxo>U03T(ws2BGAT<5L>FvN0msb;fPpmC zy)6$X@ztlZ3tO#j9eXfLuavJD#&Cvg+zf$FZ@ za+ycqf?*{t{j7{=I&2}CbFWH4u!UtbZ&ZM^NmbXB%b|on%r*d5G!o1_HW z@I)nkhgfQXho!I0ZYw1%Gl`b2;{X^;NM$u?{FFjS2y-rQ_?}!3f+?4?#XS7M4Wq&2 zM$BDUDh>qFD&8Y|vIcbEUBKwKgQtHc7m)8~`^!gx5-6J&7MgvKnN zAdi}tc*=|sqD&G55K5&G=y$?KQx_5W$c{IWn9EKOh1@G=J~lROSBVw&NR}Rpt{?$W z0jq;xJd`?PP*_xof8jQiau_MEyFx4GUh0nIjN03*s?fbto=IK3?B((@2h+2s&XxA+ zPDwFQ07Ew@zO$7FyQTyz#46NblM-)VJSQ>=T+l($KJ;|67c0{XAnZmp=Ns9SndmGp zj3CPfXMJj&V7M@EX5dgM-t=EBm4e4qNu5L`M|EM0fTfOcu8hoUXDzp<5k84GMOk>{ z)-#@=6rv!c1EK_Rci>~R8gnW@)JnhNWR~(`Gl8KwQni7grC))j-?W# zFO6Jl&Ne~9Y(#}hEHXBj(YUu0uq)^t7hoDayq8Tn>>91)^LL$`oupM_eb$jOKchlaxqp*nUnYnK`~8i;gyKT;#-CsBGO(Pt>#gW`mJf5>Jkq&%1FbUg4~DnX{M&z1olhs%|n zIE?u{hFEh!f}ayH?BFGv?b4feSK?$3TKV_{mCRF4Rp_je#lp$d9VSQ=GB@h76HXHqij$`R!MFFjb4T{rF7wRXbTX< z_Y8&%)^AuIG6)>FFxbXA80=GB)I#QZ1q7Sng|vij^1Pe?V#hL3W!|oXE{hy!5gYNO zO+V%F1ZtdVG#O;exuF|sGiD+j%#k;&!dYe&^F7~M_n4I)8jZe^?3Xz9Qa zLi~l*(3<$gu?aFpi~`h!g3TPyYZ<2tfi4DU;r464D6g2h6;u$$C824eg^7kIv4@Of zbL zKS5GSZ^(+j@$S2_AY)5vgmnqzk5wVO6>O9@KL5N`{k&P-Yha(gL9->;-(${dpdr_Q z06Pc*tX?9Ov91%0$OUMw3J!@A(5PI=OUH-KcZCffHtq|;RKiWO!Nb8h^;a{eHBlkl z2(nC%260@(p2rvy`3z>?iTDxF1T{(Me_Sh7v?SLUOGDjJrwD}~C%9WpCzPnsV~i zuZq`=Chi}t)Hj1WA7pFVS4fkH^Z)hgCdiJl!~L6k`%PSMrfqCj_n0^l*Ye>I74CP$ zm0gREx-nOX#(09vv882>`1~!o<4Se-p*pxFh|OHZ%0b@Rscg#?oC)^w=mN(zw1$DS z8G-t0iT0Q%V*zIk44emtwVlmY^T|OqK}U+CDt0t>tBpowyINQ@dnE8z2rM%{v=AMu zibDNxPfj)LA2tsTn`B>H2C-k~C9GQDL2a*6eE_(7dSmQ+~%c;na=48 zbnyhe#OEy={MY2ciEE36HynRwTc7_-vA4V%-Ln^(ZyAq`XRxBytU zASQS}0|QtCqi*%FguYPDh=nsShq}EEY|eyUnCJBhZfJZEoVivnYHDzpTOUH9V9nHQrc|7 zBJ$qC&5NR&JUk>V3e#BLkV;va z;=COL*tp!qL7M&`@(qEb_{QK2@gWlSVe(@0*nrg<7!6X`-r0YUgu%7=4AZPs<_(X_ z61(nxoGu7W8N;3k>e}O;iXmAwFnxU@X=+RZq#3&|osEKFkshwIC<1mQ3^vgGoSdwUH=a%BPO2g*rF!`Ee{ z#4v}_amZ-rgU^2C5B$WB{sau~xw*gHefC7Yn7@9~{rF>Z|7V3i>~iX?&hk;WU(Uj4 z@Bit4_RD`_ZjPTn=U~ju{nF3AmkYz=oGhsA-}!~Vd%{Zi{FxM}KlNYcp;NC`Hg~I~ zvrZP!Zx{dZ&xLR?@Dro}{r9@Va&#JW|kBN}fv%IWMcy#C35@asU0AD$q#e}3s_|970loE}61 zOLrL2k68@=)xY_wiy zH^0NcO^R+t4rlZ22GNwUWNRJ4=@AZH@`F@BY(S(2|@SS!mf? zY!Yby-G6f>Gz5xe;bqfGCGaNy%Pe?yIifzBg_q5jlEC|&-+{A&XGo&W7-pmWHaJ#Li%|A~KlC2&KG z9I)B*90}Nk|Km!qQ>Qz!#LmV!CeRQ5-IdTS)47nb9Q3m>YDojX`@1)9U}{9OzVih9 k|L|i!k|XESGXCJRANzx>@l*Kk|NZf~x!Qk) +#include +#include +#include + +#include "pendulum.h" +#include "renderer.h" +#include "instructions.h" +#include "replay.h" + +#include "pendulum_wrapper.h" + +int main(int argc, char** argv) { + + std::cout << "Pendulum TPG inference." << std::endl; + + // Use the same instruction set as the one used for training the TPG + Instructions::Set instructionSet; + fillInstructionSet(instructionSet); + + // Use the same parameters as the one used for training the TPG + Learn::LearningParameters params; + File::ParametersParser::loadParametersFromJson(ROOT_DIR "/params.json", params); + + // Setup the Learning Environment (LE) + PendulumWrapper pendulumLE; + + // Instantiate the Learning Agent (LA) + // The learning agent is not strictly needed for inference purposes, + // nevertheless, as it provides a simple API to initialize the execution + // environment, it is easier to use it in this example. + // Also note that this code can be reused as a basis to restart the + // training of a previously saved TPG. + Learn::LearningAgent la(pendulumLE, instructionSet, params); + la.init(); + + // Load the TPG from the file + File::TPGGraphDotImporter importer(ROOT_DIR "/dat/best_tpg.dot", la.getEnvironment(), *la.getTPGGraph()); + importer.importGraph(); + + // Prepare for inference + // Create an execution engine for executing the TPG. + TPG::TPGExecutionEngine tee(la.getEnvironment()); + // Get the root of the TPG (there should be a single one) + const TPG::TPGVertex* root(la.getTPGGraph()->getRootVertices().back()); + + // Init display + Renderer::renderInit(); + + // Simulation and display loop + // Runs until the used exits the display + bool exit = false; + while (!exit) { + // Reset pendulum state + pendulumLE.reset(0, Learn::LearningMode::TESTING); + + for (auto frame = 0; frame < params.maxNbActionsPerEval && !exit; frame++) { + + /// Do one inference with the TPG + auto trace = tee.executeFromRoot(*root); + uint64_t action = ((const TPG::TPGAction*)trace.back())->getActionID(); + + // Apply the action on the learning environment. + pendulumLE.doAction(action); + + // Display the result. + auto uiAction = Renderer::renderEnv(pendulumLE.pendulum.getAngle(), pendulumLE.actions[action] * pendulumLE.pendulum.MAX_TORQUE, frame, 0, pendulumLE.pendulum.TIME_DELTA); + exit = uiAction == INT_MIN; + } + // Display the score obtained + std::cout << "Score: " << pendulumLE.getScore() << std::endl; + } + + // Cleanup instruction set + deleteInstructions(instructionSet); + + // Exit display + Renderer::renderFinalize(); +} \ No newline at end of file diff --git a/data/pendulum_wrapper_solution.zip b/data/pendulum_wrapper_solution.zip new file mode 100644 index 0000000000000000000000000000000000000000..b6a600ec3ee3826eb1408ece81ca5a3fb66ad79f GIT binary patch literal 6032 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:12:53+00:00https://gegelati.github.io/feed.xmlGEGELATIYour Name \ No newline at end of file diff --git a/img/pendulum_g6_200x200.gif b/img/pendulum_g6_200x200.gif new file mode 100644 index 0000000000000000000000000000000000000000..38e24a8d660c9a3cb97d05f12972910ee3085ca4 GIT binary patch literal 144264 zcmce;2UJt-w)eZz0|bZ!FhGES^kx7l3i2jkL2RfX9YQYxQWX&~A@pWMdJVnzUQGZ6 zMT!Lh0RXV&mcy5^vFOC*4WDgU4gS zFk%^~EIchOC#9&kq_nI&R#R0}Dpy`i9)qc`M~RAxiB)v>++|iuwWIJg**c=K4DrHN zdAw$qPNyhJOcWzk$eMlmD)~j$bUj|GA?fPM;A3G7^%Z)j9OPlDGprBAj|<}+itvvy1x|}Gk8bQZltUI)4Q?4lX+*lJGNFP8!x>Y>F)gcajq{;{A^Fx zw@*t?EA2*mx_^9Ke>0SK_HNJ5AKRZ+UX9+pySod(<>n|*LAN<7Ql@M!45hg=M?)Wz zn-Ax|=r$jLbt#*V#9djMkHSaFy^fYjb$cBnS5o#mR;gv_bsXWo+?)6V&)wc6XfKw% zN!0za~Wx6D&N?GX6nz#g(nw}WRf~G#VDjUYrYpim&T&dYU}0KC*Ob|#xH70D9_8vs@zhI>Jr4E zt8O(}J>Lt!Jhv)Vc3aAM$ljIq!c`mX$quN>=Dsx}Ik@EA$-1J#%*=*3OP8^=c5v5B zL6UnUmvXb({T-iDM3cNiH)KD#aJ1@>@aM;Hd`QjXm{hC%rI1%`OIbynSyZI4V@KH| zSUmGGgs-!WlAMqv>@}tAlBxMTykYqDl>2B^$&6wLw`Tc=T#q*>x3jZluQb4VWi^~v zPrZ5Qb7|N=e)P=G>f~GRep2hjLoynB$rlp~pb#RyV~H>OVDp2iU~h*$G;;3y3W!MV zC@fB#E`U~dj+6qnoAQU6?)7GOu62A=A+E&7GBzRiv_^ldp+m}d;)=P@z{g?4T=7c% zk7>zI(|>&2sr-VT>^ijF8CBbphUQ;=jp(br+?_UoK{KDIj2N?4HseOG140zjmEd=O zd?NvurNUl)+LrnQF2+lh>R|4CZ#}Gxt97k@n){Q}?T;TY!ZH5oSKC;(yPRcbj*63C zB6qJcg>R6#gizvNErUu?(QARvX+-FwQZ;GrxhTZkJU!B|Us8A@+VE5XU)o^5%%P1K z9g_Y6O&Ufrf1mpYi|Dao3{&#@0Q*#udIGp`?$Wb`RVi4m#^F3 z*!Jt^uU!Dbi8HKYuxLn(g7siseqR)NpHa49eZjprthxtkn<_?yi!KPHyD~_$YeGip zxPFi=j3j$9{D>CW_#q$Mh~NEMA}9)_#kFV7J&}cCsB%avS1?K#x7YZg%AjTtH2{@) z=0?Yvl_z{qq|>^oO63IuZXU*vrNbqw`b)dbeBTXCz0Sgkvx0S2{2!mAWWJ?3`!K7G zSZ}ceI=#`D3K!y=ao$NGfsuDK^OU;pE`rKl*Jf%U$ zPE1z(5I%iyT#7pNieKbj-IgzW?q&E*EInU!84Q(L`b7a%oAx&e_-k`ra1NL~4w6kc zO&t6@LE}6nZ_L~wH+G-aMCWI*D8&@<&WUV+8^L#eP-SrbS|nEs$V`2S`Gp9lb#n+- zZvCZ$RYo!k;Nxs#1n`6vCq)Q(7@8a3x)F}|n?{ySavO3;iaANR$j+SIh!NPQt)Pa7 z`i9pbo+Yr#2dTi>!`oQ+kq2d>yKvcht*{8NR7@dV_mI3@@{T(KYbsOknv_f$X_G!B z=mNO-DTIzmdeAj|WHfs@k_t07ZcLp{3{oS`rix#iVxnf=#*|u{L`aL@kY6lk7H}@b zfLyub$v7u2smwQ5u*7vD3}U^$ROAc~eh)*VEy4gW6kwIhSUMBoDVD-7AjO)>ker1PCz}_8&3I|Af1rlUQjC0T! z(wp;=Y~e#QvnC#yD@e9*CarZ`2whj{u+NWmrsHO=BP;C7MJNFzg}UYHaCCWPHJAv< zC1Re1ujAi?m54`SZ(2^Smy3lp`!FGC`>J})Om+7|iJ^r|7%D6Ka^Gt3Cu%!zGhP9z zS~=rh@g0t40zx!L8q_Lag9+0LAwEBr2L=C07UVZscy?rP259~NlJ!?)z$Pm_BQuLl zRvsh2pzwEO5RNY^)|AFzD)Tkvbt>xfDn#Y$TDyCab)@d*q5A%%WN{g78?TB)p`?$P zy!~QNjD&L=`7FtR967*Y;c}Cj6k{q_TFS{v-jK+VC8TEDb)Ogp(g*ANO&TV!P$UTs zXZ)cAD)?3;GGuNFQ~m^EQfhhBm0MqhA<>S1FUB4%u-?!vn zG(nFE1`e@+K@vAIT5gC@_<%2{bM2?_m9gUuaYEKzS&h}xyit2F$STuJt5PA9r;4g( zo$YAek0h0iJyKTB(&i<-*UvGn-SX~=4X!5v)R(2c?-nWZj_%DFc?&8t*th1>b$>ug zxEok=ZbQ<$RW+$sJ`ahtn|)kW(xJ^(lU(rl3)`DL%WqtbU+aB+y4Agr+66R@wX~uH>D5T`C5TF4k)g<;DJMq@BlBMHyy!qi208NEZQsEUZjUk~ z7x=}!%-1a5-55zZ#yscsMJqZs;>pF5{ZHgAZriKAe7_){v{>>iXEtGsl3U``F;kGB zDgRcXz(XOLda$B7!=bEXSx{m=#+6xIGr7jIC< zOj}&&ti3B+pVN@Z~-#6oSHo5MIZhoyPx#sp@Y`A;2l1{ZC9)|Iq>d#xxe6^q(-z zLx~lX#LDA~ORK`<#W0xaYI&*sjnz7pm2LTAQliog-T5etW?%om-T`v>&N1<`2$ZT? z2vJtbfQE&R$YXufj-9;yCcMp4KAIBd3o&*;DJzlhC}XtJL7J=c9m%a0JTsWjj+axV*S&C- zSqn`xEdv+4gaI`pL|uteMNxGbXyi>lRi5FyFoCV%bE9v6-l*d<*K$i3R-@fgam@@^ zd(p9;8zO>iQ+&}7Ru-L>b=0d{GpGmBqjy(D`)fe;CwCF;cHR16@8>pJ7lYc5rinvN z|I}oJ%w|O8USW!Ar=85ySbs$oLJv&%ZELtqS2anO^GI45#UUklU>V*AD)?BA$qU?j~WSXSr|R?s-AA3Gu*ZgM%RWmknoP(zwzI z=jiqnS4k5#oIvWi%(m&v$MofglOi}WBwWQTTbMxbhDL9IEgb2Rppw+SnAEE}@GjW5 z$Hgk)>KF4eXNV>t%*FL5b`GJ`KFLg(QsNNJyrV4q{5UMStSl*Waa_*dF~wrp?Sjw= zqC==cqX)&Y`=Ow}?$3iOr6w1H%3~j`dWhy^#+0p8iTn5vVPN!FUL#XQy%NkvHU>de zt$zSeaC-8k1C@S0UZAx_q-h5CTbjvTsF(}fOMJXMbIi93IKICZ)TKp#=8 zEP+7RKj1gNh!9}}qt3U8Ny+%6u8mX?LVTzAMWUe*$5kAqoAoe=B>}%`?G0cL=+?#X zVr2)re#xMy4;8JhQhnF&3?Jz{{E z^8`QvWgaN$3#T+dTwiesod#K+Yxib+*1aE?LOjV@xFgK!5p#p}7OiKtSv4<3usI3f z2S#V(KxZ({DLril6+xV z28z9GF0W0g)WM_bS`txs)ymfHSd^w%S5JRv~tXr(O zx@J#adCzE+1@U4JU{&Ta?JdB+I-6P15Q-4aZAHBg#pLYo@uagVXH0Q8t@K&oz++QL z!y)ZyCh*R$5?j^Z*?HBduTDL_?VB3S!;f|JhK71zVA4gpftUoILe=f1Or zE9tk|U;kX3w$Bbe2A7ELJ)Qb;*Avc<9HDM*q}pEN(|_>Pv&-4|wU%+sxcJp+=cUtW z;&skWkYFLVV#;`oxpeZ#jT3q4GXV$9PM#0lUZm=y=>ma5ZQqJ=T!NQyIn$Hn#M`_) zOZ$>>JKvlwu8S>6TWgq8JiUQo2xCFcJZZC-9lOHnU7k-$n$x z^mzrSK6Y73eHK5hT+gZ5Ufxj|f@i_NNa8gAuq9+aVlR=6G++n*>agF0qsyeTmAB~w@C&5l$P-=QgaNJh`3rBz0 z8nY1hDutTxs(qf)j#Abva(=a?`T|6Vr`{J4AEYwv>})P~ch!jIm~g)9ZXNNE4So$d zy&|f8e_^J(bq<7`)qWjwb7md>UXHSP7rev80(9dF0R$h8?Qb)M`Tv7v2tfGlZsF{x zxa&`MOZaDZ%g&emrkRcr&B)2n5f#fVOx6^`6N@Ttv7KvnWqqs^0VRrQXphvXk#6f? zhKXsi{w?cGPn2588w!Yq<{|LQ$sG@;Fu-AI$wOmgG!@LPN5E<^NJAvBOY8;46Chqv z*+20DxuKY!BsqA4AYX<=rM$r!%DreUF*3fW5&$dY(ZhO2|~Jn8w~ z4sgUHO*#7fvTONG5iIuFA=;&fLgqJz+L+9XSvNbKos6xF=fH0J2e!)hwz^*K{HVV$ z!#uD#dl_^~M(4U#E@^Sqz9OwYuVFlZ3^RB__>*%KdR0i zA5HTT?=Z?D>|wsr{HV-$a+!K`Lfk9rz3ZJYXwLxkY};c~8$X9Brwcb;bfw*fnzEcO zm~~uRnh1I7Zua`Rtl9)6mP^4UD^h78@^;ioSee~*Eu+cw$n5#O`B8jzM+zy5J$o~E zZ!6go@S0+33;@oP`eKq%V>x95(oh`S*NITVeV4iQasmQ-TK5zcDW^^37-i# z(SzVW`L^3!HW(cKEi?0@@>WtbY~Ag2vd}ERIK6tWO(a?vzU`zD?b1YwSUzoZx_EvH zj`1-&A1ilO4!jqa5q-w3IMUJff_%s|;cq3CDS`*@F;;{Q4ObGjw?qmlJrjy_C6=LL z!6nsi_=>^v-!4HqjQSK2$6gD29q1DLw(q22aEu%(AJm@Ldak#QVh8HwUskVOW9Nqb zE#*Brg{4ncU7LKOXb%%W&edLOJXCnu4?+Y;0Eo>nY(hr84vZkqeeB1`R+abkLH4eG z3j)`$pVtYX;YuIG~nPItUC zJ8Koz8%7=dQ6#3DnI!?`bt|W#DW&7lm&dvWK3CLDtY%vu{DR|OmYj=}-MH_GFeVK? zlf$##^1E`A(q@dWQ+wf#i~vn>AI2d>(8^y9`tL|v{vVLe$cz)qL7^}?n5?2qO;xcx zogC5Pnl#OFjC>)nu(s{CCV?Rp*3!;Otn4OWn7t38#pR{&C>_x!51&PfYii;PC&&M< zQ%GzFT{v(HZxD++(NOf@j@*R`>jw?RLumxZhuJ3@Wsbo(^?cA_^8kc~AduYvnp|xj zlou^`ga~><Iin0Vkmie_gYAlffsKLN+06|kMpfOrsmSI9{&*?yII z)}6gRUZ>8LLL!6@EL~3{S?GsxaP1s$Tw}n6!nd6nWFov!NDWY_0%(p{82)T(mPEi~ zaLC@94)}i6w_*oHOghE$T(WY+96Vg`Hm7@{(@OITUF~kMwuQrgc3s3P7@sOZtq{M6W0^bP^ z%`hZ?&DV=JcHCuOM-zf%@F3V^nPlQ5OglYN&5sORX)XThxJ$DY0wnz8pVRiCQa}TF zH-DUJC%O!Brx&L_9=|#j_BDR{8R%lz1T*~PLpj51gZcMeGA{IvS<=If%HPVMB?o0) z5AN-A%@f}|4#a!;nMFIBxm?|MC*1s4USZ5yi<|qJ2APud31yUetrfO>CdcW+JBjF& zPzOUtg+jtw6p@IeCuUi-pM(p5TVKHwmvk0*^u2E8k3aO@?Ty5(uiE55!t zVnsIRQs4lpo_QnpQm)U&kyFvWB6e1ZkNCuoQvhq$g71S!6dr&c*=s{}n#^p!EGcen zOa+XOA3hNLUaneB5~mAnnOJ>9X+Sj<9k<3g4bU1B;8PKraIP6$%_%;voR$fLT-blorv0qM-DB%IsY55n9L8l0wvoYex}bATYo?6LP}!RJv&3$Ox`bjmZyV=%yp!lDBe zKigcEu1P`=6x?n0@q8=#mUs!=6&mpiuoeu`75K8X}{%6w5BemjL)8`6*~qMh26(yUigpPZAMC8czKk9 z<-S}>==aGadhfpX4neRIw;G+?v1iqLD!wmp=$jm}YFJa!5%AU!OYx|$)D%$gKG^d{ zxs2EQl2=pYh7r@U__m00WgCg{5duN7st>(vk*4&329Hnx0V08U_Z?IT1chIhX8U#` zv+lvcAwQtrY!ADzG=Prp7-WDpqrk|cD@`luF>HHY~^a!TTeE|AC7PHkC4)qEI&iZ2l?a}-W&BKCs zvp4RC8LtLDm8euM2MZo)*_=`nI6X2MN~)TfJ#bxs=;}9`)AWP_IqdV?@>X@dc?{Qw z0G$wj(fT>H;?oCT;ZQ*RYor~s?QyoaF$=?{2bbf<}hVc2vh$l#Skiz+H3Q26qy`XY=@X+vvvb6aPIj=W|UE14Y@ z{7X~d|4>}|N4nqk@}hu}M|3Lf515Mj0kSH7K~Dni(%?o3zlR8gsMX=?F3{1TDhL7j z3QC@FCijuLK|H7&4^pag!H=2PO_20OOlAkz3;rA(*v{uzP&EU7e0NK=Y`Fyl59N$q z($&#$*MnnZETjb&8>S_{|LU;|Ts&=xSeF@o~zP zH$t*h&=L8)IA_@X5{mO@w!6LYY3?e;o#nNad2?4n>scW55hcra?^<}SpU6eG8Mn_5 z0t6#A=3MVMDJNp5QIJ&`eEi2jIXj})}Ka~E) z)vhH#HdH^m4Hp!#_02B%q0qy9I(qkIKqoDp47kSYjgXlslo#c0o(O1$v_I~l_KSRy z%r|*R{_;1WOdppHT#|iFg%I7J=b}QWI4-!%&!Gk5?z#A3AWOH;&rIn?v!srv)ko)V zFAJBYhDc|6Lchoq^_@wX5B0SdcDJw#eP7aeTZKT$Cwjj>)1dTLs0cvo5{SmE+&fAT z&bMv=6yU=90G}@sKWMLu8P_q{xw`f1pChwIdT>N0VW6K^=hR2m+-e;49@GE_+~+Z) z@9%wMxs!WeO6L?2NIi`!zbC{sqt=J^R2-?}9DAfcsDw}^0&4}h_XxDL^x!Zrug&L? zKFQ(IVSRN}<)Ze7{}|qn;4@z* zc4K`AS_gAQWRb6ue~8+(W*q%~YZ(jsTX{?7H`^RQ0MPg++cN(Z+hLqCVyW!%Rx&0t zmtEeXiOJ^|S5zipF!ELP4Y8s+QnHQh9c*Wf>iG8-j{lME-%B` z$$$jogK7}Y5s8l|>T0W=L<)rgf$T*M63fDL%)iU|2SGD+=TQdZhsfYe0DF69fnAF7BTn*SGp~ z@@Mean?|t5*OSBfgBH2mVq8Mm!9YH^F@@Jo7f^ePD!idiClgoRpt|l|){8qF40-YT zpt)9PZt!%kqr_RWY)jVpB|6Jh#DB4Qf_QnT_*nY2Blfb^dYmdUOlKG_jbuBmdVKyG z6qzak;bOeAh;Tg|eKx$7bj-mCQgZC2v5-kR$wk>=+s04%C0sBDYNBly#@S&yZ=;s! zb~ZdNAA#My&dpEF*E4+BDrJUPG{l+>%sM+AHdI*Wzmt3TnnN;}AuxOG#|N5IAmv<4 z>Xolm-#~DaB=fY)OMZCC>sPNK=QB@cEas#iUu-YRaLdt@NwV0Q6uaX7Yic1}@uD0) z`O*lnh++D=y(BBzTYfYXwJn=mSi(BNTi)tiCx6c726jH*8um^;Nj>153;fJW;e7NO z>pM0f>5BZb!do^Sa!LNdvdKy5Nz18MzkjR1J08)yXaeK=T?-2D>09=Kqfbx(G!f10 z0O=AaWy|qDssLUhAs@g9My!G6Yt(Bvu#C9c9!Os2N8LAT&X<92g1U78Nbbc*8)9YfZ@?qq(HuW4vtas1426t6cB=0=*@?`c6H3Myi7pQT(U9V`|f-CA!g3891-F< z6fJ)3{!(3szXUc;H$b;a3{8>H_`@1BvKX&O?T!L+KDJ|xZARKSt$p6%Phijh^!6D~ z4QRwOPXg5TCifSZz?`Dtv!#;iFKy!1>j$Qwg;os@IHGbk``#}rd-p!#rmH{&h!iT+ z*Z)yaxr#57H8f=Fy>K^g-vhxV_|Lb0d1)x10x0ccd+AW1?oX0c{wtFImSE4#i$|eE z@r;tvG?b>aSXoVNB1T82x~`=)TnDe&*4=`U7nKsl^xQASG&B!9$|-m-{4bS&{4>e_ zdHr58oTaU*K(5>91A)X3zy*@2rAOiVPysnInQ|1SuZHv(Bch{X%{ZLVc#V~Qh-oPg zAA?d520CxUFY&fX5?-yc%h_gV`Ir({7xezjXQMJwWImrP4o@xvEMmo<@JJdnSkzc? zLimSDZAl2vofu6#bFU<1Pk8Egjj^eGxu!_9ot#1ZMn1|*S}lE}Wh@#VeArHt-tHSY z!+Z3^Afdh9j@e;j($gu>?hbb?=h@5xHLX5x{`gXvh;LaN=@ChGk&9)4%Kd(xzefnQ zzxL6jJZ*f|QenOmD$H;GvMyw-?putD=nb5SpdI{!v`Ox@C86V{aCLK;hv0tsar02H z^@Om;cUU^h@w3;GnRU+|z`|2$Wef61=`i#&hZl<|S3`;VjGt!Gp^6LtE}o)3Y>M6w(NS*s|cFX7_g`h!!`G zl!trf{G^>yC_h0tXJ zxTM+#Abu1m#pW1&a2RZDOwZ%Arst3H9 z2a%ZJtuZr^s>_oOt-;U7F0KT9Y-e&v)%bY6S_$h05rI~{>n9HZP}14>H9-DCcPkiY z=tF_7I#>o>yDg|PzrgPv${$bvyVitVBl{g_Q-P{K5&pAA_W!C-<8=P9M)q545-V0z zP*R$$xgU>bBYa0n43A+W94#*;CEDC}w*|%1Bwx)OsL>P^l^Pr=6Bp|p{nx3u{?7>e zFV8$^bZz5(O7vqgCFBgjI6VdSL`k$F5up&dpLWB!dRomhs|;-5C+%Z zFvahCS7&SXnZ}*3RFNSvh*T6<&n&s4#peyYe2=>ETyx!pXBDz)H8Vm{Qi(x#`G$F?f2N!{xi9^)M#x`O1VvyDb`+Li#B1(Q9d+n{hokqGfIy-2b zC?5SKbJssosN6V_U|Hs1Gjp+& zf{L2CEx_8Sn0-{DjHa?&H!WL&zAp}E$6rMetrTlD8~iBc|7snN}h1LpR!UCm=@ zoc8s2dy*&<27x?NW!LWj!I@=!b{y!LRY8GX8&doTd{~^`@E-CbK;{}%YI5R|KHj%q zNZYSsRZBmCGfh13_jpw6wY=6@}6% zs%>tGMPcMIsMemlitIvnJ@bAoO1^*KQBC*ozgCF(zd<;>1Ybl)9sYyQoJw+v%$MM< zO3$xfVt{DjnDuXi|g==e@Bf|B;$%5O$$pzr@Flg1bC3!3=QD|4V$wp%C!@b(@ zMa$+(dn)o<;MKc z`a9=G=&XPva9lE<_t*gn*V5=gu~=j zepU3GL?`JY`Rwx($8ioVH;yr#!akc>QS;83k9%{YD0U%vC*Gw;i0kpk16YQp6;Y+Z4F6elVaQu)xBwC~I)xqP^8|dAVXI`G&SE z=lzEc7UbRhK1hK^S=@VFP_$LVM6fG2#2ENJKR0Xc__`(YHEwp^S%3&EgZ%lN%F(Kv z=glDnoO2bGPN5H{^iwO2=a+$ygyfpO?pW4sPK#KPYlOaw=N76$H&+}{L2Jzzf3?Ftu9x|3w}DXWrBmMb!dwPO>?AdvMXh3+s$ zWpw3t&SxsEaY`aS#Co|oZ&pWWte8Rlfvji%TQ#I&BnO3LD}s35Y1@?Bu)Uh^5h>b-NqZ0Q-9P?-S_#j_Q#h6EaT6zlQ+2~IiZ^BKOs z@PYzrf5WTrPrTIrGhTo8Y5ZM9!uF71cr{T>erZ|eelay-d2QWoc7ujgNqt*;q?l-T z$K4K$JifP;IZ&?JEk8J1t|@kZum_K>A#b8t}S?GsI9j|=fpf*$LSnNNyh zU4oRz(G+NcxEjIP!w`A#7^j*Vef}BxDF`=|nX>1~KC|2Ey96mdv`HbQH3I2_V+2$m zgWVX0w_pYL=fe>P5(S*hk2%KaBT=a&jXp%Z+S?idAB#dugFE{*nI}z;MRx4ji#bo2 z^M!+BG|s3H!ibPs5y&mM9MX~LI26y4h6#g3d9_zsPWf=Oyx$299TI%jX@9AII`^N?b7%uQ8u-fQ$+KLz^p0e%X2Zo!`oGU_hgOA!v- zo^xBZ`2s?a@&(UX>p#{ugsBmUNGR3>dD~=KfR7S}2ccvQ0Laqh7)tHXL0d@y{5LfD z2?zddN(_FUA1Y?DsB=JQI z4rcO#I8Nkpb3BYr$H=2eClY1!U61bLbRSFsSrcEGX7We^`Hq(Cl}Pvz3-KGAbJ1@Q zTupzML;RT`Fqwl0!&^iDvv32}iOGJYKr6g5AZTDK9UFscven zM4?JsI=k}3YVUOS_Qf}1Q2qZdant`$JN>=(n!kaLq4o{%3YjC(Q}`vrJRt;L-(!O! zQ3#E{j4~l4ig@uh=sXx|egOT9!2;C?91K@BAsWM*M0Tee27Lqz&l@L2B<^NzLOc#G0MWf0(D=)Lwl28BE~_JV?+c0i!tU1BKNE_8^FFzJ@7Gbqji zt+y1C+SHpIuchx8miINWS^^w&8T zQAf!6CMHP8uq54_TSogf7-6j0>)@Pn-%g(sc{{@k_9%+W&LGD5rGF;2b(5zG(+$Ex#@ZJOS6gGXo|yasI(6NGUMU92x*uH%aR0IYKyhR+ukSqW#ip&(vL{yunhUgy# zsKy|qGypa5&KyH&h#^VPFyvfiZJj=2KKFZBCX2sT4NMK^oI<}amR8_n!t~UdB%$?u zK$SD-f11%?I83JEa!fU&ts;u_c z{|Hy4^h6VlKj?Etb6woG7yW1y;2EeG)N05pzrJqC+qj#iNJXeQc2e)a+)YNp>kTbSDQ1wK1OUrXxY+WnFnYAq1>{2 zBY1k*qD3RQddhyB6p|4{aH~ZN2d76JZy1@*y=YwDzG0c^frE9 zs2@4_DF-@pmrq@Z`9{|WD*yJ@dHBITS+rzKrkQvf^7Wk!CE~qgr-w+#+qq3!6E`Ch zDEDregnb(Ut9F=2fMl6YjK)u3-843O~t`_(2z=qhNl`AD$I1f|)Vt{a+M{@8B+WB;0cD ziLFR!Guot>l3`vnNN!&Xs`RY*eqPZj8XeUJ z+?kGCUf+#7OIGc*gQRjP9mMnSyUwd_vKCRz*Eh- z+WV@vroz1yY{ni6&_Qsh-(!x4b}3iYVV%n>2)}Cs$#V&dA)S);U5 zMN(V=_ZIU2Vf5FPyjqBF>#Tmri7P^s;cXW4RorcGMjmo*`jHlIrvY>043i%gZ=Ag~ zVkgzVo6re)A+|lC6JWO~t7)7A<_uXUZ8^G{WZuN}!ALOlXI>V7W8}?fO6EZKFm8gQ zhisuB5bDvKuLx^6fd>nKx{gtw?O{SzO80y=CQvy-xFrrjsIOqPl6*_z)^iS|ws>RU zoe2K89{@tPplK0u61}>TR8Dh3xDN-#2T95s349ACI^`p|ZZkRQiXkH9_FO4T`jd5N z@c55Ga7YkKg!4B0*l=V$@@OKyKF+Pk0c%g7VjSKA0$uqyJA;9?qESg4-9h+H+1+;f z5s)EtUhH!8y*qEu0Rp(9U;SZ8{4dsT->`lFD%u`|{;HM6VFB>~ zjX2OHa#VIx^Pk;*Z1trKfB=I3O7;HtCX&uB$7Zp^jc`r8j%Z zw6;Yww|6yQMCEn5`zkP+{r{eBzyHoe!UT?31N&&`XdF}ny`G;Bmf$8sXCJH^urs|L zM&@l~CLVMYicHF&vrwhn3j9LJ`KG2E$L$R@@P^T5;hY4V+L*unB#E@kJ7%&iC?C~` zNZ^s~$JDa2qofGyRs;hY;}C4tbUPpEpfALamXQl5Qo#`&X9UZb1ed|9T8L*qg6K|< z0hU-~2$`^a6T)LB=7j&e5-N@|SD~BG7pH%QI}xl6!!I>O#$dkt?BEd)?%;jDxI^+h zhOCD*Z@C9GUv8P^@{6_!Zd+OY-f{EG?4ccIQzQpDiaP(9{0^&&@wh8`xO+b88iM9U zI|rgs!8a&W&n^yW$_;gFG=qpEXq!L~Qsi+e0yN3=B%ld2zW9Z`cn5QW$&@`5x&;*= zh^a{sXEpHp0*L!=gYml|1SV2mt@q6z>L%2Eh9-~Z>~;?u@JZ(LoorC=lQJP*vpXzh ztM>ZZxlPA~Ydm|F#7L&Ps=enP`A$h6HX-}E7(>dgE$AKMIbVVlYg6`byx z=AbYZE56yn?j~w^YEcS1GC}lelF@cA6mm0EOy4mizmJLha8Rj!Tgmv1_vW6C)$+}^ zB`eO4o$HuQ5sUs5c1NL42I#);P}N~h`d%`~5RF%E{f^5d)hOw&11Pi!0YH4&TK2jM zg|da0U_)sNb8mWZ&0#$kA^=76D^WtiiRgFDbsL=Mjegh#rRWeeMc6}6z=TKu!S-n& zp_~&&JP47q@tYDLyDm39$Pp#Gf$ojsjZXj9{?tcuLm|;7VF@9(z`Q<6>Z6fJqG%Pt(r<(?BI;|7I263V-A)c}+0b}1$M8abW#Hm)GYb1<{GYG1h5Jt@+oc!RoReRZ4<=qK}1rKW-fkOv>*4Ng<})W(#InKGwtc607=BYYA+sSk!{ zk8#jhAQD6v70gNRGX{qd+Dyjy_e3#%g_8%FCLWP6@;7;7k0nKBfyyp|gG|5jDheLN zp^<*>s`v$ifZZF>hsr2Jywsml$qIq)k^MjQux!mA@VaOF`J(h^flWOgxG?7YoJAfu z3nn+AOWgbEaAo=JmM>b`2B62XhdNu*{68_CcfP+-cY;#NNNfCY0vl{)Oan3ZIWngy zr6WVd8&gNTw!_1hc3i@HY^>2=<~|u?CtJ#~5aGkMgZ+;qbBlHdz1(Q66AjDD1;t@eEQp%kQ@ z+q0PUexj4W+-tlE^Z-QA+~nN76W^b?@e1f^>fZx@1>O&0I2aR!yL{;H`wA%Em&}m@ z>I`W{(g*B8LjiN7ue0Ad2UW0b(TxmVfwR#ET~6DE#w;A#NEn!*xx6T3n(Jy9XP@!z zDd(XD-QF_K`#K~4Dx5>#eH8ReAngUi`{gH=>G-^}MP6uufnZ=9N!a~xAIvBRa1J#Z z1q%^e<c;T1r*J zlHv3B4mkXes<1`ELw81)HP_-H+ItHn5WLLkL-QK0q7=kuBH~%O=7Y}%(9bS?7_%Ozb%qOoggQ~K z&_9kRYzD8G5(2tJPk#8sfwrDa1oK@`@&{IKAFk`E38R6Y$d~T;4o#L|e3_OPPS<*W zvBqya6UY)Jz^&&$v0$DzcWT?eysxh7MVnCC^u!I>{T!ej5n?w^S4;>2@nn*kbt6^2 zFGc>na>FjZ{;u4(|0R+7pNg-yP$(6APGM0TN=&+-xUwotR7b43p-=~})7X}YkrM4{ zznhA|Xo_K&1N1yp@8JI*0!WKntf(+{g_=p6lP1FS*-bzs=1~X_=nvG=`#bNb6fQXS zA^MXzgd?25&pl`_8!34n3W9C3)$pJT>J&ah6FQ}SSIxt zU*0CkNC{~ihQWoC1AXxUcVTek0Xbr3Q`p(v@XsollbU~w7pZfp_I!jy&ZcQVK57Bq z8I6y&s%@+o*Wvf3Hp)lFZp5B)u36xit&uSJqLcjOybPtbb z-u%WqW_ex3@Hk$Nvua$-YLeA@Hn5Z9{&V-Q<4-5OFV$<{sYa9P2HpYE`b&ajc(pR|9%`5ajo)=|7W!7mrKyG$xeP-S z!jQ-HV%~-e#S_4S=BUpslzEvUTHq|7!{Q%q!VNMfeKhYZ>iKgvyha%nrSS?}bCEln zQ?eD~aG0WJAHh&tbC(sgZIFJ$_#BM~Uw->xyDaacp>a;)5!+aIoz0Z=LayB9^2898 zHTcEyk`jY?`u>#Q(MZu67=LB?@PsYs_`KzM;Jw zTzcv`Vdch8a$}MK+?2o%#a{vjtu7BaD2_&k1-1#4=X#{GXbqxU%576U!sH99Mk^z3 zf@0D8E9o^f$Hap*S^JqEO;WSznD+ zd?mX<_|*00fYCDsK8-zZLjdX{Geu=XfDfIM2vxOG21eDbK7^TJ(-RW+swsMD-9yi< zddzx!{h$ohZRxx^eX8;Fr%}6hM&PseIDj;HLw)w?YwI-szKIjZdzv2jntAg)GA$MD z0MH@nZaRENe6Eh0+7VaZf0SBiTx#T^fO@vADc2S=%*X_1ggO1n7|5D@;Sc@yFIAzC z8S*J2CIo+YE$J^C00j>GhYhg(O9Xx3zt2sJ9mruv?)J#oHgGV6D7vA7hGKrk42=9QnuJ1aTx{xly+%aGltlQo&9DX9`3U*}(hVH5J} zW53?4>SZ{=Q<;cb-UniGjFESrah>U8Dg#(qkDfoS-tUUE_YF6jLGjF5GUdA1T*DPo zD&<>wqa-Du#TtU$h#Zr{*;&Ge*>!PdiE^z$Y&XTikH^NWZXU>XF=N$T-PaU$Ad8#G z&bAX&4;m}?qDWDEuE{mhI(m0jM-*Yaq6vz+A<^XWNKO^oL1P~CX0yQ@v&rlk5${fB zcX5ZLCP~(tTP5y#VX2d`dC}*4f#RRqI!t+2L^-Q+iAN7dWUi#gJ>ud!%Kw^J$fg^` zIl}anmCBSr3`a$cS;<^|xmhM)+oLY$ zUHA0n+Ot}*KHm38 z+OlsPd?xMW?%F{`wo`hIVX8`@-osDZu=$f0KNR)?%E6-R~HCK!U#bN#ex9UEu?F-4ZzL+rny># zarnAOvw0ghOO;ijuf}C2wy!wpQ9gI(`aOu-xHCN#_~xb<=Woy23;>`vgJ(LQJ>ER7w$pa;jGxGWn9sGHXDmDPDSs`$PSxe~v_!_Ie!cgYu!qTZ zKc8Z0g%8>$5)NulU@_**zdw^&(t2tnK*6d)YC^+Ekor?*AZFxOdk_2NV+no9qaZm^D;MD%YIQF!T;z>;9izG;NCKTR2m_qH< zs!(EPw%k!TFj5vS-ktkl;y6TC`-M=ukrWITD2(C$j&5$=jGdfYp7G$REWC2XN~p2U8sbn1 zI^(j!L9daxlWFQ2)4mZL@C!{61CGEms09=E+?jX&)Iz-Yp#7JkLHDc-4KBWoiQPF! zqkD46<%QkzT_w|NYN0Q-eXl+6wz0TD5Q@oLaAadId`I_7SD0zj$ee0*eDuPT&lrJl zI8hM%o0W2eO4JL4tv@8-vz3PwGnPhqDYY|kGvjpzP1DTsHY9k;E_PYtYy!40=3|*D z6R%9M`pcM&ZcECI7x{X}Maw-k1L&k~}dGeH~gGe%*$#_O0D=Iy1O|ASYO3=(^HZHbs zhHSDFk@0)!1k^}M$2C8aW|$cEK~2qo5+|d?hLo(Dra&~ZgPhbAI7mQ|HS@}AO)p+A z2bgU&T>M(gi;RiV`tXwFu!AjITTv@yVD1vrw!T5#QfY-WM=$4_Gd`JBC)2Bj159)C zqVmveuBHhgf?keq`9(C7&OmG-rXx9W^)Ewr1jqtgTXnZzuJTwz3Z>1xn`cdU`GXP7 z$7MSoqn8R@d+<(m>S!_<0>|i?Q0WJmuMRS13`}(Pm>?(;sUJ$hl8m1eupCr}ky6qt z@mwip02ZUD^x#=~XyY(6^t9i=!h=&Ks+?K1_bN$}WmiWPUb2wY&|iP-jp#nZP#+fD z7{(waO1eKjSLGA>o*^IQ`9={ZC`QIAVB8(yx$p0!E9VD4hw4-3d7a zAy5gSl}eUX*4>QQ?pIBm)Fch^MOyp3&y_ z)+`6lJ*U;s`ksbS=j+|G#$CEd&v|*^S}3wXK*kN+0djemCE1}XeNh?heQZfS}5@#)JL7gSx59?W=TdK~Q5N%_Fc z3nV*_qL~uZPmz0urfrGI!bNP}Yg#sDNeMd3BdVH$j~FzAoZ+D{a3!i{mF?_2;QZ4$ z`M_fMvZ@NI=am+_wX*pB=`<51aWx|n%7N$Xx-(O}7&q8Y7_RK;Agp+&=^4tRpa%Ka zmDqzhJHy4716x7p-Psw;px!vnLE*z-q^OR!-={yf3WS$N&0;8HRuYHN+mqSn%4d0Q=NuO@LDg>cwainl z8+myh795duE4csN>(!y~3mbMYPyF@EhZ4hI=awko!(|Vvh$t~#yL9~8o0eBnLk&sKE|BLm@b)EYn zmsFH{RljU2!i9add^OOv^G!oidvD$kb6a$eB2Vnewe+*kefJuBK^onAYPPRM8E@z} zN}N(Tn}6@&Sk&)D8tnf0ALf2XC>GDY!eEsk(tf}DCHlwceeNg!CJP|Ej#&gU8Rgz5 z$3zLd`@$5i6}sCmtMRV=B~D+y2{>(aBUlp+b{iw%$nB!FaU%+Ysg_+aW8>&u*l!z+ zPZU};TVE#qw*6s8fqi=~$o}lICaYbl^k1WW&`H4Y$K8MTA5MZOuD@ea{@LIXD<>pZ zm|vR5rBy6Vt1PQ42OEh4cbjvir4N*}blt{a282lG7OPty#I8CtC81xzFK=(TGL@k&bmX6pZg4= z{_+A8j>2&Mpzd_B!$umJ@^q-qfr6sB*Su894+aZz>P!CU9s7@|C$qk44h6p@uoo?dN%a#{WxZTQ4tr}H41?kTy7Yaftf4QXE0b2 zLoP#lXRaL}?!?WKPg5dbJ2Bnn%k^nk9c=t(wbQuNo-^r@A&a=2CJUxdgaj&_ zf=rS|@@WGM*ib(zaDGL~A^2&UslD+!sk-;u^qbJT-_{Esigmuu8%R5>o&5wBc*NpW znuZbUU*6DzfE*iG+YZ2=wSDmaJs`-7BoM)rbZ$`uh7ev>Qj^IgbP!WSsIG0f%|#He z#1Mtfd1}!;_y?@HhPd2L8zSg4?sHqrMCZtu&~~Jk=0rHE8S5f zf}K+tGpP7#3CgC6zzwG8m^`Cuv%4sgmX5>NF<7TEz{gH`mQY#Gicx> znTibVugjaz9Z3;Qcr^D+b>KJ!b{u}MrOh;a0)gP?_8^fCI@d>i<;3pj5bS#Oo+uoB ztoD|rJcX%a%>=*b+C_UGa3QQkc6I2urc~^J9}r!J=YMZLVy^sts^r+x<&&Ax&->ze z-aj7={BWV7)S1=diw+6_wXyPB9}d25+JPFehon2Dl-e5gYR7^f~$+~uKH($DuP_F=GW!mTX#H-Xw7yf zE6ZM8QP(%{%+#u?yO%Ny;q7Fx>Ef+RFFhZ~+b(e9q=Y0rIw3F4?Es5Ou!l`_E0cRB zLgK4{A2Y851;GEXsw&IHU?CMTPLi@2 zY^N0RnBB1UNqHtB23tQb8xibV3D28_-R1V9qv zr4V_2jU;d)(}hMpXEFU5r}k?HG2LTA@iAo9-8B2I}wF~%4+ zSBoSe#L1cjXFq+aE|*V`?jIu-W6B2?YO|`zvuHBd)zEg7VC3l@GsHIUTk`WAyK?Y+ z)RD_=c7ewNU$MSB+T53)JSVgTYwz}FPik6g zwv;Zp_-(cDH}AI1k{WrF#WLXnlUM33@4mlj7*P0ayLs;~d+)+uWWhDXrDBNcvQ2T`*{eGSysSBahwjs7ppPxjKB7#o@JAE z=T{^F?yw>Yfq8A2%0U`J@NT}o^fG0n$STUMy;Hr8SQoV~LuTzlZ6TR^-0nxp_yGuv zdAz#i;jc1OMhpwLgJT-jR_DA2x;TDw1BS{Hww-C%o0utd+h?QW+jUm@qB;27Y)xh7 z2a@O9EL}HynNUzTc3d8$Q=){4@|J*U4*(Asxs?Nqbp0`~K0L++WNGmDHp*xgYD;z;~`ydxUGC$4u!N7dlnD-+n0!ACqxhcl> z`hekWGQ}y#NFvz5-^yI`K+eRFL@cDk6?l$066Wb1mu7$^T`}Mvl!Q;8%bJS%Af)aQ zq)`=_dQ*4twTA@X4&L79RJjyzMFWi%yKoiF&`n8--g1?K85orpGC_wWJQchS!EP4! ze|MF^@0=*lUR?VO*pSggNwXuYqHh`;T73c9Qg(+VHPeV*Cet^(^%yDjIok<%ae%X~ zxfes3tLxa6rUU!Tjo!6`WGtg#<-&!Pj$&m!`Jm`k1OwP9{w*QvI$D(Sa8x1Xeg5PR ze*t(noMx2?OA8uJF~K9fdLLQqeUL1fx7FU#;D0rAwRe3rm#up%MSHj7&E+|^d+*6} zzLg(m@Dn3Uf4RCv0XY@`1vmrIf7FiX|8g;=5buC&z*_{#+(KF^S5awMJVBaJUIUtD zLGDm(Q!bafmSjP5S600!5!3zOq*u=mauh+C1T|MpiOW4O7CwZ*SCjX27z&EQVu=7W z5+e6Xh$3z3b~+m(8XGDp0v*j#4HJ!0OkY4|oeYEiE=>y$4}i)1*gljdGYTMeZwZ~c zzzA>hcvfu}f0_|dXS<&kkk1T>7(oQ?aniMjdKY0gRb1#xZ3m+v2sYSJV$r=<11VxR zO?HZQSBE2HOx63S8y6su^3S#SCLJmw=*;^g`JHsH$(oC8_VP2N2+Z|!6^pC_Ef6T; z29n*F7=c=0DUk0LG>M&2$xK@aYNwD=yY^*?!nrF+i;S#A z8lkjDKhE3QJwIR?IF(pwccb>+g_WSjbCNy&h1`%=B7DR$ng#Ypf3cTVfkDA7ZC+Bm z=liQuML;<5we5XCb5yYxX?&P@EzQ`7Ouu94R<)LK(06Su)1JT0;O4tH8l8z_FugR@ z5DnEaj%pX($n&4_tdJF6tJ)|Cy`j%*^*D}6QbgDmOUjKJ@0-j|P~X}tNg2j7!_fM` z9T7D{?CbKpD>-p_;#L4?Aroh2FbVosS67#hGpB-N*_89uHB-Y<2V2*_ODT75@t>)` z?FOsOfB7|Jtom)kuyMuvAoSUW51JwD_k_$Zy=|Fst9jcxAMoaF+xTC4u-dN^jQ~&d zl|N3j+CQJ@Sm}R?0mWgs)QE*;b^j9DcL8l|J=qeg@*^T$Z3*>&1FV2cDc2&JF3+$3eSp+e8nc~jWpTq zC%@}UaU>zw1dmGL;@*``KO_gL502Bw2pA3{s7YLoSiE|;$T%wZ0x1F-#cVs3&_R6y zp+zk*1)JwaR$P@l%hQmivN4i-kgwov(_J`o@QVwt#=pB4(Q}xe@G1zZe0UMTB0zL- z0HPs5hvb&xPuEWBLg61=61%&W-!Jw`YLK&jyzNiEW{%Ydo=#R2uy8LWWK%-Ff7p2Z zSkG#LqQ9UZ@!8GaIxaZg%w7mAx)IG3V~I#uJCT3j z@s4_0M7Y@wLs?Enu@|E&mtp3+!iuy{ROLNc0$F_#m1!U*(_3sK$u>c=mXoLwpD|Eb zxCVC!{- z(c#YwC#2$r;q^$`uykc@>#Vea@RGSp{`vFgD^O0I)o<=59_AIvL`;%uL~hK+q3Q=E zu2({f4IRwVGY{xeu0%?KC;HR_DFy`p)n&Umy3>fIRlZXy)(?uYk+0c~gb!DI3mRt6 zB|O(U^>-5!D12hT!|wEJcMG^YJ7iauSBAlIEo{Zz8}R&LGjvtp<`M%hTq9Y z^6Ex>KsafUogrjObA*Daj%zYhH8?nk?6@6Mca!jNpK$fisKN7W!w;TAQ_q&VvLbJKGn>rX4~y(&2z=)m;Qt|(0S zvN*#I{p0HjT*ru_vo8WW;lAiHmLKB`!_g(-0i`(b_sxa~2E(dP$0@{0!*$0PXd_bM zWP^XtTCPt(pN>_83&|iR2!UHdp=J-vOOO%Y*O3=>B?q&d*hCk+C$g>bA=e(o#L?1y ztLPYAtgECbleket`eSqC0)(^gL>w*3%xkrb)8q@PSZIQ@;3_ymr-_l3i@o9uje-m+ zVrH0W4$Tuw38J?4jj}0%*mY^~wnV&J^5BEbp}QbUo?ad!`o*(3+<~&D79L`lDHg!F z_PV{->N_O*xaxU*@9_EPvFgZS)SIH$H;f{%@4G9{l}F!@Aw@=vIIxHP2$RktReklR z02O#yED9OuSbFc!UjseuzZb`)KZ-;9kDDM`I_7_D7WzkG4eaCz;AW0UBA5p)uPp@Q zpv1bSTnrb9tGP3)8q@VKwO*R|fZm^kK|dP!cQhKLhHZJE)kf7nP~t+!-ki^b7>C+h18VR3$Opdav0qVwhev zRQOK3ug}n2atN}ckkUMSr-FjCs!=c7+RLBHG=nt@ZgJ{@Jh%N9tR$_BOHVLNC>)l` zogaxZebb|AC88INh-Mc2N=||}6Xcl~W|z)O_9KG9Dj5gadcO6zNHa5TsM{D^)lVH{ zK%@*T>PmJEia8fm9Z|xPM!qS!FXn&i&lrWkPCz13(jra3hw97wHwF4r9Q)N@6!AoM zXA2%e^b50XFNX2&txx6(;3zCz`~fSnB7-*-iSKCay6~^>YJ=O>yJKBJ)W%!Gy~XRo z;$Q7W1O@3rTIZeNGP@ImUj{?*^yEGZ^ON|xhryI>R=U;9Nkt;my~dGH1Q;mLBM=%j#0j$v!{Vt>S9AhhVugQ5sG@LGsc*RyRZ~1-pMG+qIH{%jii$-m)144v;zo|a&Y<|1&!X!jh2)eP#=BHsm07qn9abfD zCQ7yQA_CelyOqvDrd_P%`rJAP(F;&1D~SGB;RQQ)!&&?Wlv{Do?Fo9t1JNpT{Z&oe zE+AX`qF}ZtsMS82zQGQK*C1Ovi09*XP zO^dBIN!0dA;eCoV#?hFdAP#v%J*-H!} zD4l%h2JdTPZ1zuM2Zqji5y&J6JsM8+;h@_Dx(7AEY%#x z7xiUvWX?~srIa`7*n2rGuV6kMac(<~uRQBBWL_Y-ye|Wct!`M&fFwOg( zuobx!$THjANdX%ON}#}vuP`JWrhW5*gPlRNt{A+^{(jzf_0IqzC=05Kb1?9^?`o2z z4s8Sz!&tSGgXdA|DTK>Ys)K+ChusqoAc5@Y)U!>vPII+0G6<2iC))0uB*!c#XDJU6hr3aw>BO>M%btq1~o5yL`(n zHbK9-l2*;uAej>yatmMnPVq3wO+}{BCOUH!{hcA&VX zi3UbY8=E^pmOd9z5!2P1i6Ll76MFha(u(Q-9@q!Fgk%#wDy3OT(F1?!N^VP}lwPnG z*1d%R9O?QLPEs_6L?HnXI2_)-vs^fk0*ALmLR8#_(thK%MRioV14%#5_Y8JamH{Zz z2YE^)7jz<2%@OX0wHX#1%peBK(3poc^Qg@b+VlMo z?CgRm^yTZ8qw(rK!aF?e-`+Fwo+ujUkf>#qcLFbddB9inUeNZ$MUnXrQ#kwkaugx4 zZ0`Yn%X;(3MdFt`t#&YkBEpfZ>*5|8R?b0Z_zRTEZ)drdi`>3XZm>*`n$HyQQOdA% z4H)ETwDGB1J}~cDwk%9ivM#mP^B>$BW!2Gi6cT2J>G_PZ5>BSx!p?XV0|R}zWd|UrT6#0uGhSO@Z_+EppZ+eyHgs3a6cT%A&Lu0^>q$UWEFK2Y9$Y9J)2MO zkH844FZ};sclLKB<+CYm31-M7dd#35fb>M5aN@M>N(TTA(ey)je4{##0>4H`s;ZK3 z5dkGLqVgmbl84pwh{V#QMf3O+m2p_wZAv9y87IfM6rJfDH{M`#%YYt{&9&c_bWI=7 zebQ_-bhy#x+}rv4xIQBn`m$R|IS%8JrF4z~6TOT#2ODn6N*8;Zu0v_2+!_?FC`bp< znBlp{KmGK!E`o?m>pQtABye%eVe}o?z36iQvYCbX*iWrZ*$;Ymd031+YS&@amqlz- z8b}OCO*FsBlrevi=N*_r-;V}jrV<;>UqB`$_qwO^4r~5E9jX~3vhb?<0PR7_CFmE% z^GxU_$9dp-J%YW*3bZ>$`0trI4)`cB9kEQNDyOgrm!;(qhXftV;sl&DvG3Nc z_6*1kYeP?ZJagkfQRLNgUuhv9Ju@L$5$9&aMDSQz>FxHq4uK4uJRO2SyqhwMLwe}r z3a|xL&gmf2IM!FkI@9LPjGcZ~Q37^cGS9~Mbvo*X5iK)MKd*{|diub`$_bTw8?%)e zh;IzY9o~seK)aeo<9d5dp$yaAH@{poE{p$V795%o9QP2(qI z-!@NP_@{xaWiYuMp*NW|A^rWbRiGtq$3{b#P z%>?Unh@1OfabFa#ih5)v1%?z6JZkAOxYP@vq)bnwn4AMWKiv zOg?rj7P$KPi@!Maq`KTL6~1y@((dva2ZiC$!dyy+thiEy#ZEqT8>ddFkw`aW(j^Do z5g1_k>ONW1-d~vCiB9I{^`}M2+H0c7@GRVI9WDtEN3n@V2IJJ9VW<_+BApXSPhprECd*8jw~OT#$oD6=7rK59fH%p!yq?Hyf)%07SmJGO3x^6d%NJIcB{RufC;IZiV}r)s zfBom@VLjit=^r?ONQRH*PK#gOQPJ{x)o@}|Dq+;G56+%OR>!Hxjr8#aYAYy++K4p{ zH0E929TF?-@qPTb8{;Q=FveCzPWg$T-`L?}sZD*_B^bkT5>n{ilM`QTKNuTouqtb~ z9Fo7*&&sF#X>#2*zxlBBez)+gLyZ?B1~o-Dn1l*>`0 z)v-AD>Z%g&-WI%cM!d|#6tke*(t3Fs+sV1i==Q_qJn7KItkzSMHEpAIJZSweYU932`z?M=GUl2zmn;0hb8bcj;9EtdI z^OStE{d$7a;S6sZAHJY|9`Q^Qpe{f-z;uVGa26Vd3_e0%_H^(@j}^00G%4nNS8wZr z8awP2JN5mActO6VGPZv4HFjhi7e+*3m%zx z4*L>z@WtTt1gOtzwZ*eAR55@= zHmfg$JS=iw@KV50@*y~s(o!fRbcfS6eaClPP{r2=e!oSPI<_s0x>VH;=hRwS#_X8s|0 zkq{Yj9CxmGpjy7l3V_q!EEIXf$tfE8I@F|y7FRtR3sGsqf zf$EDAzUBzwh7vkbG+ky{1lw*xjc{rx5csW(JKTP5xXpw~I1HYt} z2ZR4^QT=_UGaX~__y6e$tmH2h;}O&L-YrN*2|F=|$6J_f>5%ilTtQF{9B z9Jg&HS?%@|#BKjc@%?@X^a2Eq5}e?-xI5rwdT+fhCvcniP^u&>h)4wNp%yGPI6(>! zi8*$xl4Q$ewJ>;FISBznC}T92Odo|m$UE4RN``#goQp{NrAxNGM<5ghQ&RAs zU)XSNr}neHP=bTP%tr}qe&2z>`Ii(N zzkYd@e>C&u!NVFqR+dxQ#KT&MAme`@vk2lP#te&iuaGTI~D-;M+S}ZjzdZ) zgnw7U02ZDnLH80xePAG$M$LzUe#mEXUweLh!-h&MuCTu@%v%YKJMhj8fK)rK+c~8> zIArd7B%5d0Amnz%8Rk`<9zu!FItJ`v7PEt{BKPlTS|N~_w&JU)m1Xk|zbUoQMbM#i z2KfVr$=Vf2($eBJp^&O&kvSew&~@gp!G&ZYNzI9xO1le0UO4*n>*xsb^;pR9 zED023#cglFSeJCdB|MJ}DxMN<_DL*GlvYAvRY?z~1D#uy)3FiU%Wt)wq8(ogH`{i8 z5zG40cStV`$;~U(_nUrAcuj;ZGxpq*^QCA1FMX2w$0P1<`edYZ>|f2)A9S`qrv>r< z9}-LkMwLLg-_>&)RACssLx~vS!Qua;J_#;I2d4$E`Ynk0Yb=JGtAnWrJ`~wXa}rKv ze6+utC+Sz-oumA6c^Y*t(X7h?- zv5w=*Xclg)>Th?i@~8JoFVP+A-b~}sU!&jt_UR*7As5FeUnp??gqG1G^!u&;Z@X*G zRvfiEd>!K5o73Hzqjw1s)S)4T75w`1=fe+eg+2%uGJq83-o2&v*pR|-Z*b(x^9Rry zxnzKoNI?lkW{$$u$tlzBQ?3<@*S4%Y?CcAK$aJsy+VvG{zRtjv5Y6%d0t80fT$cQ7 zNQC$uQxCu3hvTly-@lII952184t1wtna3ss;g$%n%fy8a7(~eRL}x}ZT)(~yiDrOT zOqUcGM!Mr^Y2}JFTUv(Jx|--mK6gasM!j*I&JEEfSe7ZGF(!~3ElRg8y7Em{WTeU> zWacl)lm}Hs3yzqSD*7Cr_3%za1Mc=FInuQ2#>H`&SQSBjRwVi8R%IoeE-iSoZYs#} zdUuZm2_bZYe-wa>Sjkk4tQ*;tZ!cKFZBYF124X_S@+OK|jd#)iZxq8T{8u$UkqU|2d|Pi6s56 zRTfKBBou)&xdL6qj=df452n;|4r+c%u7Uj6R~He52c zgMYu74DJ;_ivP39{*{6F(UArffjKCCt)PIS3SN0+a)2fo13~bkq8N^n_X`XTxezBw zCecj0DMr6DmjD>3q9V%cyK%Ke8G?<+)0!9o^|ybfoTaoRaX}a4w)M%6lYkgsuV*rY z*;HAP8h8$;<~V2GVmF4{0N0Q{9?KCO8A=*vRdRZifK*d30hALSaB|}wxpjO*GUJpZ z)$}PUR7O}`k-N}ddm{m! zGil^ImQNj}f$peE9I{b*q9yV49!q_TE0`R`MPU$)j(?dHRSqSaNXrK+P#DwXSe4$-&Z8nJ0 z1>w%(Sv*wQRqDA+(+r&xn#`8EVK0E21J6&Mrn*D#a0TslT(I?dg2gc-kwk+`$j<0V zik*zivlX%5K4h*JKUdN?6PP@bqT}VcRqlX*3X)k%6Qstc(h)PBRVGEAFhQ}3W$yA+ zN5lb0_QNVQ21d|;*cTlYN+x;X$Jbu@!wuZB%x>B3{9@(OwgLIqhk=p=!by6~`UnMF zh3=x|(fVs;V;P@yoKt;25P=S|9>-$|z-XCTs3IeIUI3I8=^96MZgz=h8@qWPUJ|Yj-bhY+4 z%qcih*E4%pOA0QWdwmQzI8duHf<294A5&%_D?!A4=ITZ_4N~5ZNw~8>CN^U8{GM&= zDkejDG%$Np^-Q$a+MEuLuZ=@(ftLF)IQiZK9X-HT8!h$N|GCn_9s_U^c>8hg(~r{2 zz;Jm$fVME%;VV+M-v2M+5a?6p21A9`z@G%&e@2x?5#+d%e_e)h(&1WJ`2_{PFr~$X z~M3_)G|cKbtGD*eCiQ=ZWz(_E8#DG;$YSHagAmCF9{7dt4N zLd@F1k?D$q>t_O+G-oa=l1Nb)Rc0wmjZ>0mbmRnx-t_R*j&hdB266osi5R8}Lu#%x zQaFUy&W4R2&ue3&>%2c?gd11ZgYc@_l*{pDGQwe|Ws9y#Q2^2}Y{*SAnk4sBVnF=#t)R3>(WM_dQ8;1h3kM9Scx&ykfK4cGEpBAEN=YFwLQPe(mG~6S& zZR6R=;|gl9Z{8abi1i~~RP4Lws~YjxP9FNpE4u!YL>5kco;$7v2R!U=gpa5RpJLM2 z6p4}pczJHl8hRvBE*R4616EqZMb%h1p)(9TjQ@nyxtldpnUA6T7M|96N{KTl2WJ8l8PP zOGuKG*^oEnlH>oW+!f(N5Zka!kTP)ylKSsr$!UY9^*H>K%w8RP{48Xe^0&Z>v7o`&^0kd{)^%^&HmkvT$oOuEG$*4@LLolgs za!D^65_=U^l`R(8lcgr7Oos)6tS=rEmNW=c=~nLjsf%4W#7P-Ze5|R0VKA0#$9G2+ zH)?n9ElVx!4T?ORKiE5!T|$TLqZf7`X&>@tJTySE`aN4G$+t|}W{T-NG|e1Ura#Hp zqdsEG4O5}NzinzZY3*FThuG3SqtS0OQ1_Y1Vx5;aa_YjG+WB_1miI4~HlIo8)UFQ{pPD z0$jP~fZaVWjD)EwudX&61YJK7{4QTp&Q=gwRYKbENvWNDM0lIx1asWe#@u%Q_D!v(63^i5^#^ z``OztQ6Eki*UHl)W|mr7+w_H<57F5mNs3nzfj*sJzn+)JVAa^F=Bj+BeN4ea)44NRDmy z+1Z+J%}$Bx{3P0S)>uvB{p4^}*TQST`4((xp22~osmmsYy>@VG&!h}h;B!I3(gy=4 z5!<8LnGtRQ9tNj{f0`|8I82zlymE~BX?bo`!?a-PzH4x~NRG%i0_0SjUa1J<)5-bN z2u`onNC#vI#<8E zXnUpF{IlO6TIm))YyJJ6{#Z9sh((p!Bd4j@vv%rOo~F^eEwOGjcVb+XpIdhsL^mG~ zKGT+tYPa#6^R@97Lz`q)o4iVWY;fglr-nuM8wDrPyCyfH&$Ky-q%unRIWrQw;}SG< zD|PRE_jwS9qFwgT1K`v2xspU`?FMH2+L$SFykP!33jlexCPi+Y_B<&RFhOc6(RhCH?828xYV{su zGHOpd@a5qym7rH10t!IImK0fME&ckD&ss?ASnyM9gZJ1$2ae1(n5( z+UZZz*X9=PE!{1t^LyOY)yn`h-^}mLlt1jH!eO@HR;!_!=D&5Zf5Qtg17<+S|Mdfi zAte6NykiMORiShc6{w0SBnn~jOUvR4RVBGf%IofO34u$Vn)83Dfypi1x$5DWAY=T$ zNCQB9;Hn8kbB8Vwp}i1LPQiN6Q~RmOTWl^MUI<7;z_~|^B#YLJ_zwjZzcJJU5+UJ7 z>G}fV$P-jOD}@{Ig+n=B$Hm?gH%Hk)yJM2!iig63&oRoc@dvIg9d@F4;LubKjVU8 zoz<30`6FcbMf;3|yd*4dP0CM9Uc!I;aylYl_~yi2z52pc^rC%CX7Z4wVG+bi-Jw9mi~qc1{IF2R={%zV4>y>U zdPIfD8`go1WM}2wyc-h?tIDM0w=oh*Hwnu24su5hpDv9)eOTOTiB;M?$XlpGChnG*hIR}!4Br*EJ(-aHkYM8 zgor0Vq0z^;B))CQVyfTr?i@S-VUZhge&)q1E6M!$@ncVBw-m1ZPL5NjSsoESqp$Y! zw@q-Tp`9?hip|;5=8{C&5tbNl!o0y_kv2}eG28*%O2d9uSH-;f@B5kINAz}8hWSWD z`ZJUFq15~Yxdj#^pFXP^#6*wuNmTVqG3A-{$r{e-vp2(rhwg(<{1<0yxHV?aisfBB zDBKAcZ~R5UH9ZA_1XLqJBB9bN1^MJwh>ZeNSBvMU&r&4ROm0=ZyJYAvggIK zB3&f!s=*m)y*le-fkI)2M)uGA_<)tWF@}U;?Wovi`s}p-!`pkfHMOo=-!p|IK!DJT zl+cTSktRqn0o1@!7b4QZfOG)^f(U{pq4!>-8G1(qq=TVpkRn(BX##>GAYuh8?{uxT z*Y%!#&UemxUEkj4f0)mF?q`f~k6)-Z_{0J0k82(Omb(7x6ZQV!8dSGL~hV)%NG~I*_JmfW`Eb|tBFy@Bn@o#^lP%9`>;W8hMbSi0( zEb}i;Yr%btSg7IGGW}ljUoGf+yNXORQUx~a_@G)`j%?RTiz*< zZ6`|~L3J(rK?4{JCq~Ayxjc;EUJUWm^X)8NNx6svT&;#?mX~tJonI% zEm2*~HMG-yyK}k*%8hP2y0B@!4@nQnxwaHpEP0U>= z_IWUV3pl)6QEs23Wkp^Zj0$pMlBF;{f{7=lQU$ zm5Q6ex!BUeUU3a^&j?k_r^rqYJB-)F19G!qucDvpZ{L(X_D`(5dSx3p*5U4ECK zfI`Bqp`Pm+u$iCr;1*y=@1<(7Nf~puhq*IS-te^-M;}(TaY~mbr=0iAJ*_B}Ex)2r za(y?IRp$D&*s7#VO{!upaH5*XMBiPSq(JxzVXqvDgwJO91tz&Ok!pzQ*_D*2xAlm>hgevT!RvLNOll~Eohi<%mt@1AmGG6u)V%4A0$=x+j;ZWB)kQ-c#X7)= zbV~06_IpYD0$3NYH~0(eTK9~YP~ryF1Ct~&>7oD}=2DY5AU{HS$Ak~qHx6-;?Ky@` z^~@kc2X{^|Mg;Mp9K$?}?@fT3bXWi&$*Ho1WwU2AjT}TSst;kNl@kX<@#9U8&P1y) zI%l!Uy(}gbVF8bXP+=cpOu5zYED(xM>xd;UK%ITe@DY|WkFWdu1>h|w=vWbR+I z$h2Ru$U803TD;AzU4OwMy9et*gSP43NX7p?E%MU(_i}v3eJ+^x?%XcH3{fN^9Eu$; z#)k_K4=C|JS@dLwisG&@aS9B8fM~Q`AyM`}MZ>G(>X?vlEZTDKW>mMriV_5ZsN`Yd zU@sO3zt@b_G3j+h2w{=h0&8mq9cr-;U2Z+?bEf)~{BL}N1j;jJjNtJV@Ajjlf#Ztl zJu}T-RA{bboRYoe#c=4=qq_N{_?XpdVV-C=z1fD>2x-cFUuI|P`NwS+4>3A!w7x~( zs#%b02zC0fAfzU9yw>5}+RLds>|FJBOF=U;1q+vF43@4+LQ8+oUJzUQc5j76!6pp( zV=9XbaT~u$*rP^IUS^cto4daI`qd1D*L>|+h#(KqES$6Y{>|tgI6NxGtT)p#fF+?} z5wBpW@I3D7r&Y&rT4|6SnU;#e#Hpa17@?4kwHHUUU*<^cB|b7)JC{ayd8p*t@%OM& zY{5H)#dxBju#CM_vE{0PW4X}tI3WRRxogvz$hn*^8Ny{*DD(UDe8a5P!UC2dPdD3d zI;%1X*IHIzUYP6kOulIrtmWuTQ!;&+8M#~T9+5WIuVCTHoiZOI;X8BVng-|B7uVw~ zV(6FcmyN0bKSxRFUbOKhKz4{R-0m$x#enAgVr@tE!48O1BLYTQ}9Lz;W1#V zC<+U2tp6G3Y9qyluLFWuvAzI?OnFm0^D}m~b(ywr%K?KXZ8H|iw~hm+~=M)V}?ee-A5l|S?*vy8ZZ#AsOFjcgcZ>I4Q5()F#AN7WmAF<2~eQ$HMBx`IRJ5 z&AB#C`oa6$NHTS{r%$XE%PR_Mln{zCWf6vPY+H&}VDv(ABuKvas6#tuue!oGzj}8j zUfWG9&n^s!qQ@I_Y}ECS?F467S!p@hotFtb=Jt>L(%+q=NkGMadNd>^CI3@U76cQ; zh>L?n$#PwBUNlIQ%#l|V`$d#Y{^c6C_1uj__woKBO16Tw@c}XB!xpfn_}=*B)bz8N ze|zP~FEG&`M9GT3U@9NY?_^47qb}Saq&&(L&DGMUV`al(5hxAJ`(7ECWH_9UJEIqf zhRg7iurg(+C^UIboh&4*X#{JG5YZ5lq=UI+SB|+d0^STF!ojA2OX+=kzcTzCn-?j_ zFREG+Df8&Jb_jAroS$qx`=r6SE^Z$N_?Fs>WWCJIWg2RGdu|f#hEdgT_ji48Ntf+X z7z6LvO-^-BS+st!%_6EHJy~-$(0P4Chf`4C?B~FZDs{|a1L?(O1RG~()S6=R@0Bzn=+g42^$ z#%`B&D7mM89&?B^_ctL1(5O~+5Zm5QHx2zb8)e)nkM0R4pO&*&yJ3hPmrKug!W!NP z5h$i$5_D|j$sGEJnaJfI0_Tfm-xFh?w>ZeXkmFya*RhBCWaa1;mhLWAJocdP2KG9D z(>WUFVbCOUm~yejlSlyp&R9k>_bFW!xXXHaEp}YxH^o4V1r~qj#j#!G=4VoQo>DwQ zR zlNQp#-C{hPwDSR8dv$I}O_=N>1L8=#H@y&9dlYineE;?c*RJ*J}0>V9g!T1Qi5ko9^>RC~q*M$qffbU)jbJ2KN@d{ReEoy8jZ3yWalYTt_;^ zpM6zw{?x3%yVyL3K{Gy$hWJ`Bkv+B>L4Z((pjR4%lU80cVMr#_=J5DFudcmj#-5gR zq~2jQggyETS=^^5<7HuZPy1R@utUX?UC9`>#1?+GDRCG$03iWKBO^AC3$ zB)H3h5yea(?T;h=UlQEGh$1=%B)Au*X~|%DLEo(+TTvVfwglda=2cXbKTz7x)?V0H zE7uJY+|$tD_N`*y&;!uk)@mL8U*4ElRZ+Rai&4QrM=q~GqJ$u=%T21 z`h8SELGY3S{0Cv@6K*GJ+3!Vc&cA$~-uC4<$y!|@O#%*50Ktj_jLyT<P?D<&Osk2Ydg(qaYMy0Zv$%D9~Y0ex{-#u!aj@)sIvuxV5jkVQ`r@ISWSqXsi zJn4UxN}HR)o-;H2axR2V0K>>nh??<;!tg0REX4^lf@`^GrYHS$2nzu$4V+o4gejA_ zs>Q{fJrP3rEpkN{3`}2D1|Ifu2g)DyU!cVfSS|oZi5|tdP2&6UKq?E}yX58S2k)@> z0l8j4@LsM;oymd9wNAq*CbaTpao`Y8M0O*WT;Pe(a_?>Idb zdKrGXS~QWP?zr2-Z>MLZ67_keF9wMnnz%5m-`Yi9D%fdKNX+B8wLkL5qi2bKC$@Bc zoljQa1`z(o`PBL6Nt=dE`!lf>c~D$jF%Nu_mnP}zh>L+}fVv!Xl}>eiGdOAUwsv&Z zD^|;N{qG?@hSL9T{i^3vU>@WxgL3j<^`?WVMx&{0Qh0Fd(PN^B=a_%nBBSyQ6bi-f zK6?j?U^{iwFf!#y2^4J`&qGlnDO)9r#t3lWwD2~K=l59fYhcWOw$XXXaQYMUZ@(;mqdp^iv6DPkS|P=5fRsQ;A6NJ0&J+1HOJCNxM`uQ zfd#!Q|DpUvvCxUUu?D-H*9#p71h0h&tyAoGeqKw#;nffe>A!#Y%n^DxaKS5{_xaqX zf)TDHS-zt_fXOz3g>6lhZrknpvHY>!spmb^jp>3zMvD!nsEMo8#G`;`dTNwo*xTF4 zb2L=T6e%Ra2bt*xA>p4MO4PZ`xboN)*XP^CkF^Prv^+i^d)GuTA0mv#OanWfR!>+2 z4f`31Q6so;51JDN5-(XTxQyERAtx1L$oAT9FZ#F7T3HZf(?x3^@CglA@;rDtuYqPZ zpXUtc5E6sDS6RcRp>u<=xttFwL@vTbu~hi=r`Aj)63?)4I(@dGOe2kT*Cy6Q$@*o{ zmZZqdqILf28S6@&m%QgQMaixf7hXTf*1WmOCmXMs~v2(L^zF;akRL&j^f5`|PY>|%x&rRszP8DF(%XjX2Wjp(K? zmcmhl{^~L|LZ1n{=iU^pObMWwRGs`#AK4JNasqXtYD`Qy15fDzhg%G-h%nz4u*!C{ z_8lx5CZy(ZIpK2k0yE%?n+48@28;@$G??R*CbJ zUIjD!o$tHV9C}GfF$YvX!Jd`h@Zy-hzwg>Ru`A~ghM^4rnoCq|-c0H{l756O6bnVn z9&F8v?noTZg$N6Q(J)t5+AtDktU$pU5-1R)!1DWKpBp~+3W9XyvPB^XG=mzhX0v!2}X5v*>aXOt<%r4-^eQd71~FybN&ste;$5 zTK>24In|XKB$pTft0>=!y#^IrV#dG~j@mBuj~lV68Jn5ntIk6Bwe?gqu!>Ksp(siu zJ#aso)ucD>$KlD>XIQxQYU?>_1U4yk9;=f-I-aPUVu9^G;f6svnQi&>( zcx35w0zYmK3Gz`|Od(KKdT~mEJeWnoC|En;;(^C1zNn7Jq8W%Yy$NW9Ws@o(2{;VL z*j^&x^H!0ZLTWAwIKv?KA!mLEGkm^mH0%NEnlGcf)9Q9HGBTP>x#E}3CQ~`-KnHd{ zJI}MnbP@r?ho`??)24?7LZBRNt+Ur5jdB1QDK0dFg}`wP>i}UFMqT8)T_JOQQfi)mak=N68tyUQHK~eB~Uad^y?0#wkdD?tXwi_35;A!kW}s~lmqf^SWm3^=j#+Hl@d->Hv3{2T<3`d16afAn+y3;iYo zOG6h|R961#j{$k-;Ksj%coWDwPiex6^VWlVppkcLTl<;)Sg;g&=wUCY-;Djs^&3NT zh7%)_9j2{djpa#=V8_6jXmI11!ll9*cEyY!2Z5@&8n!VcU$JruhO+Ix=B=c#9X+Z< zoM~P+rwj4LtYFUIDK{bYmK<2gQYczzAWpwm!-J(xVvj$-XE;NJN^o?iWMFvLte}tt zk>%eGrBZlZs6O9u^jA-hMn@{#+g-vVAP!tcQH-VOqxWEH8Xn_Q+;Emc#cNCwB`_Qc z$42<@kr=f@nEme44s_}o;ll?=vm(V`-D_F@Nb`Ai5Bc&C-nKuv0J?r{}G}= zoeJ7V%F+?@qrj$aOY=#6y?Sx0ft3%lk_UT~Lt{q2$?uUwLT3GTW-pf9(SmuQQ=SOH z`KM(dv>%ECy}od@`wlP~CIy0IFFh0w#Tu?T8OlJW3ql(L?+aYIAH234&w6qigd6a@Uoln7aqlO`EuwpGat z)c19#Tso3!LqzD9D^6VJNWj@%lpi^cy5LYPoSHEFMW9sj=#!!IM-2+s=2-2bDx5O7 zpu_b~~+*-EKp zn|+GM*sNP#Nq)HV(x?7rEQNqbbZOXZ6&!q^+8W`DT5@)+Gga|J=*4WgBboQJ+@diU zWtw=T78CM&A(qiO>f5|NaD=tUSa~3Wo7T(v!GEOJkH)Hl>O37;yV@cr*vIgd_eNVi z2p^%y{f66TcxiO+uh-WfOK86a!IZxS!GB&tOW;lYGy5+NN}OOVYf*7BZ@O4Ih)S)= z7MB;Vz1`Rp4X(;Gw|A8A7OKj0_V(SV?7#OfWvQr|)A7z_T%s6s8+i$cjuQ}81gW)9 z1VjObZ^Jqfn8s|XApC+N_aG0W)}{B6>S7Aj^n~(*1sh|A2H{YC4L(^o=W!OroLGO) zqH-vHD+3^Sjv8YkjP(_taEBKhjO6hMSlS$JKDQ@W7sg=J4RWd1DcQys)gNWy34Iih z(R_sL;txZGQ+&1f@I;4B)+3_0 zaSDi2g^SE-ElN>d7()%OwJf6wiLGdB)Klg0QwI z#jJPmq~Hn{T3*$RikX-T3#P+sxSKahjf}o+SseaqS9!1!tqpYb= zL-RI^^m$ioNfuZ8@teK}*dB>_?#WiI09nCSlBp+RQ&wZqew0^!9f3OqMfzS>raZE2 zY*3!p8>cX&V*VHf$$&=Ii8R#MaTy3A!Nc8{-OSC#cVS3J0-=&9B2(DmbJ?SsgShQZ zwAYG_0fhC0(xAnsgHabRn9i8Rb-kW+mb??ms$jI$J5!a;ZZJHKey{kb0Q0n4MpC-i zRrsk_3`xP)A`0VKdEuVc09cYBV^`mF-1XbO_QR}Ls{3h03YGl~${bEpotddOcIH?X zYX4q*6?K!=wt|!Xe6rSuqeVcT25A-k{mH>2e_t_wIe|%kT`~WI69`%aX!I|O0PL#7 zf)>FIF)i^j&>~3G!fLgFymhcZLq?|V?)_HK3)B?{ErL?s@h4CJMHYdxblE%Zs${IL z9CQdzHDQrF%Ja370(K7IBuOdTMOhC7B#wY(On3^t5Q;^ck$L4|1rR=`U3%IRBs&Jp zjm0SdQRQd^rda803Op69z0EhE$qg?SHtGIoqjegP6xlP;-`1&Ak-Q0QE zb`nOrhSP zu!WsV-(n>g8=13fle8TxH8-B93lKfT9m+i;C3GxKSy1pB=yx2C(%>LF26ECvHsd)d zt|1G86k2VSkg5%qH>U9)Oj+=GBUWyI!Ei2n=`_Orc+pivgwWDyUh`=Ogkb$H#C7w| zeTO(H^A)~C*~^t;5QJz-iHox1l!GtJTGq;=tHS7Z;dp(i>=lrR{c6RH4Mmvp)%4G% zrg(;d^-cPxY-0T36k(^|?!D2Px!zx=NOM0U=Pn&2s+=-`#I&S16u2$K5N^gjo1AxY z|9S{0iXd3u$h&@Lhh(pgCY4LJ|F~ay)QQ#kSy{x&F$%`CRMRNYN97qlPROnDTqPeH zUGA9b(cl;_LW^x`PNIg{K&{9#rLz}!)fAQ{``L2vPs95klhna~mf_NV!F00!NX8U^ zFrA_da3cj-!V2OQh?Ss9S?Dr+eKk6NPzU2sFPJciKJelsFMc!yxgMY<5A>a#jzkZS=}t+WC`4HEdf^wn+!j-Z%B!A-+ zhARj@q3co+!8Z>i*6X~Dj%vMqQQ|cA*be$FYsBdH&|N2#p-}lD2h_ElJ>k&H)Jva) zKW7*!howLu+x(9lAg=t2^N?3dFJ}XG9B?q&F_tT+2o54s^paHmag?vnZUC47FAW?w zVJDNHVfP@@c!XgaG4=EvpVs`u5e{5GG~-49-vtgKp5ncr1=j|r)Ibg#BT@4GJ((DI zMog+n7039Zqy-f9G)qbm8xd^^9l|1w4TmVS27;i`RT>}Q9K@$2_Xv&rzOxi0rRE`( z!CLuJ;zEG0l{7+S-6lO`PFBag^d0|1W#Ms8cLpk5fX9RK`}$BXq`?(mfo*s;BpLx< zshTMH{z=f20(mK9oqdk>Wx;*0`zsZLHhmx_`TV3%wX=k1O1@N(SI}mbnksua_NOp* zfG%8iFHh<%2f6CltI=I2*pPnwMCHL6yZaFdC;b0$ zCBT8hf1Z^L;LlaA!~fG+q4O4lmQs`qwiL9KazSSaed|t3D(Ec9w08HzVimEp{=4^j z(7N)vGPU;~-T@!>|N2))oM>z+)g&$cM74eF`|$_a%697%lMgZvafM&l{vWBdMwK32KNz&fa zNzjx5lLt`yBQ76pGHV^WAPcr1hwzYyx=1LdV?P#%XyReb%doTJK3^{?Wor4wi81pa z2I+8*U9zcv^pOmT$E;{;_37bb=Y8A0gkvDW;DcmQXk)U|_V^1Q@54na!aQoI2P8Uy z3iSzlE~eV$$I^|Iy^f)t9rvB*U`X6M{6j66L1X9n$yfrSRy*$wUu1mx{;}?rJMTwD zjn? z`@f?i7ebf(=u=33nYCF<3ZsGcFak(5&8?scdO6N z!)$zog-Aa~TDZuf2+7X%skZk$3|v{phKT3bal=OF#z&R>u+);8mm;JZOQ^~E znF<4!G@p^OSY~PG*;p_XX}rJANA8$sOxp)n);C8Vp}1#D;x?=DfTIC zQl=ZmPe7UmT{WdAzg{IUSu;I+}tP1*L{3+ z;?SFqkIjy&e0ox+j0K6{SO&U4b4i55lIaEITY2Uzt6&Xc$tAIz%L9X>C-1IDh*XOz7Eyz14j z@^Cp8wxzA$e~I%m?~Nwupc(otF)gLKZ(?mr+qJ6SRxNv7{W5g$Tt?;_} z;py^k`oFIX$nPDNkKy9d=4Vwt(7o9MlVE+z-08WjUlu(U+Og@zZa0LSf9QDVLrD0| z@81e)3hqeP^gr+XyrnSavhw(b$Ry^vK(=+=N;=?YCcSCMn+x_ zdHB|ak$qx%%>vrr2o1q3-xohZt@J70V-zuCr#<|15B15dV4MaCEs=x2)@2r@&9?+& zsYtoy)DVjKIKS*1ghv;ShN55Raq2UTo1Zpd=j@iz>Cwh<3cb;<+2=4v)&}Gc8+#x5 zSg^sVpp}X-OSqdS@pO{=A0r+(1A<9mVt_8H0a1h z)_{ton6&tvruL3>bgO(P1FRCI4fNgb12MhK(LSxQf2TwKUZ~PO_R+83+3$V%!k1)5 z^U%cQQqN2B4^s@TUqgrR%A76|O_mz0;-9Ayj zr}XLUXqteY-I<9;*S+^C846u*0;}l zf?pLD(c9j=V5aXsmt;@#h8F5y=fp3nN6b%ZYfKwRh0_u9$2GRa4fJ;3ykISrcuw#5 zwzIx8eEs>go={X}&GE?t`0EtNB#ttVf+t`Z(!%un3$$5TYf3mvf}j&^O$SvJfo|L( z!B|cx0M~w)+LT~JLg6b;=d@ z1C~Q8gLTv3cQ|7`0U_&SX>RXMT_zyd>7@Wt2xL?-VDwpYKNZ=(3lw1)X9oDd5+BJw zOMIk04ZpiD^P26SN_^A~|NSofV_-&t7FzTlI{$w=FyG)U1TC~I&`T=?l@n0X2YW~9 zwas@5Wfc{gTDrQ^c7S!x zac6Q*Ac*NwfmO|(k1|h{h-fOF^*RL73G!>a0{4ZZ!R9z7#)t~7{{`h3Zduo2aoJ+S^M;%fmU@ZoHs8f<{HZ z@2f{rFLQ>BP{4DRhsh=`H$LO|FN~S1Cm%6ZTEm~mY#6<{GLcR2e zgMQ@ZmfqJ7=;61vs)e?8kA*}zNtLs7$|dOPMBZC_I_2w!3H2vpV?VarSVSX8@^=gI zS3kY1Leeimc*qp^_2A+u9XAs)1Ax)x9RerMBE>x4@Z+Em=v*0I-se~Olp&fzu;w#A zHH*b#(?0)Y&R2(=npsm}_4(DHn=M%!&AhY-dwS z^KJhJ82_)rjLq~7R<`|jp7*g4ig=gg`v8Qu;$rbbHVnRb>(sZc<_0##+))i@E6K?5 zzKyrdqK*xx>mCdt9XhifeLK)CXkByK-%x1rO_wNwzU@#$acmeqeuopN99;Z);i3r= zb@gByWW+QL$|WPJ){T+TegvuON$`B2pbtP8*yHhv2+sJ@ydgH2Qj@MHBHzZ?weHhoUc*qJ_FpIN53TY~XD$1W6Zg+rWh#wVoR*3H%UM$e^_5Ir za5cNKDgj+9gAE7wH$c-mtrpz;y4|UGtA)|qS6h}ASs#jSXQ}kNlwpk=k0SXZIOqLUk-c$hs71Pq=0+BqG1k`%@GU|#x=)Muq+LKX zyR)NJ@z$u>rIs_Qiz&STx!EIGqL8Een+XdNE^#+WtS%n?u+!*(&Wqi5&0bXQU6TFV!MJ~sf06lMwA>_{`(*Is^@FNxbA>mIb-1le7i{n}p_m5OQc+O* z$IzSvUtGB_{GckX(0}!L!q3>qg{m*E8cwh?_BxgRR(-;;*&>PzYMQh{bWsBb3h>Mq zbJl?I)5xEsF2C)T-z-m*+29WBmveW$D7D!kVzS7e3aJOutc&VHzk2eN1v#2{!L&XP z5V+qY9pAEUAcJ{km?##~ae!*&SYp}t4U!B(-x+;Se8bd+>?9^+)R|wvo}@CyKoDkC9y7 zBUb>fZ>9JrwC8$^+XjAQ!eHe&%I@!MqTeB}Z3nmhj%dmP%93D%cPdc($HA8UpWf3q z{&MlO#Qt*e%0UyawGA}!?$m=@S&>cRbv?cJ@BT9Jm}7T&wPZ^l{;MR`Uj;<}T#fSI zT&1QK%hB0r0~ZFlc{Lg$t0wB9IKZHzg)P|*KA{+yN}3@xF~*eex-@h{mXMvZ7c01x zHJ0Q;Co!xcN8y^-6asZFr70;%7GK#*wYg4E+pca+K@G$nVH;A)+C(!`bxm;%tr+`} zdwNRvaqx*uU=bm0vmahTL*e%t`2&OkJd#9lE(-dc5%Ad?>TFA5SA8s+7#H0$8m0m~ z8~xI++Bb9t1a3@}T?&oM3<{rzHC~w7&1ic)ot!Rx?~VQ^N9f(Bx2CQDu(#{N2E#Y6 z->#qEcA5{>gZkN+92U3rAeou{1&0Xu94h|l(T^js>`KDbFOBT?5GGuH%05iF5wUs zJ*QRaKrNX8-t^jMgj}lmMHFI_?Eg+W{jRKOJ*YOusGo?DHWVut=a4ezkAG3 zfP}N_is3&joK|@)^dxDQ$_72ws}vuVD3#voU@iqkKAMp>un4dMC>gK)z3}RQM}Y;^ zR%tx0?9Btas?ZQ6Oo~b&(&|Vco@|;WAl~^+(dFe;i~!E??oHK?w(C9G9fP=P4nMO9 zPvHHqPu-pyju!Ogq{1?QB;)FdBd*{U#;+g3=piF4iHLg3LSTV1E;o%saQtcJ!YF_+ z-k_Ccq z3)Fi>{4iRRf$U+IfHN0ldKawN8J|ba8r$`v4?V_^Fu_Do3y$7* zFe2uVDVxUK(9;orCqTi(j2w9ULjcAf$NxWt(f)(ILMbr$+TZASNNp_tK8x)p0-`7jwxLfHR(}c0 zJtVj}x9bNRFS;pUpHj4K_N0pC+Y1u#VHI)V{P4^BOP}8$f&*(fr)M>1xNs3~C#UwQ zxOLGokfMuMJsz(0LCkmN=!%~=f3{?A`JzJa-n`e%l{WSkhS=he5p}-xu=`?}A!g#f z``rd}&e%=&UQ%i#uUmO%{Z-1(RnR}~8pv5x9ysmV~N(5}-SB2^jh zYyh`JF3KERew-I6tk=#=JiGNc&wPv@vn1u9=IjF93cXRBlVSz|5f{7DV`!-a95fE& z&-04BDfC53fZ|+K!IRc~=4D=nkjWslX!M0#vBenPqXd0Y#LkFKJfn(`$5T4z4-0%S z8sCwF9D~yMSYOK*dtIWSq~LLb)p^Y!iBKVhrzDtk4DLb2(&Ay3Al;u{UWeMsuUOu` zw~pYX&PfvE>K>1~*%j7?RtsxQ3LL{D&es>eX?e;QEe}CN=)P%-G<}?H)>_r6+8KJR zslff>kl`(l&rymQA!UzrPr5Gr>hq_+l#&iQF-9YIkA|8FceO3OC-3#O5o@Ii&xj|G zH6(;EE`yv$(C@EKT^8N$nZRk6bS>wiPoAqMxE~x=ITBqwD$73iK0$A%woZdxHyhHV z!J#sW7Q}-LW-bf7gBrtBI)Vj*qTc}^crx{Y$vLoG?G!scgUpA0ILQaUumkqE1ibapp7Arno?Em* zn(e*{Lt<6%7te7Xeh$I@c(_vj;Z4V+AR7ElWZ7LiJe9{D(7Vxkgi{-D=;EWbWE`y8 z3c!S(e4GsX<`A^9M;>SSkW^9EvDtUtH*|iAcYyGCR&Xy+$Vh@n>V*l|gMBr350o;# zy?rRN_Z{*#+5k-a{ECZP1Kof8EdKArPXZb(k4^mLQ^o!w1*T+!K2@ZyZhldDMY=9l z4AkDE{=fy^YNV#Ui^d+5nvk=nnp=HZW70eysQMtXZ10fV2?%e_y56`|Fw-I!Q~ z)flwIvL8{W5+9CGU2@W%STtrKsJ~z>3Z}WG-XzS2G0iN@U=Vpuh0&Bo@E@V`JWPnu zT!rN>m@81;Po&VAH}?!kOfz~)MCKM#pz^n7LR2gH>FDn3Yz(sNP370R5JN@@_weKp7L_fn|c5v=wC5=n7syr#-zn*YETO^WG<8`1+|HHpX4LN=V#jZV-;aJ-j~ zuu7sLmdz?7yz|~2W1QP3r=7$Rr&7UB`<^M?=N}(A=%n*IDOJKEe1yo!f0p!a!AdW4 z+F8dUpE8JgdvtJl@ACS`oZjm?xiOrP5o;(;{-Xjm#4JNK;bb0D^p{io@}w`29J7!T z*(`fiL&;3<5ZEjEvjfi(QPwG*Tu7J1?FfC?cNaV&cuYOqO)`lx$a;2dh*(0?&K(8L zDIyA?o{iGaoFfwHE0VTx(t=T4VyK7a>7U$0rHdMoVin+1f(gx0a(bo3Q`#m3kx_J( z)q3#7SQxVZtCFmid@OVJYPZP#mzrn%I;;>krQX+QVpS~}d<0d070p$SjdWCcsP1SD zN7{5u`$Wc$SkkJv?kN0Lu2pQ;T)zz{z>-Kke>AK1Pi zGd%ZU1d3m5crd0Z-8+0FdGpecH+Q1_0GEuI`uK0`W_7JPdwspbQr|==BMvYzO0DRT zyb%Dm|Kz6`s6D0W8I!JmXC~mGL+|)leQg3%j~CMdocpG~!^EIpXatUeoh~DR2OI*I zqL0*#KoWj?vpaHJ2U@hk^ezAe_~g1TFZ1`6w5@t4C$vhIZiFSk^?rY|vkJ$XDa+Lf z7K}h)Se4EZ1`_vVtzEjOb=d2G&wHRo(7bD-pi|j@2xEcQdiU_Sbpn*feo-I6lVEHj z{kbgMsOQ~E{*glM^^!|HhgbUd^mGS1ABX5|)|coKzwb!=L*xeKI#F=QaQthb`@fOv zV#USt=|z#cU{zFcWuERqG2W_M+1Q(64R_MeZM=#tUB6m^57c!J#9_6t6@$b7)*(ZU zPZeRvw|1VsNP%#FvF2og5*Q{_)Y*kz^&wm>nB7?j^Mvm9Fqln^Pv^-ZrAt^ho=r*W z4uL!KtsBV$dp6~9uCM_k9mn{E4i(vq01>8^^$vSa?=in@8CkT2mk(eVOY*v$2sOS% zQ~JiKn_B{8ArL)E?K`F}y8Zf)!=p~&j(b?_l8bKVjfehXPw>F%gEa%3f$p^5M1%b4 zJYLAu?ej%2=V7^>CC1n|IbLh6#;#zV!FcMwT648koAd6`Lk7QLqi8S3dRcq1SH6GK8-tJBqp9_1|47c}BoEVh2 z7*uq~8WGB>hSjkkN%oQUBNJt$NBQ(^9bqh#~C*gEN;8`&B>e<3bjv6aVt1z#%-r`&T+Z$ zniu!>E9oGfHKG~aU7zj5j@Pelx8wn@=r z(XZlHSo=P>dARz0nWvnN^lr^U8vVVAZpoyJ&C1a%v6+_$JWFj}BHk%m-j3@_Wj!pFu;OfX9 z8lwSab1&6IEr3sxw#aeKr{eW!!ia6M3K=+fQ{QK1kUZWz=n}7dXKF=<_crqi%;6nO zyXHF@jOv}d4Df6xzEYRiJ#m@Ie`22abbyR~$MiMgpw4AK{(&Cm|NVsj3sgMk$-5g_ zr*LaU`%Wc7f?XT3T`+O-HZIVNpvACba37I*l`_D6(%*sBg<+gCH&#=1_s7z9KcXg$ne_ zy6FXBydwmjqLfkRii63SD%@sd7Kf7SN;akTGg|A}oUG;4&73Z_>qYfJ3R*wMtK{%6 zw3t|*#TG{>v2Ewobvl@0RpjKvz7upbBvf*}v>@&|6 zG?L$bM4{@6FZy8I$cRZ}C27oVDDs8YB?55e=Wi4NlE{srSW~l!1gO^R41Xa;NdH5m z$&nIS_;+WOmlIain+YdlIm}AOy395}?mb;4=F#iQ`J~whqCMwaj0NG{p@8gW`-P=| zkR_dKdp@TYH6EVS&We&K+;=$cz*yVzx<*gZN~)3Lm!)*O1+ABxZ3JdU02l}0&&=55odQCzG->^+z4Ts3T^Q$BiD5H5$ ztV@guNTta?#EQXS7W2P#g{;d@w;5IzWmT=2*&{$T9%6Ul7K32$av8lHe`Osr*o5vVM{(LxI5*}g-= za>sv$l>-}Rn8uNYECuSfmj~n76|{UpK6w>!$hb38TD6cpY`c%%w`XqHwd(xNF1RrL zZu`YR{7tz;NdM-moQov|JtzTnLYE1zn+U%l%e{f#o2vD5ZNcwWhoU9kf*~~6=!fM@ z`o5h&0k(l_TOxRkrTkNxbP;D3zLaSSQhY6!3RSHnd2y-Ai$YioJZ8?*Z{ucxNMcIn zMaF6b#4GMBQzWvw$h!D~jN$a6Cydj&*i6n+fdo;;FrZ1w8VuUi$bgqwm*>t>dLcw9 zR^dJG*RjzHAtwvn9nZ5IF1Pigxip}VQE0Q?>*RTO@978+tw+cS*YSOjhm!L75MQZm z0(G!TD<&(_g26-zCLo+Gj=9oaBGof8O4EMJlFv_oo;t{qWMDWWEeRtY1OcaH&lsrS zcfRtI=N~zjL$ye9a2tI#j~Hs?E|Ug?gU+Lr=#^MrI0lV>sXp18wy!8kT#1<$v8$a| zZYPdoK(YysH=4!`biJBHV@TC(3DyL*oh>ah(ssp@a0iEitES~emR|K`-_caDLq4felpL{Ovqb%4$Te{wbcJB=<4 zOXDplE{RkW$H|vg7yQ~Al`X1i%F$B9-EQv4x>etKH&tA`oH3Zht9A3<|MU1f#`ZB@ zRFn(z9mex{2M+E46wxT*$S)?S-6bd-0_Wt(5yArz5Q&$X8Ypfj;|P9%dwDqe^8Noq z+6sXCSsXoqsZvYa|O1)#Uxq9Ky0iF33M;2k*Hoz!|@@#PmGc@Sbg z9MsL`I_5(n9DMjBmNUaB$BvRnQ5C{441Y8tmQ+hmeZCv=mdZAwcAC3AGywh)lX1}~ zH$&Ty8#)J%r)t{6UaC7c!jM>*(D3SYsrB<+N!} zfQrjvoEIzDa?vZPHWX)AphzO@!>9MNVAy1Ly2tLFG1dh+F~W3M-OfT@goF`s-Vk?s zlN8P?)Gr)8m22a&XV5;8hPw+>IkVIzeDR_PCAyU9cb)Tu}ir#ly5fbl8VjA50nZsK86*7ElG9Lnh6yJVq7;mlY&#sp+b8Miy07k)1F}npS zOnyJ22J@J#b&X@m zd3bkh8`Fv}TIW2X`x8xD4JGJOY8N1?5zNt7T=@!w5*7H8-P53_^ic^d*CYrFcTelD zeyKBbSz=`{q+BPdbM3VU?&Ym1{N6!yeKwTddQHL=`L|6C*ek^Yhs+Y>^Jm$qN2B5Y z{UTNzDiRyXpIw;7uYlDON9l{}RTbU44K%@Ns1jy#++ArbFwt&m>5RfFunzPzb`8-= z^bb_&%Zb+vcWGf8M*j_sXda2gt*s{VW1u|fU12`tMjU3HLxgCRA7Qn}?b~c+3}kMg z65J80tP3W_oZ{voBD|6jP+|WNcOtXM3@j*Z{|;0jeKcMiYT7*hd~P5eBSGFSW4Lx_ z^T<>dyLFWv&k(!7y}ebi*jpx-{@iPqU%`?NCOrROw&vNFb7+~X94(+|4MrPDy9B+w z+Y7SZ8&V_Hfr*!-*>nTtgXVQKWeuSk7hI+PC*i0>TQ6@{gv=1WjNp7q zBKi8xXYW&BSv>%Kf^eyOhlk~yygE0=p@Zu+Y%M}9QQ4b_?IH6=G42QMDMw^}-?}ZG zB5TFEvH7O+jhu)yQiLoXP|urwi$XbEh$EwSUtz;@bxj<|E6Pk%B$r+%IBGqnNg`TM zeLdTQixiEea3(GFvky|s@G8=2<-{8k)IMhlW;3nBf6$}se6${UtUsDiI?mb)oDpfE zLrR=79N-_R^Tm=HrW^(Io5oE6!00(#@CX#6s^O7qA%sr(_@y(3dtfL-4`<> zoKztZr}F$tBygo7vgudE(h>eY&)Bj+=Gz={jF<5v7swj1U(4`1igJ|PG$X}+c3>u) z?+-scSy2#$_)?TqdI>L~m$$2hBY&`00OvOxwEa-@C`RD|JSQM#CHg1WgOa_Xlj)Jb zs=ervW$j!>$}G#Pn4wm~&oB8{6)s(X`s#XN*wsoiz{vw*a-jTV>+A$yTtt~P*s0;7 zJGqFDLVfVLvXphH*_9z-_~4bc7xZ51`~m;R?t#5szE>;w>z1&%I-CDxC zCzP(Pj8|jddl5Qe`dYaGIBnHV);`VvN`PP1k^7yr4kh~4ACvpXqoYQSxD(@n=vzQ@ zq$Zv8MTUZ# zJLmf((GRn0pLfCQ-x4uv4`07m!NL6YL>&5Utu7dmMFgbnyTK5Bn#cqjLC4pM4FQAH z^N+1c>Vu(q_s=aafuoYRFSbf0UY!`sRubmWRH%E$7SlsUHl!l*`x6aMjBXsP_b7}s za5Cp&3fP_k7TPIF3jT}-AifO89z|k@-aU<$Mt%8!su5Gfo>IU9hgSLPf~et56i4#q zdkrS& zRFC9v9SS8}w!A4lx8n!teLWr8-2wXeqNgD~bfe?J&&lVD`g|lqt$-a{Lv>d0V?hGt z$`0E&9ldHOeE!ChrD##`eL<2FT=J!q)5X=tu1-+)A9YTW(`v%|0>u=Y5!WAQ5?Lt8 z$_!#?T|t0YgyMisKdN=7Y+u;>I2}5uvxVMaYLb?iwHH(NEzK$k^DLp4{H#pNd-CW2W4;CHix|FW8Nf)E31&Ee-|C$qd9A(hj|0a#NLZ_xY@rT96 zK_|DTs5GB`YQc2k4nIvBEc}LfOminLIX|%j^o!9L>ql+7hk0&s{>`&C2U7 ztF%=nUAXQ!J^2#c#XCj_ocpGGI!Hy!%`Hdg@k(yP2={XV=2nk|qGjnN^Ybm!Z>1rT z^$A{A>a~4m-}t2T?oYWgb&0H8Z=zu3ezTBUDW%wRw^UEH1NE+P|BZcq_WAfIqX%D( z3FtxAxOpsL ztG7jQqBhB6)sXBNgHo*<;%nw8gjru1rh?e%s?aAY7N!D|$$!tE|B7?C|8K-O68Li& z1+hrrU6@~3QORFgUU@GU@R>3jvhsoFVNK)1WZ*uQYwu14wmAPO6Ml$#@v{Hfz^jQD zW6vk2N8eP=O#g;9+ygFL9CG;mOa+o%7|nwggkr|mmKf}4Kyxk6AW=BA=-<9JEd%L2 zHcp_n1+=7y@2$#Jqh=jlbbgt0O7xTSM?7<+4bZCU(nDzwc!t4%nK4_UvR~3L;)8VG zaSVPbL_xi9_?*#6$iwB@3QI&|lFw^RyyTNYQ;Ft7D|M${6;7`%HDP5-OCXkitZJ0;z{E6}BA^)nA>n?v@u3+JKGnzR z(r;zi=Xo5dx^%>mLRcX`)es%aeLx6Dab~&oT?@Gm{md2UEEg8jwZ1&F5AnWt`Z;BO z;kJdlk-I?&&x|0&(SIz)c1GGngp9p0^JQ#?ddF0b6f&c>$nZm(yv?I591JYL|2izm zLQDl6rJ!-N3@548&M!JJaL5m!z-G%2c>$r3g&05dCJl3yIP7;|@NeuuQ4c7-FJvjJBs4B0D;S zfe)FfXpzl~Xx0_azz()7oJdegw2y(=$uBWZ={}dd4sm957xJuT5ZMA(q9jY=v|16A z%+djmvRS38gsW?FI*L(gVtl!`UMwrf=jwSMb%Ivb46Y;NJU-4U{eHxP*!(8m%c0|kiavt%wK}0xS7_iMINHxi2FdY~>pFaWFwwmvNO?Q{}CN$hUWZ!u!vy>G%Zn zWv{7StRC|jw~GtumJk#XX)!Q+A+KKpM^mMpKY`-~@4J$^au@$leNOPhTgqgEQT zrQ9g%#{mbCc->V2*vNOygR2~G{nNZp*&~=#VfEuPdLowz@_}B?_2z=e7@VhE2wi0xq#`2eolnsL;wHA64#KM$YDa4@hz& zQ>-h)>1!Yk!7I&pgggc1Mw=e};Go_7ez&vOx})x=nk!t8 zpAGb??~w_f>{`I+g-n%&|KeQ{(HQt{VQqp|PZY{+^nmrgVlQL_1gmUF((h}~w zP{vWLwMppQ3o!htU8k8Ui5BsZLw&TLL&e&8-;I=B{D%90#kF-3uf{f^NXQIj?)f%3 zE^%I?JKFsGh8hNhDN-&a9(Gsa6*^uequuS+2VS(c(t0P!aee~PTW)R1xlNJKAOE8_ z#5z$s2dq4idQ5^Fa9eNBY1+cuH@;b;W0WMf6#ovL0P{E*pjrw6(f@qw{7>d_0G2Ty z&?>3@1}vwdu=3a~ z^Dh^c3*Qf~tk!&N`uz1v0_$qK&6GFWMf=#(a+n^@()8fWo;qO$Ts@^^?M3eCr*cmE-*maEKO>7!{65%%?rQ zBUc!{$g6G~u#=kszPdj_B+G`~TF1%%Aotaa$B|ki1!oL*w~O!?5k~$V%}~(8+S)E=k|Af(Yj%n7ERi;$h}Ng$b~7yLWdatI~66B5Q#%R1=IyG1xV4IRj>XwZ-A4 zt&xXg1foW`JTi2b;~5@@V7SuMggloDXjMUle%JJ3OY~)G(-|}gJ+a9w6L@PLBF*uJ zJUf&!hy@p??Ft>jcx!u*tJ5ll*<%&U^U`bDV?8306}K0%w?OZ6vUdGFmyOtAK~*4s zp&LA5Z-O%LybrU^CBWd;=Si(1vjWq7i$V3-%;v5XRkE-4W50m3e~w~1f7Vye;u7V{{ZFDJ zHPs86Zq-$aDrg^FNsI^-oSk;|OR^+>NsR^5R3hu%7eZHLMLhX2%6^Kww!+UGVR)@l z8~6C`^Fq6YFMa2q2LoMyp`;7-KYLXh@UIt&{d(R>Z2KNFmlCz-g`jG&&E|6E2(aUU zi~v+`rEoY1!L54r-mr%pk?pYNn))M;zU584{RQ#6V{u)6TXq^Es|WLwg_FwtIEi^X zp_ovW-KFAmpWWs1vKoNP)wH_%f!U|>{bT)@&-YKw?`yuVwrL3dW9$wCssCfQFYd2L zk^28KTb7T-76Ci^YU=zb0ML`I1`w8k)!rna;t~f|d+F6Eyh2S!|0Aq^{lJrEU;y9u zUs&xeL_v_nn+IO8!oi${CjC|tgebK54I1&Jvs|p8vTJ9?$$6OsUc)fhgq4d-lFV^S zlNc)*nKX8XnutuRQt7ONmrXj&tmLHfjBsGC6@=WgLQTQYS=PoOs|<5p0}4n2at2`{ z&<|Utcd;SB2!x2fP$yfNY>O7(I;qMI4BMMdsAd@#pF4t)Y!=^_MgTQmYVdrwz0}Fp z;yX1csLFcl(1r%>&pXx#ITsm$3%ZjdQZwGnU?Y+On8f(vyY3f7+B{6*G&OOa5Y=nmZr;8tzDuyzEe?&6NeudlpyVSBl7 zJ@gJl0@A3BCtwV`dTHMjPIMR0ci|r%Jk{cs2y5So4k3fU+q_l;FwB+kDy+fSDmUbw zt|Sf2k=T6??}XKvpXG)LEHiFMatG($5UkiTg178lE5!RG>%eu-z189Sf**t;BgF??rXs&n_7Q2R~!g_AUrG(Mr@dBt?y_#okq z&70m9DXP24gZ+nItOwRqz|p)ujVOoMOVv%Tprtmn?^aLA(*OZ|hvg$v*+o3mp(Z2+A~-yUF59CwL|#aWQu z{ho*e+0ZP!0+zq5uJu78zk(b2mb9bISCHFK>>n6lsVWZg6`0!Ee@ygS( zr-~Hw3*!_UmU}C$?m5d;_}}fTF}d#gIAf!HoauT;=(v}svMd|-UZ!J`Dv1>d<(rjE zId9fMVMoJGqtOfq4246jmvk2lkpR^;L5Lt~;!M3I`bX(-W~~bttpiiKwcO#_pD)Fa zAnd3=8cx+QoyAP}c@ChZ+oBvi2=6D$FP~~>2m|9V9temh;fDXakzTWlyR11D2mwx+ z5i$~OHC#@Xm1h`%4uyY(NP;fh6AJ`QZ6s)0TNwiS;rAM|S14eU;LS!eA&UEYe|kUr z%S(6)SQI@%0JG(=7lgxLy%boeP(-8PD;%tHyqot)}53 z1G(W#$PC-bEt^l^(PGXZ7;OFGWGD+djXy{ug7y-O3df~y9~WZI1Svk(lJ!WERJhT9OT}Ab)z+w7`02sRV45bw zwpfhg7J}9f&^%uKnGHnnmPH-n$-SC~JgmjUOVlrp%_c3Yu>4F>F1qw^MN_y>R?g~=`$uYc z8790D#X)|*)Sy9Dz96tjqo>yE_T9$yS)K3S{M9i#8egzb8 zxwb@CYGEq@wD~<00pHl!Kah*;8~i^s)jkx9F{>^959nkdf+{fTy~uG!=Vr(70Dsv~ z9>J>+C3a2bS>d7EkmD5s9s{M8hfEAtd@EnY+teZB%Ny=m(jB|P9ON56+R$8IBnXx_ zemWcGvzI;HHhG}N+VtwyM9C!Gz5QXB+Cm$<4!Nt-0w-yiV@0L(@mZ2*84Pt26Dfvv zC)51k5QYXuhc(y5?&`Szs)+Qgsh2Sq67Y5s(A2&pIol(KI#SUnHbhQ8nFjh|oDf**eptw$oin;W!0rR@AWrDNnhO-?Y6kqvm{k$LF)}Lgz z1dn0#A6u%S6|-yHP;$ z(>DsM8#~1$bGiDLK9t{nW;f3SDUh;Yvk6VI#aAjt-LB7Ex*@}y_;qd`gp^T~$*bnJ znr+5fDpt6D_%-RnIOt4PG@Y(&^-P{WSWyffja^Z#fUvT83wzbGsC(d4*AdkR<7wCJ zi7$Nd9c&tDTfitC#!@!p%6oG^U%3DJbFg&!kE`+Ms<7}f%PgHs@30~pB_&9_VnI0E-g)*d)1{N9mn{CFYHehXudFb zR2cF4OdJ;%d$r!uEXWh8q5az1?{brZxyw&2!SFwd-m?ak7zby4PDwP)otLsiocJ|7 zqBVBq(DCNE?CU>`Pv6W1?aZ0W)o?6PI3-*7ieHDncvJ4zUcYij0NecT3>p&rapT>F z_SA!;K0&fK$9(i&_9az0H=LYMlAItS>Qk_b`s3SZnPK3xFT`{Ylq~_YW(~-|Y z6G!?fhFzJl)s{&2=;u-hXJiTzFX>JlQ|SBME8je?!+%r)<^3ixy|y@Q>;Q8w%FnIT6AZu!(;?^B^L(ofsy2+#Fetr)`uv)k!# zL=`R}>jw-JJe!D~Dka^jQD2*!qN$>U8UaO!d-XoZ9h(tn3>{lZ?@ zPC)?Wjy_-0?a-lk=5(swk>v{-sMuNxx?GS%2-ZR>WP&u@MJN9_J&Xr~ji-sl@$59o zNy1V=`Gtg2XiA4$fNO6l{xo8}1GRm>N$!j&Lc;tUzwo6^UY;?Gc0_XiLKYm^_W5`1cf`mtv)q@kqH@*qyR`=?8Gl5S@pgH-OoZe(@2 zLSLRwZN_El5lWNPv^%3sjVeG8UKpAJf*)FAfn^pd+=KU8kDg)s?R)9&5#}eW!JxC> z?=UC9ZwNgioCHd*EI(;Y2z#^bQ;U2mGmB3LUn(bSg5Zut_M5$?Mc0gb9kRJLMwHB0 z-(LFEi5rhg`GPt+PR|%LfOH?VZa(!N!w@DF%qSZZvQnrH$N?@@jm|Kys#;J@O)-n@ z))-gQF+Kx|W-pqQxMPuh7=NSZ*&J6gq(=YM-&MWHyaZRrQcW|xPm1I1;`Z$^qNx{gj-Y9CE(bN7N?XqFN_jY?|v%4#)^i$wK%enMvC1p2-+ z5k>piV3ND+9)xqptgB!UmOGhd>za` zktzKZ!lb$(ZvKpv?hJkv8HJ!0`vXDsG8vHzk}z5^#SXMC%aTNeX|lXt-cQ9!Y5?S^ zNDPM)CFmkoFELsyRFx3nBEHri^TVT_;4>ZniYRyn0hvF{o@1NqbB4DtVo!pAG>N<+ zZ&PpYdx_&dF)4>cw}$ZmJjgY%12Q%|IcwM&z>Wt?>1lj0TF|{-eD)2a z^(hLjWHEYv%DwgJHIRCfQ$y7KJo`1-sB{Msn70!<~&fvAtd%jx-@jg9|;N2aW zhOKmdA1RiWO`DD~E4Oxd;nt};5@|B)$8k4pb5iv}DIE{^zZUQJo@xn6uJPo$t9DLw z!wwKL?Kbm2z07er8D{>uwB|U@Md)pWuERK`ThuD&MV#!>2foK81B0;VHC}gv;UMcV z(4e*gYsw$}j*AN8BO0E92VIeA20ZXA>P(Y^Rfi2&C%^%O#!~_%%)9T{rj@k203A)Rd?`^Q&7ADu&fLb`81X=LggC2aW;Q1A7 z!Gp@*{YX2nx??u*b=7VjM%)Wr6gIe$w08f%=g`&CrfU@Q1sea1;atPr4dZoYpQF*V z+dXOOxA$F+yT_0Qgs`1WTSln4@Z`)ALYuNz0n^?McbJw&KN@{Q0twSuY;YDKUw)Q$ zYVHUg^p^-8Si|_8CQbph{rP+OU%~_!cySpZ=<~Z{VIf`ybSwZUc=2zVRbul!CP1@_ zLSfrG`}+O?6JYVnXyN}09mhQo6p0}+86DvWe#QS%n)u&vdCcqO+b<~Tl34hNE)*Nm zW|Yque<&O!BSzY0)CxtJaKVU|R2imJczAcsX{$6sq$Ffdo#gO6l@Jb9=RoicNhnYu zk*>@Xl2A1sf=tX4a0;}#)2%4z!nBZw)}(mv`yqafk>;F)LusnUHGW-4##AL}4R`nr zzRcQplN@hdGgZf?K3sbFD$BDAVvw(*OK5n**AbcjgCY??ea{zhlY77(;D?`zAm;zN zzw3UNt=>Xg!Fcrw!Psbe91Ul3= zS)S*;TkpKjGnYST`+V_pPyLf&qe;?{ooS>Q87=^jhc zZ7s)tIuGSD_}TGQ?a)WP)AqD<^&iB3PVjC`E8eSWY zm=6W&cx7vgrwrU8#>*OGP(ZHOC0U#R5@7`~$L_CpQQ5#L$^^zWpuQLb?vxRBVIBO| zn`;{4AQ~+cTk?*L%L(ZY)b}5-DkGr#?C7PX+uFZa@9we}Q$8@go@_wt-(UXzDM5Hf=Y=rn zQ3!!=ZS}`IIHby8>E$6($j6*{Wd+Lx7}q`j&r6();CBOKVH?xaP|MvPv|IU=FWJq| z)E_tR@^r98z83w3mZaYQgNSt%{U%3dBV$GD!#S?6;Im`l<@;A)&MsoY|T z@G=2MZxm0VvQFM+2X;Ud%N1VU#;G3j8Qk{mdw9!%v^^UnWjj#dAflXmvI8`byyI$z z-eC3?Byk)|;B3%3${p+U08bj%KKeNL)355w`=r*!xvo7}x@<5XJ;vlB3bAq;4mXxN z9r#>xQq_Gxr8PLZnMCDeJI!e-e2)H@5Q? z>CgCo94`g5A4r{N{F42`4)AXh&CkM;d=vAcaYFLMNP&|D{V2J~bV-TRUH zOP>MW0Hz>iA=%5L?_~%VohWr{L3BjqRI4DFrA+Hy>P+F|BF)-Tc#~4{1Uc^HIQs}$ zpAY7gpOeq$xMcGxx=i46w@uBIs$WJtgc{yb zImKr6t-l>KCwt-4@rKFEE$q+ExbEf7uMd*{sFB&1T>`x_{PbQjo6=aP2`_O-6W#vJ=5%kTQhSBpy%9=1I4QGEtT*jwwZ%!Oy){TE$m7=~lR2CXA=KUZ? z-9UKb)7G3l`$%K&#TnqoazYAAxp4MM?w9VMyQr2qdeOsgAevj=ZHSQRudTWKL+e_G zNQ1<0?_jLt)>b5))`iF)+`r3&Fhwp6Q{^!9L#9#27Ci_i2o3AlS+{SoyKnWLE;H_6r z_Cg8B+58`i*LnA1R3zc{xWjzJN71U}AZ{1Z5x!<#=vC8DTxK5eY9GJP-%DxoASF?t zj5!0k|7RH^|1YnkJAb!7!twIrx!DC7C@uMt!g9b`Us0WcRj8_|O8_>~>RV#?<@KfI zT05fJux*|Htzw4%5J4m+f}z};(?J0DJzO6S=px;LABjGt* z+hok|3Aj*N`MjtPT;^i4@B1rRl!c3#Rx4O`g6=!tgCCLTE^1Cu`cTv6brp2HZ&v4} z!vmYdCu~@b;8S?mq44gU0lo}gF~6o1(IY>^vzrNUw(7%v^Q5f0*(ZGDCaf|z+~vuB z4s!pebFWW8>wo46g%AQ)ecH}W8;06?Lpg@CFP^%}+Mb-JrALp2e(D16mwbCWF*Iy# z_i~%YF#2@KA3{oBW0;Qa6a8oSz$Z}ZhXmyfp3R_6%lqQAh^h5_LgA`*#E7{|UDWH3 zoHFPU;^(Bs&c*P~@=0RU$ENM;9A2>yr>#09W4g|qa&+mBPh~_!xYMPAN1APuuFwP< zX7(h_DK=boBR^kF*}*Z42wU2?J0jftSRKJPbU zOHsszV#%KzZ)MddF3Y-|wEHcgJmKCVaq}?|U7EsntRu-WDk4A*d9W}>KHnFRL3^6A ziB%lsc&URBOjGPKPDwuQnhj3GcD`Xm6H0uGDmYKpT1kV{Q?U}z^a`S^j0|Cb*pUo>75Khc7s)hX$gD} zRWL*em7CAieV2IO)JL+T1K|~?)`yta9|eHk>Z*!3`!=;caH1%v7lQdX2JS@|`1EL( z4XY0+r%SKb36xzmezJdG?s_lUTjKukp|bUk4n?mV4Y0l&hEkW5XfQN-vTW+$6PJrq z*Ay{~s?BFdZyOE_SCh$VeO?yvWRS(}9RK}Dvctw3L${%8G4;pR>Yvb$a&=6FKj3Sc zQ9L!Z*&X*m9W-`L?#C9Jtv2ntio!&W?sJh8pBoG1H)}SRs8Uy3RZZ;4#+_S^Xy1t@ z&N>h~pGYsYB?X2{Sbvk4Gr#_XU*2-#`Joe`1CKATpQFlJ-|Cic?iqs(kLO&4uS!5)@ z<39x~yoyMN5OqMb;}BRFoG~!Rh(Kzwfqsf^xSpi(g(x1^OI3`>h3FE`OkP_)k-ZPj zO)_uve2!E+qiDxUQ#N7~-YX6Gl%**j!O11&GM-(q0Oq(UL*6EAheNI-v8TTcHdj!P zL7W2kMC~i^AyEpS>IkFcy{Lz-yollM`L{jBP!JdEph84{kirQcD}3XpNiKP}>9z@$ zBUA)pfwmu4m4)}2`&#_~A`*`SWIpsboV~ZOGQR)9=!2iN?}kP=Ha>k&-jFEf6y$`g5+1ZO_K>A` z!bsx+mM~&^woC1+(K(mRDcS6p4PKpnKDD{!&UBa-OB5_3LXrw9c0V&_e`)TtsL%8G zrNZk3HV(a<_EnZyfs4>;>OI;TBLd0ntP zlL;=J0C8Ta#S?hna;%@0KY6mD=pqlvAK_6H*=r1cy6j5I{Fxe)o4s-QXs-XsCmd%T zF~n`NJlpAO1W2Yq^8!02aA)7O@kqOOF5-(vM5*DRNUFfK(EzsuUS_X=7aBE!WGGZf zcQbB?H7mLW@tRQZW~n;+6*%1w^B?DF?j8=0j9gg&&vC4~Qijsj8R20^im+GPqIx^Q zT9L1xHh*k9Z}nj99MY<7t=;0l1K8B9EA6|LZdV?y??P3t?rol5d&n*|e1OH#_nO&W zu>JZm>-!CB-#smX+nljoV=f_IWRaY;6h8A|)k7NC2SWo7rS}{645PgkDq?Ss(whVAy2=D0fS(-s)jd#wqIasN_%e(4ijD|>s-C`o~vQFeaT{T z$i?>A_FQVg{wI6phx=Pu;zs}`=2`ReW91XzTbGV)--qIVps#d z=26~_7dCZ9HA78B)0%>uBPMDRoH=<-OD^|*?O6H>=d~`;AE*aQ9Nt>h6YPCd)z-)H zu}x>=>R4Fo_Qs2S)&?J!?p8;zzWE6KKg@J)#yWKTQ9i;+6gcWy~3?7P&&>k*xMM##8Cu(6BeQ!Vrn6_hiA>SCf3kYs*tJxP`W z_Gd2$20HjVwaNhs25yz#1M-9aQbgTG9mL-GQ)&{f1#GMQb_-_$1c&6}%DYwJctHFu zS6$zb#jn7S=5Ku19uLHI9z5#ljR05x!_YaXG`SGRF*Gzs|lf{ zJVfXWhL&@$?qKYJ!n1`p78~5pM^AJwmnq^pWhMN1)jh=F>@HF9`8R8?=35EIiZ}!* zH}-?`pQ~0@WMr!bQX+Rxnv40z9IsohC^tze25BTHN|uR*`^V)`k+fTb4FqjseYczGggT7pqTaHO0`|mEnrU!9Vg4q$z1>3SstcCVMUYV z2rW`6uWfuEHOO`{tL4lRb00=(vJ_jmVEd5Oh2GxM;p4CN_q+3tfk?{PLi3+dCIU{x zha;`Q9}bo~?~orVmpTt+ES_!=zq>0I`ixz<-Q&&x=FH`9uk73aMzj6(Pu~Eyu=1wC z$Y#|^!HZ?po0Hy6pEh6r1z&)I0GbLKc*+F)HOc+gcFF(ylmP}ld3pbUFC_Ap1MG#W zYC4LkUsO|H&HNL-P|BCtA(n zxdjzrXx1GdX@iEJJ}nRKJPL+c2MBX=@5uInpzyFj=G9X3Y_twSX}NCk zM5+!O_jusT@>2*LC`?t9;c>J`DH8M!O?5RdvpogZVZM52d)JWz)(^6x9=or#Hy@ii zl2&HV)ReGC?_L2#720;ydM8R8dKsqHmB)p_gXU0N+v`%XTXIAQ7gF>0QL_j^s(Pc| zoaD3sXKV1w=NPXW*fB*zMAiaik0J~tv;j#YVeU!(>mKYAN>@0&X}^Jcb@275>Bkzw zl%s8}#vJ23NNX}_%V!wiM2pkQA&6?R33mkNDzmt<^u#*BNwcA2+2F{B8C<#k ze4XO(+v3Cwu!+0w<0u-aHIDPT%}!2yB*#u!T)bXv9w%-I?wI$)u;r5XEq6sa?65)E z*~sHJ${6IVC$2^DLPAm0k`FqSpbX{3va|4O59iA{;fgJleqo)13pIIB+YZbx3lVkx5K`FyH(4D~jfGwDL5FJ}zZ6!Eb0Gz{XbTeI_Pd_?4i zxn1pscR9i7TkEX2YeWpgz5c5LSx$ltvA*2!T@zJWj`ucpBSRq}=bwh~0SfZ&aI}z9 z`*y~d!g$b>GAs%lKYf_7VOyNt*OBG)mzg$ zR%-N_0O*sg*$82u?K!$!&Gy?k?bYr1#G{T)vq`o-I|~_ZH9>QKA70=J`YH1Zc z{omH#Md8?mu?Ed}W8xoXI5+{wU=#pHRW(FsX{ieu#m#{RN_!e4HrB`VUw3p4#iU(tqIXODqlNN`Qc-TXRbrFZmQ^1-@DQBJJPqLwc%?&;HXvT#H z8P-#~8Zs7DxWYk<*Vj4QLQLURnGb79L^x_szyLIvT5ZmKWp3pmGobPiLPLHr_|mY zbWs-weW1;UwNI;kqC^*DALzsaq1u9kiAMNFgV_;5qHuQy0Sf#CNT1{Vu-BF%bs{XM z9~j?R{n8HAmTvFZ{<50edFqevBjB;|^b5kuGvYsYqfn&Ws{_3FmwtPxuKnQg_$GTe zOk@P7&jBIQy;i?%PDgw=?OuRqcPTpwp8OIptB(z{J46?Y$#4kyT2juybG{iPc!_C| zC1cgKju7dh@Cg=p+DVoe89ttY+q*K(J8*&)PRf`G;A&3gNjWHedioYxuZ1TGhhScU z@16}>xOo-{!o?iBv2%%r!KdehO*-_9-$b^Ry+O2P2FZrv@X=0SsW`Xyxht>GSpm{X z^r?aqkX`41$;;8$!jVvhTf&pWyAJ-Vmt&1dL7{SBu($P%TyX9UB*x-ctGrl6NxS0v zLY{;){%ic`iG4BiT;yfr8BqbR%647=Xd(KN>`=MNWuZjwMV_U2J$H`HL~|i(J?iXU z5iZwVlT8Olzerom!oxPBd|Ja5R0%2XS~hDM$phyPfn(E-f|}=IUuQu2xzv{*ZN1Hw zyYj>`i<)icl;$R}h)rZ>H|~lhQNie=n9ptB1HLoB0I%i%>w9gsH|yxiH{Sdyv15e0 zSPit>aKsy8T`hUan+}FEy@^kq-=fYoCDy*tfJYu107Ff9o@)%k>yZ90kDeQ?&SC>S z^y^MjfcZepE*|$!vyCa5hvMPKP{ z(bIa1wtm+Sl09K=1ti2H?nqg{@d|u0k4-oUt?$fgU5pUQFflp z9C=>SkK|Ex>1XQVykF4djhKNQg@=FF$K;=%o8B8EjfjbqF+vm^h7?d;>&XB5o-Sa2 zfWR;YFNn6?OmCxieS0^!kNmkQ@2BLuff;Qb!lPeKM=&HeY!J+4WXkB*&!&EeXrhZ_ z(BQZ9S@Xq?^c-;FP8$AF-0ar0|FUnRlN2uHsAD9|h5j_EMD;2weBzE93nH1&+|Mr5 zo?aNiuTps7>ifw4i=o;=)ZBoDORD^Pgs+IVIkyRU=`L4RI&AnOMBSVA-Gm!v(qUiD zG{2^@1)Zfspe*5wP)WRtti-B}uoU>K_=YQ4(J>XXq9X9_{=a9+uLeUaRWXrN# z4wun3BQ|O(vo!21vO=CrUMy1phnv?g;pa009SbAQ>C%JWa}ni=FNIBZf-0=dO9-xM zhzn^04HI`VDNi`&s_IpCjq@tfnu^RFu^{I#Q549VX%nW(x;>^AU6oH6jFASrtnOw* z`eU*%`D2|zv(;AvJ}7(R7MD`<=g;;pKVUkM3S)Smzn*9jQtb1r$bH4P7<@P<^|;#< zhuz0Vc>$$TNjrIw%sWo9edK|zq!L?}&*VWuWqWieiIpYj827~q<8__|TKT0p!7kxr zuG0TiHCm+!t{)@P9Im6M@fd~Rb?zH8&omVhwaP_VkFRq++zq}F$aR&m zvy!i{rU&Gzp8P+wy@ywm>(=(0MiN4R&;tZ`61sx)qF4e5A~qC6M8JSF5iuar)f7tT zp-3;Gcce%Y)KEmQASzNsAXEVrQ4q0m;@WGkUElGZ^NsKP3(t7wJ@0#7^ZH!}fj^fU zxL4`FsRF5gbmKp+(&4KAl`%mFa#=ZOeIr?PL3uj5sI;u&W}@7VD*c+emN?nQ>e|-3 z5ehVYM*h8Cng}gl|Neu2-T01`lf!XPuQPE_%o{O`pm4)%3Q7V4S%bh}YgpV$VwIc( zcztm~9s{C zN#YXjyALip?@5#B!N>KJpy6f)P?N#7#5a_9m@rQX!gy*RLqlZj7B9ZoC=YSiQnA%v z#Vk+m+Kz^?=WnfJQ9auTZ-teP#SypY3;vJRjQ5zTy*KUy{9F$UU_jzANH9J5?lpD4 zAeQa9)4@8JHJfrGt&N??y#1IIk^CVGoI>UpUZ>LP-EJ=Xd3_DPGx z@FPW4NH@V#GxVTs7|xF?WJpqhbmCZB$mfAq`>tz(c7OFl zR|Xzi2$eAe3r+94%zhts89p%`>=S-RGW18w&$c%XVbSq#AmkA@W?qPu%%UUw`1voV zg6qUsoaezsag;M|$=dFb_>GZeq)i&EaOxPHzy zEat>SZV=&1DcMxGpBOFRq*?~c=A}uOVV7;#06#}%-U6B$}UoI@pDkl~)By{vW30n|G1=bD+MLpq&X@M;xwO&l?exBj$aj^! znU&RLPUeeJ)!OC@3R&^V?WnVgKJfgGvFVud8k+>>yX>h-Ws|zck!2uou|DWxY_u+G z2Q>!Ol>;O+mrr|9%lG1@qK@hh@}<4LEw1S=Ek^Z)%cW!+^MDoFHU0Iry`{laFTLA# zS^mRDVTxE(*)eEu@)-t1kMBQ|2W?LM$Afm%HT~kom}i;ek-wK8*KqMS#7op4<@eig zK_mXR<{B@noSV%`$rq6Yi1`H-$!L8pDIyx614bfsEwQD|tsUVastWpdx|Kz`dj28& zXQEKgxfLfNC?O$?dpXQR=I@l zj|7Yd04zZ42-wh7l^~iNlvn6z&WpafX|9P(MfPy{anJ#i#R12R#eo^b<@KZfqC-L~ zV%oHtpXNxPI}dH=*MqADjm#$@knqJ92W_4m2ZJg0jpgi|eltPDj`=UsUFOvm8Wg^V zm&$tggWejCS`899!cT3*zv|I!E*U^59^*>NCs;!@ZuocV;XV_P7}{&?O-;~;lVCBR zT7+UMf;L}dWL%}5sk?oOR@ZG#new3&uM*CLhGbL$^g?f9#g=eb@u2vJQKsvOA zuTAvUF4IddI?t||UMu7xYnv~<)ve8Pf-dwsO6{xvzKeRhQ@!`|5zfu^27Xw-E&uK| zKOQ)${OpmDJw9+mNWP)dqhYKX*|Bytir=#w^XnKqCszD z+~d4$F);+)KO&t8WK~FI#nkTXyK>FFjF>|hF7@z0u0$V6qffAw0}jU3k3~RUs!hBFd{`K#?o7!M$pe z*F?&OUxo9OxLB=Xz>$hOoT|tGp}+pD@mnR6Uz2Kq9Pq|0o%?&cfk@tHmWZSWN`EBVmw&J&>*~}EP1+@a zZGCL3xI2-uP#uSs(P%WW*(sD@i9Jn?FYwHZ{Hh8X18T2cnTbJ59$=%D^+)h7hP|cd zetJ?0(uMu7AHR^i%_Ei01tMgZvcUnW<<3y}pyB9Vj$4pR8b>Sq>@^!Id?8gYhU}Q( zp=~#wRWEkp43sRO1on}%vXG_pO`n#BkMItb*`tw3lAg33fgIPDlDq88-d+rx$)}O9 z6=YTI^A+}}cXO``ou@}B8G$EHJ0_>85_8=Zv8-2KhS%)vbsPD$x7n6B9bng#$S^Z6 zC}N_WsCD{jC3wf=s4Sqmk|#f9)O{S~H+cS#1-#w!kZNTKb@-xx3N4V*aCBv;x@EO@ z`-hJ8;R_$`Z2r#w__6W!!#xl}ZIum^@LugiD*qKnc|fh6@Yf7R=Wi>mBv9fXZAa%{ zP4uxc%zw^i&qC|dMDj~YxnEdE1YK5JCZcL2TXVBHPgX~xt>sR3@!if0Big_3f@I0z zMp5Xdm$h;_f;yO4E{te=q68%@h>6BPM+SpMM&RR9&vAoCi4n$FcMP-aOA#T?84m`yYS(Jj#iUXJXI3ZTEqq$=H_ojB%Ebsp#c-mg) z%~X{8p=NcduXrB#;r3oi`x-^ENv}H~!E*!sLMQ98Mrg`MfM?cJLvBB3bMxsKPjvY& zyTFUaTtoV?eJX2LJHtO3KoO&o&)H#+0Tz)I>54f<(}9i1T#X2RARQ56+>!^-ja6O; z3Yjm;28w$v*u$}RODG@?7=6z!X43|xiJ04gSZGkADd3I|+s$6VfTbxhnj##I$? znDRGVQ3m4p1(4GQax)Bt)9AYkMHFEL?YT=hwT-h0kZtGZ(0lHVx`bk0dAfwVqFQJ1 zXFefHg1wb2Skwbb<*u=kLz$Ccr=zD8qlT7LWU^=pBPDS({ad=@&M}Dp#KKH8`j>w`KSqQGuu4i}jbs4XvYMJ=k^0(3 z7N97j-g>J&TSS$nTG-K@hSpNA=y}NOLaWPmJ$n96@v4bv&h%tAm&b+Tg1O4%geBAk zF@jK?CC=M?lrWdIM}zzV(3?zwv&uXY0BFAg0D=kd@Ow$I2J`Rj$093JJfor9#VuZp z#oQ&zo`f__BxuZJj({{F6o$`fu^%Q$NTM{`d`sndL6;U3`q%QF9+1#vJl?sEf%%&! z>c;@<&tBx65aUNKCnr&=jyG;g9{k`Q3yK~@wblXEqx)sIPDSD>EZE@cOMa`rn@-@eyE*T!5cpfDe=#Orzqf;`?&Fz)}sYNS63T@^&q^bjJ^RWsWKK(mG`ZDn%QG2V*p`-^^}vk}&T3pDNA z9>;0`z&RP``t#*MBjwHKT#%s3AZTicZ23_q}ZNmcdC%!ssT@eL*YKxf>BFC4or{_ZTN1JNnat3j9OA;FIw*emGA z^m{8^u$_oZ;33ue)aj7G?+xffij;_3Bxgg-FZy4Em~@9(sTKcLJ{j@iV8wMup7_zW z2`w!gpB)A8GPqy0N6XKwqflHTXTHr_Yr4(ak$H z)0&srs-^2bCxEPg$NaTQ&c$H;KIV@9dCdKf7%ZBIjFyaSRzU_g*0!)L6h@IQk_k@#KB(`Zcr5M0n`*4 zH_uo3d9_Z3Iag4Ip!&31-6$ylAqtg58&WGyntbayuO5YG?}^*oib2tcu=6G%Zl?rJ ze6g19!^**R!$UQQaUg!z=%0Lbxw8QfZCy>~%MVk=a)uyLig5!AEhKSPT-UVWO}v+S zqO3w2h}xs2&8Ta)H;IIB$2SZu$%R+RoyO&$eGJN_mm|(BocBY? zQXe+wWmSFt%z{g93ltwa6&)#iXe(W^$+I+avX1~9!Lhw z-7sWatl{@dj+j)8N~3G{F1TEOI~{cTyh>rSiwOcfI<@6(vMfQk@Z@tjg(4+9LOHOf zmrP;Mby+THgSpK~)YB`WnN0nKShgW9lZfb#tYsz&+N!d$p-FDJx5xCTO z2%tR*%G|SZfCWGqDJ6-I_#sb=VuTOmf-k3u;G!Zp>*W_i3!~p$hKAculml)O+pZ-J z_XFSr_tV?1Iv=;+Uo6d=2D9}?kZZfLTBh=yA1T|&C|r+$^P z>Q4{VvO7Q>>JQY`9_x;9!Ssg8)@J|ZMd|2lnwGX&0)3U;RK^8If31B&HXQNV9s zsWO!*6ao^_)s$jY;9?fb063x~e9csTeY{m=yo zmtF^$bMI3x$z8&Xoog6a{zOA(DsRJiJQDFa_&e)z1pzFP0O9Eq6#^rL3lkn4v@LyD zWwq7R+`f8g>3}IFoN;G^y2G?Z+0CYpY+bmofdM5llRAkGZM<)ugbvnIfv(WT8zKZ_ z3O8)pJ;Al*gB5%bCMAkdV3E&XD>FXRyj$wi+eeb9KBxH1_4md)CRI-A34=-W>|i%O>yY zw_7+-f}le4@$xXw+x!iA_77A6NNMUo$Ik ztY3-YhLklhjih0%rZ2bLAD)WlFWwvvp6$oHVklS+;;!s+2Z=>%hcTsnm6v&Dw=NWuk6=HZ1`_JHFbd!Pb?>sV*zCvSG^2{`0|4glI}hydA%w@%M%)MVZH_TUdGKx>RWEkT! zoU?FvIN5RzTx6f+VdNy`vMpNV+QSTHRYDOlL0c{TSutTwAL%Q17&Uob$F}8db`K$% zdhFEE;4<(7;U)PicofFFar);rI#_#X*U>bVux59$w(FrjR*D}}s(kk7H`Su>lI`1* zhm(wmSKjn~Ux=pJxr#+2Fxt#>bH5JN=A2j^DuW=(L8)>TEXlRWR32$%v$5iI8 z(Pu){i>haFL!&Q;qtGbS*yuR7Y$U`m7$|OPYz74t6N6~3X>!M)oZ;UiQ3!0A-?Hq( z7y`Y8#26}YC5V8ha0Q19q{&{dr|x}xEUP3C8k2d@#xRjUh@H;3x_UsERR|K)s$4hF zq7Y5N+QkmdpX7)s3>cc(e;E9TvQJ1Ix9j~FJs)f&Yp)VsZc%PQ74X_Ds4&h_FA)~@ zYRcT7?@TRJYd_riBAUFl)mhF;QGa^bvr#`hiAp@x{&27Bs>j+{kUs=1%4rwLqCw|Z zCUgc_ovaL}3DrJ!Tf;mY`^!s2c@awG?#rnuSsCb@A1LFqi!>&|Ne`e>eZx;iKD_r3 z-sVx>F-l?d&iGaN5RX$l?TVdM*sN?rG*nXjM}U%Zs|S`J?SPZXy}kM{Y%EFQ0kv%f z!Y7Rz9hle?W(?~!Rjwftp&#h32jp}nen#a1585`eeCj{)&^@2=cXgg$;n&Wm&4?Oi z12fL8Pu!tze?OARR=L#lylX|^dOdFt1@*WruQm}j@V+HTQPNO%} z;gd0YJ~c^i;f+H)pCD52Y~}~3B?quWrMsA<8#6gUQuynNs-uC@yUri+I4wnzPM6!b zKMwHMr4(ZxSLh?bT8g};K6}dqa+TPICpU;(k3c;FKch~jF}+To zC1BdifCheTHe&8XZ)H1OxZy%ml@yKI{+|CtkK2j>(Sm35*&*+H(5GoK^$5->M%O`Y z&8Jvz`2M&LXiaRt)?H1_Iun=_r?}^4RkjCGG9K8Q17LDI1_`jM@lu_be=AG=E z7+IMJ4OtBUo%7nhdbzI(s&VfEvuwe`|I;N*k(i zbZAh1+5H(-c++sWoC#XR*JTfn+};i=tNMZt9vs|(Li}_e%8N4+4_BrZQ_?lg5?k5E zB^`o-09%1=&5ljS2>8dfkSIsH0Un;*Coh#N_aQ@2iS+O< zChllp-!H?f@9wETpLNRLdo})RiThIogn5eFnp{{!%B^SJ##fPP+>8ZDHRS8vcu7x= zKSFbqvs>76Q4TB|R4%g@k)vF2WscX`Me{38GcOoTs`i7)tcf?v4g?e?j z%j&Gh=f}*>t>E2S2Pxo4UWOoI?zja0${qaaMA%PB3y@!4Zbl+zx2!>))y`L!DUrH+ zqi3VO^AG07NTOFuGd9U((?L86fy!||77x1SlS)quB21ksWy|O`^5eJ z<2ovqo4EkC+>EDeTwj3{(#?%uVyDirM_7+SKhaW0X}Z@cmfdfZodcz%~TIH z^Ka_fjtN++_Vowd;S@dGsmY{*yhVH-(ZY}YmAUc< zjpQGhE5B(ZG}XULdJ$UxT&l6M5&5}==^7%sr2w&@s5%X;UscnPC_*f4Y>jJbX}c5g zThqJSLvN}73;zD!y}a4zrKLBt<&~9%51-JpYa7!WUpZgDP2z+>iea1r zHzEfK)@2@BS|N_o@$^Skr?0rjRrvxF9&**oGOuqDs3_H~T_Tk&s~qkrppbSTo^I8U zknI&2gNMd5Uclq@cKfaMqvesVTpMB*4N3d#q6h;2et`MCSgi`mga`;mnus$CIvKAk z0;dk`0uEdcYqJd3b;WMtI401rJRx zNb=+C`<{T|p4h3QRhg~vFj%nx39NgobwXe6b?;dyojgaN!QY*7Ox$=j`vd`&l{mK* zqPuE0XP}QH<>nPPg@m?99Kmqh6*nW!hZ-AzH*%=6CGIlH+U0D zvpPpy;gXvz+fFz_`mu z%axrat+Sib3fl}ldOI)ETL3X!i4#P8GkK@TkAI}bc%=WPdQIW4$Cm2fm(Kpy?^OSX z$5v*Rsz`QTI+|vbU!0a(Ql2Ejjp?qq8OKfImZ@uIaCxA$Eq7>K!Y@#8mn+%*bvgX+ zMf7HIX#oB1{hRlzt8*XMS2&+HdnUeaPW|}#`WN_hFR?R}#<&J-0}-=a*g5q#Ig~t9HnV7y^T1h=OC% zXT>oflSm;+ly0BZ@s)t2Ta5=M;}3(Qz*w$)x+|r$Q&x0OzaCnXV;B>T;V3Ej%Z@&;V=PmzND)+~AM&7H1aS$f5Q< zK|mg#!X?nE-LZxi4Hgz~cn^;Ng5Yl8Rpq0^bTinOY=_MIrm)Q<6jVC6=p|Xb{ank%AgyNrg#y~NY|n@yV(M)v0?1<~3_g_C& ze(~yxlUc+7IDh4#a*RxOxPY8MoXSU5Ta3sPRgNa73(SiXwNNV~n!u1^FrIQN<1SM_ zoSF@nQU(GW!(cY8Bzi$B_tJ>OTB>mCL*?u>YfaLk6~urCBa9(Yp8E)g?}~`AHnSXPZjGl8f;_kK7v6b^b|K=%8hR)API^tDoIg6HXf|q0HD1M&t*A+z zoJ=zRp@H*_%TXt2Wo>%fTXc>TV6`254!@_{4n!sCdonxO)MuFmjw(>-=}vI!&o^-poiK7H zo{vmAduL>y5ang_UT@ShJE^t;!Jvdinf`N^pf*c$ z22wj(<)bVsNuUgIe4qOThlK}c{P>YB6qGSUbO5cDH{u3A6!Jyzu+Q=^K3@_I^gv>} z6xhL!3eqP4?#fEVzBv`3Cv{0ZS|pwp!>wGHXj@6eHCav5l37N`WWuN!p;w+7Wj($y||o^Nq0-UT`{PP_bOcL^tIA6thx1^ufnKBz4t4lGqSWd;hCopQ|xtjNmw3}7q0)8TKShn;{5OjUJg=M(zgQEwr zqG~+bTWWT2j#6r}&V&Q}k1@v%0)olLjUQnQDu5Zj90#kJ>E;^A-<(?m{^~vEf6Hq2 z1I7ID)-wNF@1gzoXxDsJG8ZHd6qJ=SRk``@T*7<=R~@gdZ>f+iYV9aM-xImhm1iW= z{UDo*mT&Iku0-B^^6dY$LE&E(p8v*sGQD(@(;{>sK)BTW~^O+2@aRPVfH@e$Q3 z&ALDVNoL(}e9&3TX{UGFS`jULZr@JqHrbHkP=rlmpU4`#D&$EXO!3@*0-`1brk@zC z2^`-HY7?dE$-SuFW^(4v4&-yAKB)xWPphe63L z%G_97D+cJelW_4}-_;OJlfCoT ze*|Z}%fIc;t(wi^=--al(5s z=N@$Re0LEH`>w?e9B$=}+zP~h(&=W$+->heKKQk!869i;{Upzf@Tw%SL?DiO@ny&^ ztRKO%?`eif$B!~0>xt6Af?jA~oIi}{;6G1ce&+?Yl)q{|e*2eeI zHVULfVTUs^{pgdPj%H&UVWbUoDi>}m=4O5TDZ=5w9{Ol}>yeFN8;(rknER>eFL=w< zi(fdaLox=hEp@#url}Wx!n&6|Ly=>?`9A|*$`J(u7ksx*>+Xs`nS2>9FB33Wc5W9b z74oV270hwCl;?bBs$+-6H0!`#qZ!&`Si(Vu&7N+NJ5&5&tMz`?W%7I^M?D3Ae=AJ6 z$29e)((Owk=ai-{$nDivoDH1Kk%vdVkXU(qPI18O?E}H4FYWzuQ#&`#jUN3qaapC_x_B~QIzpzk*8xpNwP*jzN z7EvgvZpcE*X`mb1GK^$fZ{JI*t-H&_5Z zU;_?+j^AepyF_q@l|{_lOspZPmE1}55Xck0%#O!*gC_6tNU-*1fC9d~kbXRJ_U!c~ zliMf0a1wEh)OOs$IZTqIoF8%f$l`c-I5Vx2D~wsOK*ijl z3r&L6V&Ni(^v(7#Tm3v8CF|E$aEa|UT5x60LYXwzLX3eTbO4FrEf7yBVU5BNuUj%y)raCqImu5`v>z^NuR_gzzAd~m4AnT_HjJUjzvg4YA(t4z{1Qk6GfKO zWinoVKA3sc#p#r%Keo6Z9Ct%ym6&>Ypp9@IV?)9R>|BwY%iHyfF^ha5q&WkQZEovF z9C=>h<-gs8e4b_GqpT7E_xA!SLhz?Xwh8BKx)$F<}0Ru)bT@dSjZM7^V8M&B%jKl^yY-KF2rv^Iu498JpK-duJn z`C~weG0%LhojQ1A_~5(t=v=xN`?HBECF%Ws3b^>_D?X}T#q#>D_qVErLExShGP$tr z*d*^!u@ud=`fiNFpvLZji{7LpjYluWcm(%rQZNyF=5%!bY|1bYcdGKcl3YN{KPu_p z8L$8B8f0=UNFupK#kznlSA#35E)pT;SJgCT7%3|>+`64CqQNb#!uIZj3a$X&^Dsfb z?a|Z0|M5ZiZv)W(p_00zF!KLIFY2o=dXNbG6PccC@t|NRXhT;lcYu$8Z(tW+e>Lu- zpd~$ZS)Jgr_FRjkYo3|TD*W8bq^qXaj*6GXa@ttWU7nzLw7k?~WMEVENdZKMurN`@ zYtVex)|JfM&?~fKXh|eim`t&XtdD-^S9oZ18Ns{n9^rYFgbK&hUr{V?_bDo@COqe^ zm~JYYT4=*}#CCt%x`Tl3Dr)9ou+@_eVV_9xBbkv)=~L2oj-0P0?5bGmc%mTbg>!3(2V~nPxA3BqgcrwPls6o* zfj-+fE2&zN;GBBPrii9`VuWPPg9LhfpRP*wQ}?;qEhJp&jh51*nLW>q`0#8eB#kY} zHS@iF%mh0b!tK52rNSU*BQty6iDZjXMjP%T$pM5Vq7z2u}W!p=3C{>(|%gDJi!nmp`15G22mRz{^L8q54Ef0 zDlH#MO%%+B)v32U`#k=kK`d3uI|$@rGyr;cm%GvlAreJm41X!c?Ubv2yApGM_3k6J zD~1nS1Q22>KX%+xFl7N}7xU<=T?(O9YOo;Vw*wCei5;3?j0Nx%-2W?9t7F21L^cu* zfBpU*cz?S8Jq$@A@%E3&#|`$Mytg+EVKCnZAXd=#mwQ)Fs3$@s)M_-l`OAJJ)W4hj z(J;KGLT2CQy|3EK5v<~4w9DmOSH zTx6F_Hme{(b(cb6SvehzPE$r#)D`5b0`<+T+?LzFAwhqwSpVw#WM^xU zD2!9@3|$AG5g#C!i%#+0R?l56;W*7j6`*`R%CCxq!lV{J4jMy68IRhCT^7b>7W#eU z^)mw}QQBA)1vAhKG@q4MXx3#=BwC%PUw8HRcKzBaam}CoBHmB|_pO@+j#n;UEP%sw zeRA8q;C3cF$U0Hh7qzpuv8B&*`jbJ^-cgtR6o?GPQMAdtxzl}T_Op_-%*k8LJIlgv z#!HKm#z^eN^CkI~n%u;9h7ioQ(f^40#tSGm%_aDR8_W}*S@iYS6aStR<74KoT(194 zn^LuUEBty-jNjXx`&=>AuYzxEvw3bEduMTZ)flSe;`ikAU!tph{kGJ1C?s@G#Z=N~zQZzS^_`Z5-Du5B53TY!62$ zcpQ#al44SQ+8l#G+PH->HW<83C4a|dNysezI8O$_$!_dK)|S9dCGAd7Q$1Yj5aD(5 ztb6Q!H)1@XeG;p7O175~M0)9ok2zZ^?9Pny7bns97I@~ee&})2n_zLQ@l-$igUSlH zm*%syLv7ecSxG(n*@fYiwjlQo2i54~K6|z)7ALJ7h{mKl-nO^8yWemri7ZTctx;&= zV&f%IYpbZ4Wim6BdP{%ROLN7Tkmr^_GpE45QOl}4#B0qb{qG~+_T~Cys$#)XsK(dw z$fKDq^!}a=M%0N)Lqd4iMI(^Yo#d!a^xzP0e|WV$W62PQ9IQz-2uOJbhB|O05xYO3 z05C#<9S;#EVz@{tK5h%e^nJ%W<)b>{uL~-uv2Pdh>Y!~&u_p}3caa*)qxa=6ytd04 z12D#23Gr$T=lC1Lwe{s}a1DOmOL+jxkCUD(-8IG)I@;x2J09P zfYW^)Fcx&Kj%WxCyR+DNru&Eg=!xw$tMIw7RUM8b-7?`ieEXBtnRznM0~I8$vU!BD zSqYHRv&Db80=e2ez%A#af3gDqS(}gI($wR*a$|fF*V~KMOuUhoe*-N808C|8c}0SZ zCfDDaUfGbEO)p6TRMAO|cWwZRWg=)TO@-XM{jnuXdf&tUU%Tzyy=2PqLsQ(|>VB)^ zfiox$t|?I6Q3jYoA#|?4fpiQ>h3u2&E_xA-_wc|oP^2tyBn+-I;XDsYB|=rrv@x5^ zCYfPDEK;m37*w^p+GMM;%WnC~yYWVBB_TJPJLqZkOP|!`h|1blTg?w#93+}_bW?c6 zR7hWBT;X!w0$!Xo%Jd^&9xZn@O8M|3xk@SGw-n0Mi>Mo#lzy9vQ}^Ei+Y3zGBEcml zDJzd<+A-vTeNRk&X_{ihjO~(7$mXql8hb;lWV5v)=Oepb)||U205$R#8hRR?cw`b2 ztVrV|p1E$Qm!^F3R`;M>-d;L1E}9~To@+XlaNXx;uN~aZ#+kJf>2d{hn9p64=J4Z5 z6oAHU>ShI&%3$&6J@M{^9vJghUPRGXQ3r;Uk4hg%eVbV}L)%Yf!t=)c#VLSqP(=m| zV=c;G4fnT`-#VvBDesNX$r4e3@ZDmx7RT`W&;4lt&bsFS{oC(YFpo4EfmU5GXPI7&IsvE{rPu74C&P*j(UTVZfjj5clX*m3j zfC^jf1Y^U;3Lg)x??NJkcY`{gA36oBm)(kKv3L%#Q3oYKV5>wPr%cPLekjpO4}41G zU^56~!(7{iWL(r6b3dDVg}p>xC61lTkH7L#EY5oXP;-DkXy#$KHM>Y zIc0Yn!-9=!zl>pQ)DmDm=k^$aBR;6NEKGAJij(EiM*|k#k%5i*ihW0S8Oo{28ol%U zzGnbdR+SL?a;|bVWQ=@PU>6wk?sfu1qQj@{<>{L>0|<=hj+W`urm{~FPfP{(aOWO* z1EPqW_S`+N?JtTz&!vO#orn&W=-=T0+kbDH@`5b>1Q&1rN8jhJA&8*kxCccHK-bsW zo^&HOFBOf}m(9s9EsH29Dk!hXlc5zD71uW9%c?4;H+Q78x8M2GTJ?Xq?+ZDVpO}Lq zG5GM`ke)tgPvQwHC|FXu+A7mI0%SW4ceUENsAzr(hC)gKi|i*pD72`j)f|Na$6fO| z#{$g*=P#R+P-z>T6;OCrXP-Y zb^E=g_J^@pzDa!*BIr^JPxcPKj5e3Wk;>Pp4#m4JdqzTdyn~7eJ8fPT=L!z&gfXy97Rkf=2&a*RHtpu&JiVkj{8HfO{5$m6^(0e5CRwgA9o zwA#C479J36+n=nT)m14}Ehba}E&pHypQj zztN_g-=NnguIs<-;d-5_o#N?O6`@bNF{P-@%82l-I9wRmvcQoW@WM% zT!N1+Iruz2o11SPmev`AE>l|wKM!w~)$zh>w=K(M-xJnmlk9~7&yeJv$clyp@e67- z2YR=?#mkYzRKW$p^tZrR@4@F;la_}ntrVP<%9jen$4rfxf=d*6d6sE@R!nh(_*Z86kastEK!f`h@~>M@+q{lywIK;(09u z(7<1Mj6|H?h&o+)r&!I85PPKJRjAgZchXg#)nC0;-Sy!xgPX+#0>cD%1MIq;k9L0o ziE;B;hQLVjEtrUIZUf=U!8_|i7mhe~^4LdJ_ko>Rpm1;&{WO^`kqaD3>)3j8-uGeoK7?v(6>?1c>H;aqBFTU z5}EF})W;fsZ#W8ZAP4on*Y@jNu1s_SyNp;^U0EoaQl~f$TMP!gzrwfLtcNSk4d&c6 zr5Nd7zOdux5C)gXk8K~nY5=RfY<=qGi!<@7k_Miq*t;ifFRykO?Dtq@k3ub0cUb{f z{#uRTZZRoyAMqi7CMj^Ym{k9<#gzElh?#oh4|?8jZdX1li~Ei*C@sqbjAYAeYMCO+ z)i=4Aa}gPZ#^#P%G$3=QtF+bVc6VPX`u~*M^?#P6Q2p7NKET$p!2bYcT!nnwfMen#T$0S@)SIDpFW`_r$h&9xEPxgf0NEEO;Qtx9Hk7 z0LN^&?6@?J)JHKDGPby1TT{U-gPHQziT4q)_+xNxZng@Mv*h$3ai3w+_gmokn+Ulz zSng&8X^_WES_v5SpXr63)FHk4y5uqpcY7+!EcoQAMyQ(`eqyXPFLVsK16!Q^1`OfJ zNhl{UcdacL)|(&nVOZ{4o|Mp)(3OXZuh7dMBkjzhgI>l}+DKBR0I|Hr*^9Rbq}Ut7$0(RhoAZj7QcrFUF+T9%EbQDvHV#jblMekI%w z9esY+6O&I=`|GyDRfaG9kQEoX*T$nQNyITp;mgUUJ_=^VlIlKprDCJ=&wI69G+!C+mX3@+}`a>Wh_}~-_D3P8M838{;i}Y^rVsGmMPJ$7B=cj?!Nu%EoRQ-T`$zY{h4`afod z4*d-!kJ7nmmj6At#nM_`47X`jS%Ng)pH(?WBAQXrl6#BQZcJmqynIKsF@=T3bPxp2 zJ81u@n*!gqg)HwQ*<#@M5pzq{8S!q)En8kppC(-aaT~^Y$p4x}gz_rvTh+5+HO#^x zhH(yTu<0pdd1AI+_LaFPC|p>uAtz}6LLG3(*Ghe~a_phI;M`BUm`ymySkzzp` zEpbO{>W1A~eJ&fSvk3~mH7{hhUqK(V^R|D>v6G|<6Q`bw)!sWTk0p49e}-ebs?uwF zFu~LO=7vg|z*X}lJ}cu0)JZhszFWNFf*st1y&(s+M5-WzPm-J`+-^AEpt@ssmUmHT zyFc#t7*IFNIxW08V&xn~@kEMQYF>FoQl2q*9VvCPpbKqT{ebAvH9d@_Nxri^PTljZ zkFs^5C6kMd>Gt(ZN`78Jwu@IzNSiUU*(ilvfg2vkx}14rO!0&*oYxHsgOw5XdlXhs zFnJS^)7Q|pqGfno$IG0ICt?SmRs zb_`P#?~ZXNpUcvtqzas@L`I)-9(#R>9MHyq6gJ;paD#PZV#*ny%z0+E$pg&ID9zK` z99zYRph}cbXdfCo#PEdP=CAUS7w&kukn8Qz`_6b^W4SEl#>GSSPAGC+CkRTcS0ql0 zw~t(|l_FDM7$P?b!Sf`j6QuU-a*g~|NQ@l#D~eS|LTyJI2mb7dMS5iFFDPumexQiN zZnV+iG&a;|X1G)w0qX3PDti5~7ZaA9*b{B_64%8)lG8v!p8{R#Bgm0#yHqve)&`Mp zV+0>pxvWxpaaE5syTM`ThU(NX%EyP&2motu)%{KI`Ts-Qo47;$zJLF-nHgg+*~v14 zY$4f~(x8}-RFbj{S+h%a8Z($7yOQ15vLxBEMUADR5L)cJP?l^VE$&zE@B8z)zwi5d z-{1Q?`xP~!;Fy02}}fs>Rr zlFO01BPwD=s_vBtX+1iXD3uia?7Q~*nr>Wy^d_RkfU6`?^cUL+-*%%HmK&Fa6I<4{ zWq>dCKqhDbqJKntE z)Oyh~(9Ws)aB%4V%{B4I3)vy`hC3BX<$vWM+%-)mv9O`I8qJ6#(+D^}oA+K-N(C0o z4R-_?VWH-!=mT|AZa+Hh13a+JiO+kQfvCmu6X}K^-9y02aihz00Uiut6;#7w@m&^) zB8qVq#v^C0JWdtT`>m<5LS+&-h3+D?^^d-YVTq&tyd`JR0)fYUxN)Hk!G?en_kIRf z&b?%EpA)*EMTw{vbf?#MO{=+ek=I2b!GIVl)?~U$94vVk%>KsM`kLdOF zo6AnqjQAbyVX{pF#$HE!N(ToyR;7XLrISFXzsnUf(1PfGyqm`_>d>`>*2Ub2Z`L18 zDXhBc_dLei3`j2P#WY^vN_zpEH(7clhgpvTl-uZ+>g7Wd5t4b)wmRn1!Tf-)`3_q| z>C^%G5lOjmv0qVaoB}64^-?CwYo9lY1ZV`t96c9#TAdR=?u_!^}Vov%bKM2N; zjbRJAouVd{Z^S)o83{EjEeO%k6mW3exhlg5u5~ixhjDZ&Nt8ti_~ycZL~{Brm~Ght zp4HbpS@Xso14w5XGB1( z3?J46^jY%NZDw1Ri=n!1NjSt^{GQ(O23}*T&ZQ@0mGvn1OCre^eY;01L2 zox-K0>}K;r;^yv;8@FtxKc6^kX)ko=zKjv6?U=1`M)&uk(6i5>L`~mT@nbECy=eq* z@LR2?=r-_g<f`>^5WyN#D+?ENXmpcf6Mwu1OdkVlV?_${8$^%s1E3HA@{?4&1e z>THNRrwq>*2*BjDv>4rx{9j!NgcV*5c8Eao(hWW}J63e|W!S|TQE9d-;|{^|DrG6> zD;++ioxc;bz~KeP~h4(Pn=!zA(3WNW6?qbNNWyWb<5YURFw-?1kSP%?3>W zS~mg`ia*6bI*9VuDgWOk6#x0}kzWuG00|2LiyK8)Q%e#s&)3#v)nH4WG(Szj9w{zv zY44x`1mTxWoo_mT@l&my!CuWr@BW{h^2`enFg6jcuAkU^NMs2{Sa5H8aEXF~)Htz% z@*#*c6#R6*A<6wJlEd7Fgr`@K>aQM*)km#!e*)M0OtgoEd@O<-7R0)I%DRFFHG)+I z%@~c<*V&T9jI^;JXmmx|ac3-c*u$>fi>ZJ0CEc%xz4X$<1#kM3}-uRk8%-y%LI{}XJKfEbd#LshzVfnuPdh&AFww1Ty04{x5a;* zDSFx3tI-40(N*iyg?DL4_`LXrI`k|D5B|Cs-!OH1?pKKj(7UH%gC~ju_(JHb-1yL8 ztO39bL)KV&J@-jJ?0q;IV9q{ECWz96_EpD;hrS#Uh#KR zrHsD>TDq!Q-29Ae*1Iu z^}CvU-gf@YXRlb_;t<5@l;rvc-@SpNzqAlTSutjbAv$y?H9=y3TCwj{Lt8j>I@2xB zK#uq7#RR6KuMyBH!)$YQ(+}}C%#K@**8YXO=quvjNjdAp)W)O`t+(1ReNpT6pN0YV zmGfum6`C{k%komMS=Xg6ZZ*0+ZWK7~|Ml5}3#Xa5HD$5L=P<9+3eOX#5BInIkm0D* zL93mpYDJ!L-%zPTTUTu82`I^4c(r>Crr0PDFX&+)vHRn~EAca-gKfun-BWs`&RQwG zING{A*r2RqboXEHB@_e*L8O3_lm-g=>m>abAqYh%<)0_1u!zhlOfD^cSWy8io0mVT zt;F+VaJ{* z^(J)~F&}~glo>Clxm5&1f?+O4FnG7&M|>tS zjs40GE%Px4p=t9Nv!frM+IO=lXwb>S^?|E4O9B_ch?hPFlnR9@DjdlgDzkoJ zhclhn(}^600~qec=5IBwC7DVBX-N^J2sGV*mTR^DXqJVS)focgy zg-B{@lW-I;r2V!5)nXtM8Eyn2vB_J~W%!BvF?ma)tXuFe)mv*|l4{F3k4BVmt?`6z7INdHm+F5y9 zN`V5i$GJ|1ZMqJpMm_7%C^@0mu5Xi~WE13=XmUfel)eVcl15*x)UeKcb~1p0AUSPH z6@3ZC>fF2MTRNS&r*gGGGOzwdf}N*CfH&m()AbxL7go`e7cz zvR%GXLw6E$ifaifU80uw4wJBr;f$5~@s!Ui*ZZpRAePy9O9pn4qsGyp(SO;qVKg-9 zBi26u4uJBF`?mP>r|;9=mW^ua+LP#YiFWkp&O?RTDWvx!P~ z=h?IMB_C}M8vh%l@#Ak<7YqahaDUEN%HK1n|2cq*Pe@Ek(n|hErws5+P|?5`H{h9g z_-F6DqNX+%D~YYIYkqo{^SHFQcnfgGI2(@xXG}p$OT4;gutoLV$Nz7y)$lp6-eo~? zbl^G&*d`JY4hER_kVp_j7gZI=$bV@pqJYQX>BU`17m!Cc@&zm!yQ(L@?Dj{Z+?d#-7*D)$ObA8ThtW-^cgg-jw=uw8 z5TV*9Bf)*e0z>U%y?EO%=&CZTz1WVx=+D64fMEK~c?6WMyW`-BT!fP?j#1s`Zr-%O zShkS>>b{YPg5GS@GF04Q=Z78W3wj{m$eKRpNVH}WLzZIQDOA5trC?l-?gQRd&WYPA-ZB+BC8SK)T z-3fA@LQ<>_2i-h7tp7N`Qda(`o`gAgRAL8(8K<9(#}Do$Lh8bhVu1@6IOY#hWOfSi z&NIxw0wH2gT`bjTjWaKJdqU#0q=jM`J0kl~iI|@#iT^?RE`c~k9b{hW&UF8{HBH&= zMNE@!4rY8hkreexESg{3H73uZZw?pc%wZ}eNvo88iw>4Z9|a+n0vwA{+QnemznQVu z#k2JV*b`7|1co;}?h66nV{^KM$qmTl+>2+FKh)}D4#>N`d~(0MvUBrG&h3LI&Mvr4 z)u*$X8zZRe(V{Z573s8kJ*S$w`uQ)|q2J7&CCjIyu{H4NSi?ruYlr8xrXvKzYFFx6 z`ct=na6J)}VEH%+8kBDLNYg24;5mqMTjy@RFKNA276roAls(!1dZ5d}mz1Azyyi`R zD*yZ&DKt#V`;mSt2Lc%lafup$b&~2EqnKd=aQ@lsY$Ayj%4(?Tp%d>JP5(VzZE(@1nO% zF8hn-g$VCA7xF4oH~{Hl<>7{A0uH^we8O^V{|PsU0)S?bfl8JLjYJUWL3( z+NjcYDG#$ZN zV*#Z8vCQfa>#HQL>hv?hmF(2;?x~Gji;f>2Z^@2VuM0I%_1Wa66KmawSl5O|T^@1F z-#~!BHSV#0lWYDDBYx4G`1C*NK*lk$G@6qRXxwRkNaI*Z&Ib7lM!+@}slfI1*s>KzgIs@eu?w5!Hf~^ovIfkWi~pRFe}rf zrVS@OCC>+sqsLmU-PK%@a0LeWH0b)yuaK=sC{UP7 zfs|)og1{~S8#1G5;T;DW?WItlHBP5T!Ci`R*GuF`ZMO$m@2Akj zJeSfj-_9CXLuKpvrp!+V5^zzf^(u!EXF8?m;gmh(ID%Q;MfkwyG$f!40XIfs!B1Kj zb5f(Fupl2@Ct|Ueg|IIpVdsznG}KPuVpfWbKf)=qF2;G%PiDveNH)bA^U0gZc$kC< zn3e7dwSub)vl=Q$y5vf}Zgg-gYHccwJX>IaH;I)ugcfVE8FbwL;aZNThWkpBvhr`p zLey}K6L`gH3u4Y-Eds3XOVeEiMu8;fx}H29cNv>rG*5Sddec>WH@xM zKj$*S78kM#_CHKMe30dh;}-{Qy(C;zC$#s+$|CR1X&9|A&@AO3_=@>U`D&-hmW@Vo z-5Yry^L<%l_yw_X{G&50Uql?EFpMW3Xe+_DhR8RV>T#_pzsf+7QoYAr9h9)Rc4a-s zZ>5oDrjc0eZRaPikw(87#-g@))n?E0oXMDr<7~%Qb;@DB<4}=)-xsn2*1j*&sq*_v z4M>yy&!r`m`(G*=*7ldHhOP$zpmEP1tBs45Kh|1y*M59uAddZ9@8lH;`WOB9?*@J7 z-)e#X*i`$kNS%z#zw*FHVVOTjzI$j@X&C@R`S=cS(1ii`cw;l(Q-vxQYH|~gI+d{ zB;2FXCzS9?V;5SfbqiHJ)IkGTc@>TN4N-;7te$EFqY!(NZEMyH6vRnI@G=vlGnSYA zbw8d#?C?HkJM4OO8_UK|$jS{pUfBVzuzdQPNY|l2o*l#UY5#1GE=Y@SHb0Kl14Eu4 zPU0ybL6_#utVL+6KLX&8Th&zfPaTriAd^0qLXu^R?+{b~fBSb93A1Z^p9Kf-9`;`E zwMvd6e&$G8!-tw0vQa3mwj94joZ2M0uvcyBrWnz{4kx$=&kmh9l0FqpF@B$OlgWWd zigZmT&|p9FB`3h$O?v{aysxQrPu0vN+b~EEqc9!;S`>_A9aqC0#8egYO+>Ju&(0$F z=)3uTtIRH9H>a*jQH>ZS2F26vatuiEH~!V&(vcay>jnuO>w4j`hx z3#x{l_O=Y0lM%Z^xROvz7I4dUW3!hmFKbUbdb6titZQiEV2ov{rHO)!_xbN>F6ET@ z&t=$9l$Px6NQZvmx}XmwkfQQU)GAn5b@|4Vag;9ID++mIH4SJKcE!#Fyx=up#YEF{|qGoZk&FE>a*f;Sj0i)XeV9?nlcpnW*oK?sQt zfC^;o-+vE{|LBzYgMjH?0Fb zT>ls=S=!J7$cb9pva2;X@sg_Tud};VpS<}$4*$_mA|j~IEx@6~Yy-5|ua5vyCgk@4 z1cGPWf13(H|N4ChyM7GML}pTvPG9uG>48}ebV`pO6_p4FDcL)uZ;&Byp_3*TO?75o zM3Iqb0h(g5AwiG>Zox-%=n;gF*h*cuoWz(*8|=Nv+~mRkxU=%uqA_rq>mtu0>fS-m(`1U4pZ$% z;#`i6>3LF7P8A80&nqmLbdpYF)Zm!;$9DvSj=x%XdgmnjJ`sr4DlsIua+n>3*iz2y z*af)IDQG^jJp&s7{nFQT(|d1%9t73V^_()%mZEGynDkHV$_UBb!hJlv?SGD_A29y@ zrm-?s_~}>l;yYf**B0%7uba$aSd4aP0`%RdD_x$gPwrE|yZMrIY(>;iE_k50o{ohm zJ6nS_R_Z~%oW8_~sNO>iFqK6HBkcdykuXcQ$#p3zwUSlxIyJ1rtzx zjfFS)LEMF@=$gem?6n7FVqQ#xF#_3_YMd96SWTtH^7u7N#-jae)Fq=|$6OT+>CNBE zD~yd!w-36z@G2r(TAO!<9?Dj=fQ62qDfQ(CY0_vJuhj0w{jV!cdGcPFZ zbtFg@G>b}4x;>l>ka3%JRFy6b6=qo7;`a`aDQ`8GTq=`j*X(kO@lU_O7N>3SsZPW! zT@*JVABfLNc_y)1&C6CJUYmbS(u<9+#i*3}VMl$fZii=fu127|M z1~UR>T!DQJsEm57&XKL-hMY6ns1ufX^PUECrrE_Zt?;;08#wGi-7G)!X~v*5+2ieR zaTc2h3g2{9EKJE8gws)>E495*QDF3+PwT;F@jf-L@%`}q#J3v-Ht{s-!#?^GEEScer{3mgCqd_ zBZURt%PKMuWraC@dbGxJS;o#Q zlQb`|T|z>k_V%N=Yb9|sFxJnkW$y#&j?^WAXe`-l>UFUqMzBd48;MXmNy&AigCpKy z)|#u-h>D*+Jb-a^0UM=YG&h{kzc?c1c}X=;t;>|y1Ri^FN@U89aVr9HDbtze8LC;v zUKyfx8~Lj~;5`3bHNF9S()X=mZK7#k%dfcI^^-oO$HFy!|IC(3nhYFjN)j*uWs1VQ zdQ=+5AwB^68}#Pe5U^5Cus|UI10LxXTwMQdbkX|9d@m7U3@#?42R}t6-<1@)lZIZO zp|&*9XKBiwo8a3+$*-;_W)c|VF-(nB69-ABZ3;l(FJS~m7*aJR1~%GODjs?H+SQm) zNq;HiJ^tXJ?rv zOSoFr$Byqm#14_Q+zS%J+}3a$Ei#0VS~AOI8ATbt(7cjK=qlP1&~;CU93MM|3tBrm z%ZO6{QNeOc)VQkM7p0KVK`~9YIcU`-YAIxXl`pxGzwltlveoFKV4?3^xO+{?cKfxO z?oO0qCCIF@WxDY!8))XW7yR4uxuZ(xb?mWA6{HuDR>+#B%J$4bY7EoK?WZ|RCn@RQ ze7WjaROOA=1~&mzk=qY<>#kfPOnSTsVS49tx=RYVfE4IjXHepn?SKU*5Yv6|$#)iv;hkMu6)jj*5Vy`|`}Gr8lp{ z-dIdFG4zX)%I`!6yg8yJIWSTQ<7Qks4qXqwaJ*?bQ@t2=f&#KV!`-Ks_i?qqq_SD@ z^e1iPw%G}hRu0==Y+(o7ufA$C+rEFh-oi3*^Xp0O>BF}|b_XumwZ4o=O8D_(9Kjw6 z+1wI2SP6Lk?%uImx37yFj2k?=|Fbfzj}r@KA?TDeJ_^Sa*_uQnT4s(bkh#$~sBn7Q zZ>D46A~-vk5%Pq5jKZzi4mxuLwLLL#og!=2&hm}g!K8UC;_$W|b5j6ANFN%i%O%Q9 z+Dl}WC3Ql1b0fL!hyAZ-U0pi5 zUV#*Ed&lhImzwsbex%5s^TI4`r=Ry6yK8M_$HCfUC;*`a=Y~2+I)2wVV?vFu&MuZ` z(KsV8Q5o01Y;(k!uSW*06x(KHpBjGlja30hK(YAXYA)%uwZ2zuy?crvHK0c-7?Zxe zeB@F6Rek%N3$Y^(A0VKZ9<5RN%v>V_Ea>l61>i9J6DGR-T_OP*;C~D<(uDrmo{di> z3k$1Y^UKN;@c<;?VRenlF%^KKFT`2f@~~Lz0e}cVzbNhK0x72rk2mZ@N z9EVa81c1AX?IIkQE$|jlBGvrC82*OAetu|N2b*h~ZvJL21@~igC7Y&0s zW;cNBPaBI!sR}A9{^?o7hV|U_wtESpz)&0t_=s2cl6kDw8~Op-u8hw`)c3aq1ySIO zlU$=T=!;l>A!$c}7#A}GFdMA+3(e)NJ}kxaQ>=XZ^9-7C?z}?UNjxz=RRaAm$TMz`e$oxO{d`Iy(Um*Aw{%Wc&~);0G>62j0&w3JF;lx!;E4TjI_485L5TqSAPx2EN zs3FF}RZ00lUyoer2voXA&Gn+x8A14k1Cja~ zdS1Hlp$m6a>Lljft{q9wg3y2MTIyKsQ1kqun5)@gswfE8eZdxgQExR*en+Om0=ghe zt2GN!(y~twKH|jW(n2~^y}LjAf-uS|ic>ywETD>++2t;a@N8DDkuVX@It;$gao=GS zDU^9Zm`XFZ8oZT!$9|!n9^dvMGpmrC#Jf~V*Z4-Aec!zJ0(?}pjmjf}Uhe1ERQIi0=2c5$mci?& z6wew8vdO;UoWRBWx}0y9ttfs6_To763JMbeOg|O~KggW<6;-(are9j9x-paUNTqbsbAZzSpn>r+IbT)yRnI>q z+bBUnB@xtUqX;)qd1FB$|qia94p>< zvrK9cUF&ji_{hB4Mbi$QUr7J>J1&mar!nxZ`5!K%rW7$X!=#`zg#vbdB#eX?V{~-$ zrmx*{m!d>Kn9wdo$vWhPm)Y!}-At$ZUEi0n`Vc2b`pa-fwO87A^L0GNl#!<+TgUpT zaF_*e=>#!iZI&#)EzzH;Pl0;pALCG%ZMX&TigBZ^JiY0^8WViwvHYxt9}~o4NQJ@G zD$2&MI9!=v-Lfh3=|WB|sPX)oFexw!z%n{or8+@)18KmqMN1%_24V zbXk&XnyzF+;CHVGfwf{>XqfNJo0c?rR7zez8@GiR0(#e3$WwwRfaJ@9IyCROA*3sE z5cMLcOVCsKV;~6s;c7|Yo&BFGL<1ERWG04&wx=y z_1`}U?f-bd9R5CH+W&mO{#O}B3}D;U76y9lcYyrHFZQ&^E}9$djZb@>5u^P+QkfyyZ=fUqKOs%CxsYMN9Tqs9^cfqYU#MCjvwi`@ zeD#SuN0V9dIS~v-mpjCzTrXboKq=DkA+oLi4EOurMOsU`Q6MmMp@R3O+*JLh@4ou- z92t`r!v14ADWWhDMd^1;2VYezMDq*qtw-qegV}<`Ld@}WJSBpa=h)Ip(;+IHNx7Nl zc*Blpe{~oapB<_8#*{V}u?t%YdWNn|{E>zkZQ6pju!^ZEgBos%JdXEr-fqKF;QW<( zL)zh+--r8@NcYx$Fus3<2?Q2>{Z1hbMOVDabI^_C84uce($ICgEy93w4Fz|!xjD_x zunBpeqlN^ZWR>FgX6n2$9yJz*xklpa;jt4%m<3E<7Z#2Ndq$rii291Os3Bd{L?t7l z53eDVk((AEVG^W*XQo@2bz^a96cJ3+_w?s zc;HOO6)a_Z3TqlJG{3lG?H!rxI(2LM+(L=@>-gzw-cavyaYxpdA1~$ay_a4pwvsWJ z!@?Ui#T{uq*Gj{vMAE~1uQfh*fLQubE4X$E=OZo#vmGM^Y5+hYeMh`KvgECSVM8^jWL7iGMg7+|?*M4?UMDH7W(!DQONkK6WgR8q{**LP=>SS=W zuO%8%|GOiWwc_*M?8>8muF=9lu74+5|7(i>pF3&y(O6*xbWTxmEU;FqAOv*M6gagw z|ER8uw1E7cv*B4LR<+`J=RH+n>HHUOQdC=e{@qDSLXDwD21TIUm^rBK#N>04S;z_u z0-obQp$nHD3G#whAh5L`3cO1LwFZXZ$gp3d%zRu}3L^rh!aDrwt?hGwSr{5Dl0;aYpTmHjX|c(zZQ|04(;Ri4j(%-NyB{j>yu7PXe~9of<^V=q|6cp30IWK} zgmrb1vwV6-+p5$w`B;9O?h?emXj*qNTLUL}xux+!v=4Z@ngRyvoqv6g-?3}jQxL|- zub$0ySTh*{<`?MlBr-ROn&vp4R<iEP9+eC_t;Sz*~#K6rSo<*{BTNc$nUFT z(M)mrixE@bR3Tv9gzq!p7XAf$IvMkd*TYqFe;QE*9uX;4_-Ww^k0%>u`(Nb%xzOEB zq-bEth)i5kba{*@V)&4~XelD}>Ns{eqMQ*x6Ph=+Q~zqpqR)=jjsn09Rk^&@a?ldB3db@&nO@e>?!G;Z&NKeC=*pMyo%w=_xGYgRhp0ONRr*J{4^y>*t3xxp}n-|QA zYT`K5ApFjQl1h)d?wq-~5p7;s0QsdP3h1R3V z3^7BD@S69PsJ$7l@a=b<9%xDYYR*^hK9=$C%J)y|V7;C1;j!o&b)=sv31qCF;D+Wa zO++~R&4Na{945VtZQ-p?ZOAm}TtNG7ZxzZua|(5AFNtpu6Q&d@fT?kg zQOI^?&FbhVBRt1(ml$a_n6HX*K2MfKr}Xdk*li2OC!68U!-`*lZ&(3$3|Kz`nRxS< zU@j-?&ql;rsD2=HJ#Dwg2Fo|Ldky`)@LbR5TV~ zRsx7uts`i%uxjC>LRDdLPI_@=ebxg`aW$;alLkhbD$v>##%eupdy`z;%-Jl|^DeOr zfLM~t-j7dAPE7+=uK5fUhv1Unr^!F}CKy8IMxe%47#tgrE%I+(b*nedZnmc&K<$qq zRB+s$w`xzypl;EDDh>H zvXW?FIIrK@-EFYwn=>$Plo0A{8#G>=m+53TSBhc$DO^j@wGRV&6@tu260v5vh>71# z0=1s}a717Cz(rr^y$^n*A@y0`rNh-^d_&-2Arh#%-vZ4AMmTkXDW}@OfIsYE;D#tO zzbEa5w;tnTahiw_z$Nbo#pcU}G4T8PPC6_yCFa{W=w}Fpjg&h<(}P2bnH=}tgj|G= zQ3Q~9Yb!t@LpFTnDSWn#1ix_e^#cf2@#iJA&P61Z zwMbS)THdK8N(6jqq8}f)94~p=je@>19XP}!Ndxz6l+g4S&loVmIrb5BEc53E?5$@S zG$B0>8O3Yie#sW1qJ`Wk5urx~3P9cv2^#M9q{i?h6^Qb#M;_<7n2TM~>AHRsva~dM z5Wn@|K~cC4@Z-hF=w}e&OzJMAVDsj^QP!olVaG7hG=B%5OB^XWfz}+Nu(U`F$l-oH zlf`JZIZ&Nvv_ugIP|ABU>;Ngj~ zspAmunn4U?HcM5N$?QAVMP{p!vAX?64pD0mv}GOCTRqBqz$vw=go*uPfVh`PH(?AG@Vi5RtoH8s{silJX<%o}P~qK^vCA&!0*;(|W9>T~yx6KX(q{T-cZ~ebnm(c?*tav3 zE(tOovOT8VFmL#kIk+n3Ict+#LWum%9KB)9ulvFM-+OX)Awu=Dv6p7{*VJyxhfJpL z#%nGl9su9d7RsdB+I`MrEpiP?UZEr1StlvmxksPLZ;!ls7C8UmYs-nHoxw}hJ&?-* zwm*k1UlP%VnoWUD?BsNW{a$@w`!*C15=;iHetTm(RwA9aicOXk(XW zyQyMqw}PrZ=~-k#T|PR=JtOa&Mef%)XUqi-?`jx&;7WO4`Kf3W+znq zM}KN%UwaMqxQHx|V130(Evmi`Pqb1Q+M zy>hnhP*)^@(=~EE*7e;Pj)ZH*X6Fl&%CF$U8nKryw5FMN$joBTJHOWvKR7pP_K-l< z(eY%`na)UCyN3LgWYUXmcszAlP>~M_vg-#wqe?oum;#dxXc$^H-q>|hjYrG^o%H5v z3Ixrs$Ys$x3mP6wax(U06xdK6N85?a5}O!U$g1zMzk5cF7bJ_S)lSS{a^rb?PpQBl z$TYfX5OGA+Gt1eZRLi7-o&NQ-0NR_Ac-~X^(88B`UgVW<%~tyI7WK9Q{>M$|(D%>v zIXL*;p-G(X`YVWstP2m_6GC)C!X<>H?u8ZD?M@)dVkD6y9^v+xz}e&yJAV#ieWDgl zn4EiyRc3?eit;1SL*>|j9p8JbgCwM+VS}~fH;47h2^3@-_Q0*H*J2bTQ<>JUM?jIm z;JVN6@ky`47};JQeKfM&jd)Dyso5L#;w=0yvm-1VL{|b_-8?2EoAN$Gj7roT639#r zBjK`1!V;bC=*+zbFfrmb>%Ge;#x(iK=aB*kER<&-{`mtSUUTaIjbvJyF zvWSayD-@jmL^~Vc7(;b`4=vMF*Krfs{BY+6~GT_C;UI z6Xkm|W6Y#gu?jA*>+$K5_)FRKf9rRA13qJbgZ(4|@^{-F*j)I7HFEu11pUv=g&0n< zaN?h->I5m-WMS#lbYRmj5v`gB>;UDX$ymwc^6HwqoOo<)V-v9XBdOZVU~oQf`xjNd z2I$Qr1Vws3P*J+P7z_lAk>wRcp({T2p!miCy%3Co;S-r(c#Y!aUS3%vuY#d-pO*OV zFya}_{?R|dTo!Q@P5)S|HQS_!Fyq{CAFHZ z)Lpz<%=of2>tOcYrbPK&0VeFVE43x(FJRf%jKoPry@iGF`NQIOF-8gc`O%PTDi9#7n5`*4D~PvaQfve!!}UE<*n{8!+`hH2U9SQ4pT)BTVoM)-J3w- znq4+OQdtVy1v=l6c-#lbM!|Ou$s!v&vqw^3eYsjJ-dC^PBf(RoYr7Z?w@LxsoeDkY z!%i_fzdHM<^;pA^=^W~oviyykz9VlkD4I$6Al2X1Y~%fqTX{W+T~K{JOYloY+vZ)Naa{5 zmRpk}Q$;8~hBMsx+^BPAgvtD8Cw|4Hr3hWn=M1ouNvvgoTkigpTLfIjEo>?2?09J? zO7u&S(y+8$N$N!dC-`&G*Ev{z`RUK@tu@mtMKSz?=_R`!H;z1xT&Z6zB7F>&YHW?& zS;>mTVCS2n`xm5DT0QqXGxwP{+^brB*DGLD)49*!=FiB<+6gvAxq>Ck=ES3KcJw(e z^03wycLxqD+ChTSi8m2o9$rP#Wud1-8`u%D%u10+s`T-C3KBu@ROwM%4Oz&Yv*f!F_hpVWV=&nMk6(fAy7J81)5 zdGnFVl%e=KjiY`lEPz`UuT5F0eJC0-(B>T8JaFeAH27mW3;E|#q19XRJj--n-Bzxa zoO<(+8^!k5x8Xa!VZms>#Ha6k5jOSfTZJYEYfB~14S#cW|N6DHTPXZ(t>NTv{sb<# zd)~nbwN|*|dcyCha-f4a}~Z@MrH1Q?BRz;)*G_jLvsjsKI8 zkcvig%B3d$!KvIiBA2WsC6QTBSd;*afM9_|tb%f&lgnB5=t(_bxD=KWYIycMI;B>a z@#1+h8g=jGUv)!2>fO76j|oap9^gXb=0J6!hvvzG2;j4{40M+Oi}&oO0bTYlt1B=$ z$U4i`c4iofVIqf#CdHaV!q06upB`#7&do)8G6GtH0MGscU!FzdcH$}RvK*@4X z_PuY}S^w8rBt`qSD7k3iM`C!0lw5oc7e(%SAQ-#cxyJRp%vqlV7bCmJy z%5h95^@^8Or|Xdu!$`$>rXVWr{zX#$l!FdbfAfQJEbud8RV?iz`YV4PWEH?jnc|Nw z5FT4*B;@3SPYs}N-k-%hC3%H6P*_B6(RWuyA*YYo9+~!oj+QH(9}>sb@AB~1dA%|_ zxkF#Cd}aA1p;GK1rkH5IHiHGUgD;{$gm*vAYB4T0chkGg0Oc#;0$K+z&e zFEGI$brez zoF>c*SW#l>JrAeck#?|^AuS^-a&`B*q(^Q{L?)r&6)v6QBy(<_AKPF~%=FB6$$R@5 z&Q>gj@`j(#@H$BXRGwR=D`G)9T{1lzrA{w0Hthe5y?G;eCK=XQdV?I$bWJL|fP)Sz z)BAm^9DCq0I-e^H{$7@b;z7TDBYZyUbG>`cEv)rP@#+(P zV30m*Y;8fVQZH@D{PDAzfX^XIYs1zG8?P;_aWfuoGD^KZJ}n53!Vm}QL3hSP+U6!z z6dHfZ|Ge=C<^ID7$K-(7IH*U6XSzUH2ys#=Onlze51MC}kHs9}OeuVJuPjtChP^(? z4k}9c8BzMvGo&0WLXd^ok+)Z>JE=d7@rT?@2!1!*I3~`%(QtcBO8zP#dmQo22T%H7 z0{k?Fh*Y_qVF%80#C(>M4;)9`p|#>C-AlrHM&>)uHAwl)IqZ%Fj#<+<3;{lZN{C)o z_ay14&Wl;Io~lL_v+-+zM_rHN>acgNTsX6krN_Cq5Vh4y7^U#mXmDrVtn5^Z^|Fa7 zNOf!9S)@Eq*#BH+02qKuZ?c6fC4y{27UFpGKuWPnxmrv4Z_asbq5a0&SF?ZEpufI3 zHL0~dPSpXBZQS=C z5A){N7h6H{>;Z#^r@(FZpH3Yz72H=Mg36}jn2??k+t;(F;d_8{wvy?q5`9ziiq6($ zFF1?12;xJ7=4SkQWG0k;kZGs0dp7B|Tw~q@Pk$}%C?<6M&P#;pk{I&cmO zIjhJCvKwi%RxOnjEzZg=^r}ltb2IjwyOmUlk|A&A#UQ{In94)%{QiyIJ5x4G3IhJS z7S#EV1nm0XpDvw$CSd=Za!ut_71qJ#7C)d$kpbodXUXFdPHDVwWmQ8qFoJ%ppz(P+ zy1j_;BBiK8Na$tHT{kt@uUT|V^ z8OXxcVZX^+WS|Rl-ul@^k-cs)4AF+9hjHRNG3<&z1%ZG>IZS7S&zOiz+F3Qy=&uqp z)Xiv;=cfz6k{4`J))T}FBR)rVcRCzrw8zC^z27yxOF45JZ!M#Ewoa-T!I#8l7>m^F zdtf4l!}PD)7LXupojn55^Jj`JSi^%qYqlxVioG;#F9t(Qx z6m|l+x1MDB&NECntnhW62d8?=_(@SFzL)F;UI$^}Q{?rbDN$6{^$9G;k}4g?WZsZR zW4gcD_vxcp*iWPbMt9O;{ve74rGZQ^W?K?Z)`wiZj-S6=CYCtQ1pX9v$cZ@T zVIIMs57Gt_e7;B~=Wk|wPKX=j9W5$)@MW^>k*ENy0yHAF zT<$XxTM8>=Ymcu$Y|9Wl87Q~hhfCjfa5Xde60=39F3p0H)B2VxVS}0>hy6c_-lzai zY`Ruh)XY+8#h>i41^0Cop5_!S7u+d@zy(txT0%_%uVYpp{BVcvZAvqmb!b>Q{~bfD zTq0GO(bj$*vfbAHUiixVK^qMw?(ss$C2r#t`2^ZGX~#zPA%_3F?89^_>1kCLuH(e! zziYuQ=f7$}v47WsEaRHngO_DbcA)Xkb^QjvBhQ`TK4+Vw^8T@u&o|Bsx97g~U%l?( zH{@_kNL7VJJ^t3fxl7ishp#>iqd7e0I_E!f?s023!h5K7+ikbek{N2g)mt}}j`Z01 zV8&N)dIl3b7(bNgJlP;|-A(8_F7;CQ=b8J6>fO&tm)ZcAXwQ1*Tv?WIfsY`iH-$w8Iw)#$lOev4|vA^~ExoPVWx}RoitNzn9B)9qJ!o#VZ?JG}-n5x4Q zMnZc$F3*~K0TQraj<{%PLdo~Uh<92OAZa8EO4QV4t#ESvbovu4zMldp?oNW7Rd<=> zDQCv$sA@zEe{iG=|8^eQgU}(csUTrnv)x(B8213D|rQY(q2`j z;e>hc*;Q{7elw~w-+hQFmzI-$)A}hKi7oC1rrBT>7Beb`MNSO$VQ7G9=1YT_sF-|< zn1Mhyp}qj{9r0}yF!8c%Z0^{=^Aye1&pywc_{C~NAp)$Jem=PmV8~mo-QMD)#r!4$ zI1Hvc+rC7)@MN2PV5K_JGAD?EN4;mbH~SR5&~@b~sowch^k55_g0^kyXI&|<1z9R{ z;hL__f{$S!`0l6Nh>Xq?(B>sEiLHFousB*%b1q0CMc!%CpK$uKH|8C6{abLF$5jCZ_wBW>g+h9na=$K6Ukcsz zUL0w|Fi!o7qj+uZDyDhE;M&cO2ua~F+$R>{R2N2rTT^`0uZoiaxGjG^UuJe~BAGYp zV8ZR^kA>-{P|q6Uppyu~n5&XQ&D}>#c8m8zc@RsPAVxhK%Okhtl=gv;@e7{X5B2K< z@GlIFI?UZ~3<{kJztgI4GTtOn8^{Fe)y+P>g3!1fYoqJl9&KW#xRBVcrj=}^>h=Tt zLQak#6r%x;2ZO)5cBsQP<%z-B&;jJb7k$k;Q5kv zo!A1rq-eV;ZRsH&o!m2otwWB&j(VKjtnzY6P|%@hX@Y~UeQxX4@=9r^;O(XSw%7tL zXUbNhcGaL&;ac^$`^s8PYR_^pD)9VDM%}JY;ri><>Xr338?C`X$~6ubzrWi}_5WV~ z%Er2@{@}ICtFxd!F{$@MCsx0oLST=T?k@e1CN;f`jiY8={d8$IS(|YNHeLN>0Q4#9 zT-18Q(5Jk!icnPEF3?AO)e?|*`9i0dnEItw(VKj-T?wlz%qPpAlW7yNq2$l6tNJMj}@{}A# zZxiz7aNT2;xV_~w*Nr{eZzYLO9?+4(c@?MVEhSV#*Q#lb-fj*(4pCnCkoL`aPi|l1 z?e2uY9r<62&Ce*}T#G09up=*|sJ;M7?rnP)&pODUe|0G#2k> zhChwQonBG)S2cRo{oLa`JlokTi;^+kwl{gf>#MdBRP~ z4KtShl%4tx1zEo*7BhtZdqVv-^@;q4$PG-We?L}%&GkRM5J^B=2o(T$P*_i4QYx@X1Rtqs-zF@1~e{KaFd}Am%HoE?S zq1U63c_?%qf}%qV)Xrox(4dwV<(5}y0Ge^i&K`V{74P)b$Ky|BojhyiFRz^j(G~{! z%wN^GA&j(2!g~CIOh{U)tcUO&T5sOd58ybNulx`cZtv0=9mvN>FuQsLF+wogZ^HGb;%ZWV0+k-d@nP_kNHS}Q6(5+>>K31moU773znVM3 zW-su%ZBu~<&ks^4j8WR{L2J8;;~uI5lr#veCDsRb#!86-;cPhtzo>!Gz#mc61v@gs z3FS)I$Ri$+?5CHeJx_TVa*t$17~18}JYyi(%*Ai>Z189?P?u7nxZWPCD1wm=3H-QM zL>>H%CBiz&$vdtwO@o&h=IDV=Oou+~ToUxM;}@l5u*%rY2D$c1ky75PDNoQnM4KDt zP}%tla>w1~aRq}uUQ2ndvC0BPIt9AgG?j>vk-{QnYZJaY#F<-s<`0xnW$%;&8WTTQ znc&M?nJ#Hpxax{gtULJkS1U(g0X}^Ff@g-qhq!x+9q4+bH24slzbDiiMBUcl!|!~s z+K)bb8QgCg_+-b$HX5KD_8X0Gp`wi@q~hv#q%7d}fB$gTt>Xx3s1J5-HPlWZP<%7}9m2}BDeT`tGr$BN1%rRgq{&^V8BP>1|=KFX(4pBu`> zaevs$^|0TTk?T!FYwSo5aIRH+)=vx8{uB`Zvs}6=>Z}(mAb@TXGWE zNpZ?&Km92MG2~UUD)i zG1>>HX^(cK{Pf@xz69W;otb+NhX{pRjRVnH>zn-kk0;=r`mYRJlDsb(xODo$OIqm8 z2BfyHcr=SwoMKTqC)3>}P+m2Vfco`)+aSDKd3Q+Px$Y7!3;2(#zErt>X`?N#q<#iP zm$^OhnUm@A_?N!f+V$j^)%rg*?_&jJV$Z#axk3!)OdW8zm^i+9+Fm(n*wd~I1e;&8 z-FY0(|IY>lSn`h>Q?&keGy<0Vf6teHrxyK?ICpaqvMUBd!@&%!J!nMVKm>*ZGDm{2vC;MQ zPXz->MJQxJeh0PEyB4^>C@w1v6oxd(YeZHz|AVkIGZeG=|1H-U``jb~v zGh9&hRekMz6K}Op8B2X|X572;r|GR!m8g&gVu)qQv-l0GZeJBxzF8 zF|MP8sED|hA|TInLl}+&BFHjQ14<;*x&kuP9F@P>Lk9;Ro$#tuB0d_^L@=3d zaNr1`bZ*%b52ndo<2Gto?<(z&T|3{s8;$!~Nmr0IOt(~~gN!1K@ z&_8sw(~OsQT>r^cx!6ULsr9}>Xf#5n9acZH}!PsnfX7=QL8$ID)lN;og3~$DfTHKFLI{JIxc5i#D*Pr1)fkl5U zBt8Gk7N6!g?Uqe-!C2xZA7A=Jmk5E`Xi-q>RoNhiy1<@vBQAwoGy&`;d+GipO1#B= zY^tL6*`om`q9y!r|6AzZg`E4|8IS0`1c%bb;NVz@yksTxl%z;lkCYr`K>0TN1_Jmo=- zjgw?)L3YU?C4sN(Pa&V!oP?z$K5YCC^{m^6ho@ZYO*+-f{BQxQ>F9Xd@QOejrNC(? zKF=;RVqg-JncQobjYAMriW6crl8WjUB{S@ENcOQlD66x3rVbkhhuM&-oI(J2xd#w| zKy>2A^JUzz2KM)S*=R;x6yI!#oqMVc{#U{tNDLldyeJdp_*nZd`(1~LpMlvVPIgyfCn#YqCZtklxC!3Dm^Mg<(loAl6r(m>%2Lsu*w^}lhag>p79i{EuuwPr6j9+vvX zjP~?$RgV=NZ}w9%jWA_t^5c3c&8ocLzzbF9)G%XzzDR)4aG5Ehh>=y@NJa#be`CO% zpNY}w`}*1+D7tY*=mV!Oy=9KHP#0!99KWkGEd+t*IREwVF%4t&>2s4`JythJGEj-I zMZ&?F?_h=Etl1w9Kep+4UYw>7KK}H3<}~4O1XiLDY0nSc^?|(x@pvs2$EJar7&A;r zBseJD1>Joy-C^JDRx*lf{KiTDKk{8INFokxNtF8MJw#v9;@r50EZX2}XtfBj(O+_v zlI}v7Xv%!F&ZYr6I;Z)1lJ}XUT*GVx+S2@+kJPAwrk^io1J&m?8e|c37s8pNt6|wO zN+OHr3O?l4NN7yTxaTyKe6gH;EZ#k^5AUR3e;^d$%S1o^(sEuT5i+@%U=?k@oF{Ar zQeT?Qil1r~f_XD7jk>?)>JjlTVdEFgc@}AtuW^N67)~i-S`ziiYdvM21dSM))%n)&6I|3X-Z;eI15f{_Z+ypb=H zQ=*V@iGcgUkE+5$%`Qx(Dr6Luy;Q)5m)Asv@#1R#LRU4R>BKlV(dgzfATKKhSj)gD z4op`TwujUw2K7aWAx2U@k|)S0&ZN00%ybB9cs&HmEVi_GD2Ck)-VyxtN3IR%{RO&F z7JL>i6%Pip^P4mj_d){wPMD%VVNn_(tP1WihEoDs^lYLJ8f>&1NhCjIEnHi9PiH&@ zA8)C%oy3onXU*OTlpOU-RcF*8O1bL$(Q!ox%D3FhPfxo30u70~XANwfv~Ir=;e}KP ztX&Y@J8AC&gB|_M&$io30>TPP@fS{_97i5|(~5vhw8=xSNDRZOKX>P~n|uJP8ke!l zn1%<<<66^^o`Bb4hljr|S8WGW0(?RCe&S;iIHaN}MD0e^^gu0`w{!KTa!`I4ra8ADbcNLWgte~jht1J;^Tb<#`D~6gf8vLqccha9%RCvxwVx%h}&%K zLFK4Fhx`0(zMnVtz`h4_Ip&t1ic#hisn%QJWSK$E6VA+Ne`=^*KFq>eVr$qqa6Vgj z*7Tf_mfk;u6R-;W=cnR7tpdEPA%Hv_!HVaNj!%e2D#RtGQT=f$;psVPtXa8*kvzVv zBH{`~l`$0+RdvTeGhc@KHyE@yGY1U~2GN*xGlGuST{SEG+edY*kxYUAS`PJ*IHU`Y@3!vr zlg(z6H=#7sl1W`^5$%-`K(Q5qzSfBC%S9S-_|EF+3GUi5OJ{bw2p>BWb;Qv`nN5#* z$yf~ndIHzqFh7>|kRkpTL-gs}=47q|o|wkD+aKIMquF<^>HBxueqn05yw^PWDcV>V zhcebD6-9F)X_H3B&05pHmU&80b}gCG=qZe!j319WXKONZzjK$KaP(Wx3B7HqWT(M} zI=W#m>}5A|FPoJ~vfX0=S=sEezI;Z>XYoMBmN-=0) z2Sst9yFNuBfjGV&1j3;)JQ9k;GIIbo1qcZ;Fgq8BL~zPYu6~1nX|{urFoIJqoHyVF zrTU5Nc|w{B1S0i}a1i7}28D9Nl(d~uBw7xPZA{OXOkX-VDNzf$O*0+tF<#a4=S$Ox zh|~8(^)G6sr6;1U)sy9M#Lf#)h-Ewd^(KuhD6Y%App=TEu+6%WPg(NSIx6r*SR!O6 z8_xf1jq>}Eo}^2K9Sxy<+16}z;ml0!#d$arJ|t$p`&VftI21_>hq8+=j`ylFo{;6W z&-0n+2<1YNSD7ChgZ$Ido+k=C5?|xTeqwCbf}4^1 zC%frqA*YWeY@FYpj8v!%^XrRomY($VAFNg9n@AAe*kwQ%49Ds7*HNIMaHxHze7&Wc+`1hBGK+`R}6 ztN1i)^3=_=I8z*N;0PTfQmH-aq1r;4U7hqIP&{zqfC}QWx^+MNHo7#^yxDlsIDniN zIO6y&6vpq8nXrfrj23a?wiM8<5wd$l8M))m+l%70n+4M?^1Uc|0)J`wsV*-*TGE69 zp|Vi2vk?~VxU{_I1;U~61B3b2AB_t{edJDj=_^b|M+x5#EkP9Gga-o~gIFW&R$ev0 zRDgOTz8_FpC`kDD*>wEt7y0|wPx#-@ra)W>Q1%icEzHUq6`v3ZP|f2Ksp)>aycs#U z!eM!Zkt)8~MP=m`l~vU>fymcLVN5+nwl?Pt5geD=W1HezK5(FXp^za6iVgEQ z;tQ5T7$OWE93DcAe+~MAK+TZAv-3k^D|IcH@BVW`zn1oq7w!{%(rTY9z@Xwgp`&~+ z=8M$zOZ9sQ^jm24^9x1O4fjctJSXtfy9#a$bY{Xj4Lz+d8dbHTLFvhtVwHr9D&rmR z@_C|Ypu)AR7v9kEJMJ+M4FskAm=_WlZpJK>Fr%a>P&>3nSAo{ktxP&Fez>%SjPz72 zNjslseMHANOO-MvS~BBX*f>Mi&mcLK*H85;(gXpP1{6wlxImJL>x81Pewg!2y)XB9 zBl{m)lI;QVj~%);D(*p|#i9l651qg*!8boX3RQBkAF<)eV^!n!INKb3&x7~pZGCWO z%>!1}w+V#ny)7p=+mmm-`hEvN;l23C-OY8av{? z3ZBi3uVlV^U*~hM`5~rl?8OpWp8<`q{(P$Ua8(S>o?nU+`!wl-FdvQ8DXU?>Bc197 zKRTs692h%T6YLo%uRraEq{a^ifqW}dETq^M`R(MJhNf|Wk?nkZrGN>|pD+!dzSsXl z_};e1>17V~XbSz3u@qC&o~c)ej{B)+SbNUI$9e^HSr)gwVo%vUK(`SeP_pad;_tuy zkz)?8Udp;=uYj{QeaNo_PxL6EH%&43@32Zox*Jnceb7)#uvua|!C+oq*A^COCPYk= zP`6vkNI29IL8OZc8Kh);DcTkETwAuK7EajqXBU~x+ZDIG%f*v4#1oUfZ~kd=x3sw! zmXJn|2tKLU-gy{Z(c^0%Zc9C*-CY^#+_PF$uECxU9%kC}IZZmyxK_EC^Kao;?EBjt zK$dxTF#kW#roUvFQvQDek%E5(5bXXw2MhlDdvIKO#1sBsXrdsbAS+OM6b_tEa5+WA zzL~77=_QpZctPB$$f~y~tRiLj%y%uZNFkn%4m!766anWXm)XjUqvIc2Jz()`q6(w)}Q?L}&Y~m+z>8NpL8RKs3_?bHU5e`(TI$ zD+fKjxiAPq7npq@!cQ#Yg+-*bh}4?<;xhsm`H<)Hb+SKPz_58|)#+g9UI<_{W=CYl zuKEX{n(S|d*$Ad>ng023Nk6wQSId#Vz%Kmjz$H-u%gde8guYki6(62vd7!N!Gz9Pk zImd2={_`XV<5p1ErPn?ykUW8s5*?F>6(pm^=hmPr1e(6ulkF4F<9)sl<=tRS!%NQC zLWJVJul>4x@Mx(obga4r^HiY2I*nmdFYvTOUmkrI?lWerVGQbC?qO+Gy>hUPO*nc4 zaijV1L&9PLAlq`9^Z)T^|C>+9#s!KSOva|2Sj|REBg0>Fd~qzjLz&`ZLdW|AVA(a& z>1!izP2+?PIi`Yy*lVZB+)U{4U?~|XR-x7gf?-FS|{;0b<8J|Z`tHi!`$<& zl7~To{LxmTD4ujK3Mx0Mz$GxTFiUjuc5Y>k9Vlol^yW$l|GZajvEK=zXgmV6Vn9>h znqR=zWTmr8YSR^aiK9J#a;~Db-p&^?lxVb8J(Wm(6g7T!RJ`0@YDJ>fUwd*boLTZf zlr9HNw2WC{DtC-h^7>zS@^AUz#7+CnqYs>#Kf7-*9G8=<)NOUQPI?wW*<|(8%RB!F zQ6-`A+Zio%qBpPk(Hjn%K4vqlO#ak%FYNNAPSx+?ljM|R3VUljL4w);ed^n=6rPC|CYWww(kpQ@5qs{@_-rgz45nI5^f zTg_bg*zY3*k(F>)EGJB4;k(oa=>O zjb3rt)_5|9JCh=&k#nvx+5UN=wlSD-Tl%N-^n+aza?`-SLG%1oloZXRz2GhN;q=uP z=;dKB%art%t<-&gIP`A^3gfYT4+XON-SPZ^$oStQ=Who}j7HpF?T3IHITL7e0{Tu1 z3X6(?HmARTdTW0_G5$X?lc%6_B*Yx;;u;CMygswKwY%-RxiM1%PMMMJAj zc-&K^4|?=_srYYW;@=H&p}ag2tg*={{y^SUAt5z8g#cjN zbBbbERfLL^H0U?T<`#qmqP;P@r3En3aIp2Dv7ND9NT47N42FCIBqW-F z!N_3@8%hGYwl)c7o0|_E#-b)y55ECMMVg)Edo&d7hBrqAsee!Zyv8r2Hvc^ z@K--I5-Z8K8l&P7?+X?+-dmyLll)dG%*;tEMEL4g62S5Yn`p@vF*uSz`i}@7pdF4X z%h`R|l{26lia23Im*C1^<$O-jhCr3K9hS2GT(V{&E6pc${nh-}+cGrZI)+tAv%^~I z2$z+tV%Uwng{4;s^fo;iK3gk&iVJ&1rV#hduf^f(pX{|978wWMXr*~q{T%z`?p5<5 zbr{I7KOh=Acm3Qqb!9}h^GZK`0`yEHx)-n>mHAo(^1%ZELx#=^*5;nxELpc{urfD8 z^l3|H?&$n_a34hMEQ9mY$f7dFo^z$b%&n{Eh9~XRtOk+9d=|ybkRC4E=_9H8OVvXm zC)Wje+()EK(}Oy%89#_lQ>(*UgL?f1yyu)2xWM-jI`^$VKZ&)n1W>wEup_TR$PDYyGtCHhLJ)3 zK`Q3`*h>%%S#`5RICot4Um`6~_I|82TnB;)$0F^2#>9hgESiRsgP8`6 z{nU&^V3_?NKnKIf+fEv0NB{&vgP1KDqeDr7m!zQN71Z$eb~I`a%>tJy`6dBdgm9yY zR~ycfk~y6~+Jt*RmVk-yHtRAZJ7`)zBHg-c>Y<`7RVzK0)0Eh#{}q?4ZLDY5A7S3FgOriFP^kyZV~t$Sh^W>Jb<T??s z!|3kON%FiO5LjJfOAq zCymGAi`ymtVR-^Po#V^GP0)kiAKL%o=>RAK*54o60Hg@7a#S3^@+9-%Qk0RbLg@vC z6a`@+5oKPU+@k6l1fDg5RVBHmp@3C{2hWot-PoBHmGoZlxM(0ksFJ9oh{(F>$)(rcfV&E-eJFVXtR2_VanL%uZ#$ z!@MdF?LK3%VH68A@{+`exS^9>zZQtGqtJX;Q~-9GVL)|p7fpjC$@H+A46@RI8IKTU zj~*@+^EtXoL=H$R+MDTO=b4rdIj)&&k{JYePuvUuX9scksAb`|hG;_jBumAAJg}-y zIwNF2G%B&Vum;~%38hqq`6zQ2Sv|5jeLt^~!MS}Sfw(sAJGuKOBW7Q9y5TOXOayoB zR}If-1}`&Q@s4`dx$Sq7i{|sosxtN2(LO_jPUXPPVl+&EXmlRU1!vIbt%U*2d{w2Xq_wGWvU@ zx-jq>q}q(WtWCwitPUn{>329%+$0e)0#1kqqiLk{MC?q2q~6?EgakStj}OmgahZwI z?;SLYVQjr&>?xtAGZ$;>zBCtSUSMJ9>+Eyz;9rUZup9^g>X;#rTR5I}|JUWcPebYo@^-bk%Z0-b%Ak@0< z%Hx4Y#`b)P2c{iZ0zzVwpcxr`N#hG8O_6923$X~gFzjXw8s)o20nhD6@owCPHu5%H z#Pmy`QDGD67tt^oU-R{;bOuPhT7eA^G6Jt))Nl1TUxP)2;~K;g7BgG5IE>0wW0(z^ z5(1@yH)tcYwxM;3`I;f`eAq_oOYxv)DcBo zqK8K6uxbe=eZ9g4`*ycP>|GjFZC@J=j5b4}vll9$jJRLzkQ5iOI>KehVJw;`HaKW1 zYhQBdu*Rm$|9qE&^nLqBqZKnUTJKbMcNRXfG4oH}s@zk5i+y2@;Vs*q^W!gMmr;E< zJG<6s#(~dz4eo_5^6TAMR5;Xl7ML^s>_|t;h-OoV&D7WUOzx=d!^oE-E}wRDznK@Y z^)~p`rtjZjfI)>P_`U|ZPrM*Wx$|0ui%2z)klY_$x_soiHR{ryzBn342s{`jDZ_Na zfb?VyCR{@>Pyio=5nZypyL;+KdQ`~EgS5!2R{6g_I1glJpl1e^3Em?b|N5Ey+v9lc z?@4}cS~3Gcm!2;vh?6LA01Cy0{hEXsfItILoDAcOFR{!Jh}?ni z!5S3Ig`E8qEeC?U(E=;MF~izC?=SqqJ-gMee~k=UWs>p5`B+>yzb8nGn%`FL82PD1%0X z?$m(tjr1EA7^DC=7966JqrirQ_vnr5W!yM=FKFO2scyv0hBJ*99{NJ}425JI9vor` zKw8>bQm3k%nqh&qsL7T1FH@S)U)bk+K(ce4L1b|S@|3L2c?jyH3~IlU51c|PZv)bQ z{H;IW)@vi^AE<_}l(Uu;wLIw!^`?s)H4-^~%2v01UFY{woj-KTFs9!Tr#*`d{iPk>}IE6xXbY2mUB?9;bk7ZC^d% zOk3t2m>&HG+-QRPIJjSD-pu12Pt>=YocfAm6r+16E=ES`L9{;CPleRS^pdq>bSW&k z)L_X^=4NioI{TSmwgMsb09bM+Z%2S~uhh3FN;?NWAYScvZH36duY?>8X~AKXA*200@@i`e9acLcxT6R8v4sR=iQIaB;g};c9u8!piDj1h0Ohhig^C|9BiH{l(U6XJa3( z*DdB;`ll;M>0b`sxZh(@>Hqo~1jb@wQY?~HDJ}V!_``!2%ql22j&v24B>{OZd}(=I zOxo{2*XyR}RKVlX+yT`8BGNmLyMlmo)tdD zM{)A2d;UwtB~W_a+y}+fa|5XZh86F^XK+Gir03paTGjLP!H_V7*?Vty@)p(~Oero2 z!{an*AOLWS^8E209$fQyWxjY+QDCy}B%I&D)L;$9C?mc<{*1+GoE9(l_v9M21x|qEbiOy2!%(Bp<)I zXvPEbG>%-15ygQ*Nd0!p&k-mpPx0H=@Nr!4OGWW#_1>bC(jx9lqD*riY)?78rtc+G z59kJK7LQIJiahzO5!^_gST|XJO_n1#6b)tkQNp+0YSLb_lxjUvMk1bkPH$2f-QSu^TOFq3F9czZ6CaCa=^Cx@%St24zd1yA40b z)+-D;dnk4ez35YG7WRJg&VBf1Va%!^lKA|`oX_>BhAA(=m$#JY7^b6W_kGQ4*z~T< z{(`TeGzFc1X}n#T;|1@Nv2;b5+VA!=5%P+4g&F9H*6&wp$8I{NGzdJ_{PXSFmxU5# z>BO{OjU%sEng1As1c+1jzI&}mQ1)I6Wc(ULPJUH5YzbF;da!f5+xw5~*=`{qb~?7Z ztf)|y?dVJ^j$z`get&H>+=Et?I)|VThOYIv);`6F@Oq*?%rU>fC1cr?YSq>woqVP* zP0_K$sWX-MlHby#(ViA=EStiCrDoIkUD}b`Y)p^+Z%=KS#A_OF=wmHd`C;M1{CZN( zJhQAVs}71)M{3ssLTWSEM-(Y&JBwg*Ic9b&iq4EpM zeuu6A?ZdLXYHyzii0JQsy5Q&d;wvl_-vClor-_mr#2;7Wl4L-snEaGEbw-89-iBvL zxUP36!UeyAs&JnQZYpk>f+}rBf<^CkKRfA>(OGh*VegYtEp?)WaY^BXvip|i8ls<< z{PT?JOnz~NLd?C|y%A{E$$~$h)jeAH=99UuclODH^J{@g=Xk!=tS?C>zDNswch+Gt z;Ym#z|9*<1xkDP4=cHqCvCyP%=Wal%`}W*In*A3ZmnpmNwo2)4-|O~pWM9knv4FW# z2c!O(exCe+Jv#9FHHi{S!)( zi^V*5nud$HN$M?xi2(Ji3uqxWXx%tBT*K07F;iA+SvWJe^9jW^#$jnGm+CLNoR<}A zx167sQ?Oi6RK2`hSlTMOQWO=hnd4SHx@=qWmb(tF_hqNEP_%ABpr|AZezFS!=-y;B zgSgXpS&g#BBdJdY>1)-W&BPE@^~zBaY&UFfuj34BO9`(kh=u2KvxM(C)Xk;>B=1!V zNXhB(&T>%Qc6abPa%KKfM}58AZ3i~l_NX=F4Jp%C42;*Wl^)fE<5q*;f~*T$L=k-_ zof~v*koI&ta3C<|}Bz`V*gYK5%noO5@@UzD~CfkSKtM9!}CVsT>P^+qVki_aX z#BhXR7`6C3R?#FIab>&r(JN$GOLuEV3+oe(6s4}O>u(ymZN(fMrpm-oWtB5BJU>23 zF>kHnOzG->^xt3U-N(%^>3P(VtRNmpZ7VQ`>86gYkkwPetm{v_tjQ^ z&8xMgXpu;@gYp;5)%$55*(GM*urgOvR6p&W0qs{?(?%GOU`Kqjg16uzxMD)2Tn z1E$|DKLmz^Mb>|Mi3OsY0^m_#Rq7vz_`NBSAOdWhz0=`zsAUS6WBq$DW-A!XGI`s>r&<2s8($O=TD?#q?2Vjs|hWg$7nIKvL^dauEzze{Oai;JaKX5TyqMDO!WjX&H#Fe-n-Q9c8qChMC_+jX zi*n|cAwe%m8O{uYehONo@n?Y?O;~WEq8L)FcLRva%?{WLPMlykz5TS zOsl(bu`2((wPDfW%XBg{w>x`mH{nc3{-;Aa^rI( zeh^n#7}?+Qx;8ArrZC2s9p0Yh(qXTh)|2O|dqq!` zCp@=vP0uU3qvTSF45ymG6CSk}$~M){o=iOH-d2r@Oq|>$-Zl4jCi(;1s~gz!h#-43 z2fGGJjhRNxFWdmZ`4XyyqDxHDhiFjKGqd&SbaT~E=&T}b%uBU=9h7X1=Cd4 zYcgp^BiGwfXusIr&fxh z+1fsjp%J~2Cw1Nz_u@i3J$*Ify(Z)&w=$*)JdM(SCy0)`r9Y#EOh&b>+GW9vF$;c`PSGUCEBFGElnh$Wp{g-c!e8aRiatN%<0S9JD3 z;jIe0ubox810_axY}qc68z3=CfyrtK>|DBj=fzXWZw7>K6&hA}zYC6g_3b_PzSp>z z=QLei-lE;l(rAA37(eW#)Mvuw7pcb5*C)o2G!}&dD=t+}-9TNRlXKJcKD`E5)TQ@7 zre1kdy*5_+cxB?#oBhFm2~L2#ek?dy{jD4Pr@S5-M)~j4e#&tTD=U!n25ML{a)Hx6 ztB@40bV*ezE6~C!QvEJI>lL=Lz9p8Ir{F_p7>=aS@LQ=YLJnc2Fk>SFUxtvt(@F|8 z&kTekTP6`SD2Oj~8}RyZAy%pWda<1f?H?ClLcBaFk7e6ZH*z+Fy{(oTZ4N8bf=+1a#{gjk|{$o%Ln zDyX2b;WkAC&=>eVq;m=&@x3;N|7meSN-4o_RuR$I zE-8{c{9@5(I$Z!V3M7v#lcif&WcABhS`3q&*=~fG%CO2B0ak@II!q47&S!Z+0^otHloch2jos=M(SnqCk2 z5EL;UgqFA}0Ut2?!$5)mlxzc{)wf8kz18+jc|)uHrQ-8nQ&(5pKbG8jyUT~ay`~`M zEvxZi!tv5qINQKG3Hq6oTjF~&0pSvgLu94PX9O)B)s%)#hM#5W56gS&IUj{LFB=cT zYRFHNn6g%$(goGGLjtd698UkispNX`HUl>C89k`f-;-rshxLYZncY>N^fKe7+)D4?K3gR`-&~ z183VfCmKI_RIox1lJ7TwI@c{WRz5dD11Ldt;@&XL^ElAoXMDgZj047t&EMnYKb^w= zi%Sb*<)QKd!Nx$=Tzp1$VIfe_BjT$f&ML%OR2yHy%Y($dW5w6hwS+f|mx$nA5h_1? zj(R1+iWD!y_l!jJ`wrknkE=^ZkO&e6JG*i`YDg$R#93IGLmqD?B&aw9XRhz@or{JZ z1=?fX2?xDLKpCc$;rH&PgM1I}L?~@)UI-4rXiPSg-GI?C(Ek)``8-98${Kxcj|VkF z;!~K6Jn@r0YRQS5Z)fTG`1SA5h!QX3qh`NcmWks>+wRzA=ZQ;6A`bcrPSLU)$Rnis zS55_yTFP(Lu}^AOBpjWvmz#~aN1%5~?;P;bCJY*jpA?P&*JN4n+((`%Z{Dv5e2W8Y(n^v^e0!^uYU{=NJrz&QF-FF7--O>i z++L*%6uPQb@4lWqHRf?Oum0CY-x9~SXFq_{wWr^KwK?A!PH5DNA%pG~AD1iJJw>_* zx(Gjx`Aj}AMk_v?4@Rz?q;x0P;DX5J)ae%jQ47<4NIj*K6ghO$G>&av7;8TJa#6tF z?*wi(LIvTH)g7**Kop2lKv>KM|MB2fd(@eE5{5y~;EZ{U?+(QhcDvlX;fkhzf*?Pq zO|6wZgfz5Y*G^0$Mo@Si;gShJ5!qIdr`iT>A`?awQK zLxvsq<^>(6B%qloc&}72|YYgkLCF0w;+I`o1Uo#ARK@V9=%?_CjbrY-Y-L- zdPRaf8q(e~z`na(QgVPb2cQIWk*6FpJ_LvDv038orU zoI@!KxqFZJ8bRVkE-JG2(;-R3u!xapD}NYS1|@O0r0K5#jg@&f>w4Zt{aUWVb6w#= zqXJWTuU|pBq9YYHeFb+u4o(kLzZ{!rO1V_ypj+Y2!X|D>w4PvjN-w{Wq__dJp8UzA z+(THW)CbW@E1VxLxmOY>@UR5xQnB!vsu|3Cg*#6FOYWtM^SZ*@%NqIHqMQvT`u^^& zHGDiV>d^JNG31Z1x1TmCQ;8m@C+w-!b}UKK!W_^$kL_lHd|XmWUO$}}p15#Q_>S7! zI~y7b9y#65AHqn!{#y<|CkJ25E(EK3^m3m?Y6Px(!4 z&h5UZ8Lt;XJEv_9v922p@u#M08eLw^6Ea36hs?d&Hegqb)EV=JEqY5GIRGOKg9b+!Fr z#1TfppMjb*>WsXsx4LShzqOGBt&7E%WXwBa&RpM0y0vNbB?NO{A#`-hZm?J^QZVaG z^=h-9#+cb`t^V5ADDwGOpC5`FS_QT%XT95 zmVJtf``X+Gp#nYCw}F<@fx!Q&G5K#Gu}^g1F4(l->Z7Y@e$-x&cH{Y!(<92%7Ga}etiQ}G6AHY z4G09xIsa*?2*b{{^?k#43pYID|Ct;51Pb{nfTIuykMU`KUtICB}YA_a{*=9{noHAEeI5>w>+-1wK6-qXJXAb_U9@|A2&J_SZ6eRe#yBMf2|oAi{24QQJ+wvUvw48?3$zq}yFFkQY> zBY8WGBm+Z1s$bozK9aE_=aiJkNc<@AG^Ahx0nG?|FPb$8oTfZxme% zTLbKh%5!@DffJwjvW_V4yD>E)znev~tJvVS_5zn!z=GlMFg8(CWteCTDlnc35ql_Y z3Kelo9b%N24YNT+CE4_FoR%g~pDZS81fMB(pt$0Fxh27vms-qA>&;1dvCAF9vvE2f zzb41YIC7+ZleDC@rxOMRZ1due>Wr{2?J7}WB*BA;lsNg_Cx~H42hf7`xx+=EJ$oa0 z@{t!HvWWDH@(%53cHcx?NLL_kg_-he#d%q~G>Ap9#1fTuh}&U*P%2F2n={+Cgt(Lu zm+SKCHbu`JQK%Cj<`BRhOqC0a*BE8Pdbx%u#dz~6c|Wz1(H*JFBg>QAeV1+(kBOp@)**7Ridp!UiPyt>r|33EN_)J}02MRaa((r|9}3r{ z?875*zc;%c@;;@6V$BuVCrq-L2OoAR-n8q}mi5b36*^vKr`9c%VfR$q{As)F(_8@J z?>UYz_|yZ0&+$G*S&*1m%JmvhkD=~quKwd+@2qK?3u0@Zs`Dn)Bdtp*_0LXa%&ZYl z8)g;mkWBG3?J<`<*To%SLE5EuxN_(Eq;uZgHA$;IM;m2O;;|gm{$940Lcx_FPS?qA zJv>mlf~xAy)B}3gy7N?~nis5`g0Js=q{s;+M&mf6=nxp;xDp`X|LEMOpVU#0Hy%V9fBNt2k_>HFJ2WaD>a159)M zVdsK#QxHAYzQcBhsAoq`b17G=LdD>;?N%Y(ygdva8p3*8LKMq^Oa318?V1=&OTwlO&&bmIC}nJmcAc;El2;nCrJAShjI-= zdy#4_67cGp`h}sY9gXTk#~v&i?hoFMeI?=qZA-lnJ7-r*8!zm-B`BnlYXM)mV1`NVyx8TmBm%5xa!i~8irjDWju?#603m@@rE4DY|b_x_cPGuJO3RbdxopEUx6?EOLI3ZjOFGNV|JU)C)xa= zQvj?fOs+uX-y1DpVA_n|GWm0A{xLB9$MF{}n3|EKDDD#Y$iX48?-&CYKE2sPv zTx|{sT*nosnnJ{OuU^n_cIZ6K$1h3!x_l3=zTGf1Bd49+;l(SLeL-E#6dZ8A@3Z(( zkdr}Ha+FpSJ7lp%Q)WM?oo{=U?3ARhKn5b-us3y+?KNj(_b~VKSG1 zx7XnNwHaR%%lGa<-(S8PjtL0wB7MF(I?tOWb13WD0zcd%s>0+XZM1!D@0g}lvPR$r z-(1Q_a5Wh%p8oHxBy0h4QeS@1;nx58_&DUmrPV|$$IXGsf1&u_1C#tB zJLEqD(=X9~O-O)WZ}X&?f`Yg1r@#62{$9==2Nbr+;!|(k1X6yp*#$AEV!6VysA7Ty zs=PL=IKQ~AnGR$sHMP{`*0gV)wD2uO0XS>~;IIL1_3qwy6qa8I&@N%JfK2&pvbzGy}e9%isWQpD?Zr?L1djDrm8< zScli0!tPk=DK<+9KBVpI^gPF}82wsD6WLv3J^QSO@AAc&Ruh6rR;K#f(dcXYE_#T5 z@?ID$6j3@{RPTH5<;5E*r}j3@d~j`+u}ABEbA@PLcubJ64h|dpT>RK2>&EvV@Sn6V z9YMFbOecb2xYUV2o^Qf@v6~NKomZ!iik@5~hNgNB9}5?cC>ppS9l6_q z*_NY1K+4&#IY#r9FXmiS!wpdPqLExAcP5`@dtBAVuq5=otTZApzMiL#0ya=J%ZlIY zC_V41qwc-K-wIp!oMqx0aWdh6m)S&$bAgO=R7d^dLPiQ@slZwMu8mFbYCWeTj%#jd zEc?L7QVPZhn2_v#N<<3hc>jCjaTBxT;-xk>Byu~`clm$qP9^`m6`>$NUEe&A{~Fo< zsjk!isjeq(m7HznsBWq2Wkj+dQAV)5K1)}wxvl|79#q+NxASJciiCvRz5Cs9M2*(1 zCc#3~&=Bx`G!R!qzPvv?M8FDQ78gYb(|2Z3K$D;f?DJ;`20Qh3aCS3>2T@}}B*IX< zUy}m-Kn5UMC~Vs{j043WH1p9V@6<*7ejc1=%&}F_eF}s@ge&5RhNg#R^_~jaRAS5{ z;9u_6_F4o6HlMlm2)&w=uj=tA-IGKdgNHF2w!8iI+ zp#drsd>ExtS!N4I{+2|bOqmWHfnJlHrI_UGyHv2!;?tGIS5Nivwg##C!^_Wk)vV!7 zQD?npO{DnuP{As%LZKhx%%a!b0Mzwd|8TP@pQ8B~k4 z*_XA1cX&N15AnhK82iaK$sgbPzhvJC2Wd@ShGK1)v^Otrvgr(!BD)(HC0T;^kG(b| zhDu!_DFiiRd^S|TUJ6E<3@RdO+;^$#x>q?3e3Yl&#W8J5BS^umq_p%Vr0Z0Min;HcB|g z^!E5>ijJ;&xIs?uthRPZacwiBW;xD?&RwP^XuT#@{(Rz+?j#=|oktI}UJMJ$9d6Ix z?z6fh7hZ&z0cRkwvZoGB=2%bet&u`$7C-GS&&&!r3$X!V0MOl;TNof}y4DUxw9)S`hMm72{S>oxa{V~9SgXdiosyb>n{OXQ=DKa>di~Ql_h)4P@R)f0 zN9?IB3tjZJkIy(i0v%L^R30CEXrQ3xpxWJe=iq*!}fYj54w}n zs|&d2`sUuCph9Xm&u)lm@9Jfe>b^s@Ln=r1e$u+neyT=Ni`vT=l2`ZuleDs{jmGLr z`S{A&ThkhdZrwYh2P4<)4$7D+09p9;iY#Br0EJyzG6Y3*BXR$bPt9DoRrUHT>p%~4 zHuGWvbud*V_sfg&fP@;U*z36uo)xNLH5Fv`(S26Z>?TZ~9&7BREMJ$Re<$E(SJiU{d~);9(&2KP7lH zolazI?o%V9{{BCY;ffqnMuPGvzk?{oFm0yZ@~%Sc>%YX6dmGdxV$-rHPt! z@j1V8Z;7G@?${keK2;Sj53{0?8a`o*LG3y!32Ls<8*_n4aqW-gcXGARU^u@xX~ygB zFs1&++(4kY?X+zJ0}l20l$`1mB$c~Itc(H2m&T0eR= zTfJi4%~KuX&)HQ6S9nwP;J-=m|C0>9;Q80q8VdTeR&oJFYz=z<*IJ3Cp-9Zyl)^Tx z68W2JrJ{A~;*#3tl!~gBwq!h65s<+Whz&W9HuEy?5qbwgfahqa2%+iuJ#l`; z&FBz128$eT6UEGhz6EgirCRPc5i?-u*r!~=di28A_yi13R{LR*P9AKEDF}w<*52vg z_v~m`kN{A72Qs6!MW_APUqa-c+Y!$qJM0E{U`-QrUiF>C9LKyQHC|&I4(2F`uC1)^ zq|YwQ0STet^<-M!QA4$4M@tpzYz{~<%>3bl>CUD|XrkA{EA1F~^*QCF^ZgVSSa`?p z=Z;Tf5<~5RB(}~544l(<$i>U;rCO|S2fipdxph8MYl#%oAa`ag+ zK~4xmzS&lR^Y~0tf*;s^b~nC$=F|+Ok#%q++Eql-dwZkgC>P?xdRD7GZHo80;J*A* zO&{k&uc&!^7uO-paw1MN+7~JN8GGKnagiLbhXkIHf;PmqVeCIKMg>)?@GU>|-%m5t z){gFLT4k)gCftAuyRyk6qPTRDB8MPufoxvj7vMf`%+h?mWo3op)2!9o}}QtPip5z>U87U%5^kzy19@JgKshtJoO($ z>FU@wHTrPqyKc6Ziwihl`6Q3{*=KI7FSqcR97fvg3azF!o2^|b!Vfu8)z|OuL z67+=$lP-m|bi6@kr{)p~#wMh2rFGP0&3H zMOj1~#w{n7?1bS@AbXr+B0y~od{JcYh}#etRZcnq`IXE`Q}+5q<}tX^ESBcn<#sat zYOEV2fbpRCb+T_*m=-egobJ2qCM)UM z)sev$$S%f+q8;UvUkg}*z@?HS?#|V1%xF@5+t&i{t#x3b*}ip~Dq$@uAK@g=SN}Jk zMg70i-L?opB=9_8Z5`%+tS)2!iXFZwh{q=Zqd`mxISsf*Gf^lhiTsk%I6S+osyb9q zO0clzFOxkTDc&JPC}?bZ91biGp3;G1{E+ip3W>mgVWXRYUI=8ti^n*jS7QJn2wb5v zv#s5bMF#jYbYQhf9P=8s%p@9JFXSH#y*7$aY++SSmGJ+>%3Hx`sk_4Szg~qlnK~Fo z=aSb19gf6zf}qOux%~JE$v~L3ZveGV;9!!fI-g2P3{YZDxa>ZlbunHu%D_b8jfMef zZz%bqw9x*#r5rDzbBAA%eey^N_)A_AI;zu5FR(mHymZ+x%o+5XB#w|tep|qgOLfE@ zbt*r7Tn)7wXuGk1-n(Ja1Gvjq5s#RHe&71o`Z=70_a`bmaF-X%6Sr@dp4#}7&kutO z%6sZ0oO;HvY4kE0`ACG;xF{Qx>olBr6+0f;aPXU^w{gAl_I(va>kD1YY1^^yn%u4| zh3FwF^k#H?^}Tp)l;F{ zgfFCm7$X{V%(u5Gv2?mqADiK#FUtu*JF=#T*mRR=+gu(?N;pB9&L-jBg%d-_$^OTg z0tNnf`phNSSw98rKyFlMrVS@%xW7n>HL&5D7rsqQ8}U2-shoCa>>fQEMB>pC9Eqf( zI@*u~vy)BdllGpJC8dUVJ4vNk{$fgND#kV!r0uG(oldmVSy8vGm%H8zhzk@$q5llVE|wLQLGU>{7b84Q?qv30)&skcIXs&SWKQvBq6pMg=~F ze^}$XLHCvNriGG~iaUP}vq$A$gz@lk)Xk`E2Oie;;duvYUf@TWwN_Ri${PB_GRl-+ z$bX>ezO2c8&@g_2WZJOwtm;7hmbyP*QA251>^jBO*!yhNQ|V=k!h3|81#dTM6lodS z`W;*L_TKw+)hgnxR+8*a9W`nu-IrGO%i?g0mjR*J8TS8KQC~-)=?W%I9=m10~ z?4Dw`t~|fw#p*H@&=Owp^M=(|qQYvgjVBX%2P4>b z-qmVY&(uosmg@SD`vMLzM^`GgYdk?^oxx#s=Drtt%z zy1~#+!sb0#Mh6S_Uk!_(MjlbRvR)5ePjlcit!vB#;o*z15`Ac|d( zCday6SeA&_kdP<`aw^Jd8vaV)U=zf}=>$~iy#j#x!-PP^A8~F0I{xN@dlbO``Ug_6 zJ%hs@}6fE@cT_RHCLlhYI_DhVO)%Lnx76{P?G8VI_B9b7Z=pV;Y z7s1*lP-)BE`Rz0H#tIaE8M!-)$?qGh$yMd?Ri*JoX*|q zH`=E9^-=RkiNyAsMOyjr<4Uf}YqAyw+);cx+)eG&A>h7_koGGI)`sHfJ+3EmAg5fN zfA`{bT%f=PQDI&O+sC$JpmxtLA0MSyoZSvDLO)B+v6y-o^%d>@1Lq?Nj`7^~tJHtj zg2A<&Qk{KMRqU=@KCqHeyS;l|8c#D26>JE9KIHsd*r~PM@Kvklk%s=0Rp-adBA|sa zcltgKi6as<>;nDX4yTu%di`ohW!Ee#?;?I}&*$(DBZ6LyAN0Su=^q>#vv8pLpY`}K zq|nY9m-+f|O(HqX=;K=#vB2Ma4QFm_cmn(mY}w=_iSK0LL1-HvHirQhcfB7r_G-a~ z&XAx^8}f3#zvxF=B!Q`g0N>~M;ZIrx3{#R<(} zp?wyT42irdWQmIiIAn@AByWBK!S?CcEt~5iDsKu7>2m2|h6+RE^6W&@&*rb#UM3cf zX}jYJ4(}+YMqU?AC=4wAxb*+M9R9C&!+*^9zyo+wgfj!(*!s(%|89+qk@$PKK0^>K zA%V}#OF;<=?#j(Cy@^7Rv&(8?P((Bkt{fCI&P{)gQ26D=Z9Enxl=e_}aqeqQII~yKM7djhh!G|^#9QuS zvshJ3{KEvz%kXo=9C~m33K98oqx$?4q{_Ljl@VsvquV+W*%z41xi;p3TU>JioCV`D z9U(i6YtdXAQ2%i?7*};QpY6*%E7tjFTE7t_)N;DLxKT<8^$mu@SqzIZSX^QlS60r4 z2aoxX2zSaz&DnIcmi2ns$7)i4{sCT2X6$9g3q$=Q_^eSO*RDFVF}+u!>s}L8S0@(4 ze|%Y(s6Q0<==As+@kLwKzTUUj{KC4P=J6MLZ8R?Qjc?!1A7j^e<>NGOoS*kyZC7rt zftAx|+FCvhy_tV}yOL0@&@{LIr3BPqs!_*+|Hl zCROD;S+Mkh%k-rCCJZ}d+c=A6X1fU+4_`3&^<Sh=HE*(evqOfh#$~k86XfBeM&0U$t~Npq{3sR&0Deeisz(%#rwc}I&JL#NzIp^ ztQ;=$?S30@Z>q}wpi)NfVqHLwSL@_zQ{dssvG?_m;NJJ&e^Y64qI8o0$B@wd;gSDd z%^u-P{!8TnD71g(CG8>o;Whtn!TO(!2_RUj;8A}G*7*3s@)s+G;Au?^^JGa z1PQy^?r+lI51z#2&^7LC8Eq?2gM&a-4)2R6LqouzIExX1iod!$i6YFXz*b=p$n4@$ z;R=Bt^XbFKPirCL3iXFOLIEqr9jIyVMEju?^s1l(!hRnZhc~c$tQ-%D0;@Zpl*yST z0jd~`Bl~fn1&kE>eA6%IcK1bYfukWg1Cp?eWcysQgKJSQKV@Igc9put)69^`y!&i`Z#=)4BD|S6}O9TSzPi zS*gEi1rc8BWA>z0*`e$dtfs8rdCr{aL*F#sWwrW!S${Puwtu+BPjFI!t-mxLF{h@_{UiBzaTt0V*~_d2z^XN5vSDsFB>?kl^@~oPBs-00t>Pb-XqA~J5!pu>AzLbltO->EnhIyZPaG|v_0eP@1>)H=wpnQk9 z#sx$T5Kg2b8KVaT#YYeonZG;CYm7|m`OaZ>fkmAt$bxqf2RFls%06}}HvX$>KE3Sn zAjDjD7o#()?A)ilgt>zcQC8bd@7C8-V}0tqFZ)5i|F{*n{)NRc+M1?LBd1Qm$YgIl z(f$~zzAk%Cs)4BXb-Wv*W~IN@e;na>rQa!~ypD9@h8k+j^YLEhOZ!iD4cH?#F^%d^ zWJy;gk7gv)PlkTo`%%TSJBaz>=4FE`Qq0L3>NJaB0Q4uyp4F1#W!ZN-|1nnT>6?Z<&gEGp;Lb%a08p)ifT)j6D;SZ0dY`Ac4B{K-1@n z!eEtW1hzQODgxqu;eAhy5y&dp{) zT@}Gy%^i0i#|oCpRkpTr`kv6UiT#5^!y|(zBpvx`bOfaaWdN5HmN4CiB5-2>%HR`5 z{LNj|7hD7c$NSZxnL%{LqZlxl07eC5N3lS`tz2QG`}Zvf2o0>mdr6rfF(Dos96QtG zkN}CNX=*ip2Nypv=}H<;!5&7Wusu5>qJxnkc~)`m@pCLxnIyu6aHw{@P1D*BXHBim zKhyt++OalN<4y+rb;b{oXS0S14H5=)5wvC7Jh$J~1B|L^&m(9dJcTKP=mgdJD(}() zF(xM%r=iC_zNiC7!w(6av83!iOM`^$I3lf6M8ouCa0_9`khKG-*q!&kdZc5|8+x5O zkS?&Xi*~(c$F#H&$lJ^0n|Rc_pW74k^gBbpDYY@dEBc~LwToBwT!St>&$x^?0y+4; z4MmcFXEVX~KGZ)Us7{I+hpjF1R?Ap{f`90vypfGJ2=H)Danj%|QtKt_DJs2h&>qSy zSwy_Zhc-P0o!#$0sU^yGIUC5h?LzfK9KPJ{A4kJEhKB~?B!klga%Un{0K*|zG?ht& zuD(P_p^!ykb{-1ri2JVl-f_+ugzWBf9A}Mb!=0E0(#=jx0*+{UuD9HO>S{M>nCN@b zpwJ=(8f@l#|Uc{CY%uGz&Y_(_BdHhM#}=5=Hckg^|pOw7%dq$V~x z?`fRSd^WH<;!9D$5qZC&baT6sVq$25|18r?qi)uL9@!!l7#g;?RFHvHPrsRgl_N$U zm(+BECM7=sio8%=E0sTcy0UVP^1OZ$doIGo)!Lv8`QMT*cGg>2eDDmM>9ly4^E!45 zDZk(<^zJ{7m6O~56&U!3`#cK@-I`zj$$kFgz{le8#LS%Buq~}SuOtI6kGfq{Tw0q_ zsZm|moY+v*(iTUiYskq9-g}%Se~SZ%-MwuFeZ9QmB4Oe+&zrG0uso2rEIm2*Fw0e{0Na;Jn|j~q_Q z!xeYtfw{CJ#m!U)Xok20mH|`?mO)bDHV0R&MT%)^>^79j6>OojfF8r3n^;8aGv~6x z36ZB4rO-w^0>g`m0^zqqicTD#yI49@DSnfFdUvfwSjIW7LyD0a#BaSmHfeD=7SN!O9jd`VX=L0gD2$b32vP)# zDyt#|bt?dSfFM~Wr}1tfYNz0xwoN95(+2GPcZ#Fhp9}!dxCn+JvYpWXd_Y_TAawzF z4hkffJmeOD?1asQVnmi!9*Se$!@!~McS4B6t$r71tv4cJC<~L-<87BdPDvm+6^196rti5;bjlA^I3(xKx^xtjx@#ZbA~#DQ#6^3bnRl}+ zv5%cC|02`BmTYMzE499D4Q=qSFdL1q(UENrEw$Ophmbo?)vh|LyYo7=+<^Bo<~N#s zDC0^A6^Y9nC=VeSGW2hJewP(8tvrRIbDLlt{4s|gX6b$1;WQ=dbXZLq+7Os#>0Auc z@=M;G_kq}-Ct;@a0(8~g_!dv-;UA+G&W05iWM)`23r1JnReqhmCeR)JPAM~%ysN&C z$pc;i?_ZfmuRMQIs*upvUiCqEq+TlWu=X8)L+%-#1eafXNIg5FrF?Ig>QBF?8^MlL z5VQCAi1(ZDfeY#}Y--3__(X80oDGMDK+X_J7-OxROMF&L;>CttMccz`dUg=Gxf+O) zL1goAyO6^37NB5Q87EimZilQ?6fxMPJx0L1Z~OT@k{lb-ryi~2ykSDxvptq^)tvnB zmYuirZ-(s_oo2n)-xzhLs(Vx8rGLqq!gFX(=85OU)Bc z?YwO2tBoD%4!=gSh-h!d!L$8~bUcCWIBPO{&e5xUg!OB`)5D@OmzfSNKIULC% z(n25(iz(iTbn1j~L)9s6{zCDbk(qz#ydJo zYsRS-&OPa3*X?=566Vvj$SD&K()u1eDHUy2T+?n?f@g6TH=Ncsbm3^BSPPzNP+d-a zME9e;VhuiqI8~!Z{ltw=M#>HSV+f^=15h zpds%qjAlm;7kg36%t2YjK9O#uWS + + + + + + + + +GEGELATI introductory tutorial - GEGELATI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + +
+
+
+ +
+
+
+ + +
+ + + + +
+ + + +
+ + + + + +
+ +
+

+ +

+ + + +
+ + +
+ + + +

The objective of this tutorial is to guide you through the training of your first Tangled Program Graph (TPG) with the Gegelati library. +People following this tutorial are assumed to be already acquainted with basic structural and evolutionary concepts of TPGs. +In case you’re not already familiar with these concepts, a basic introduction to these concepts and to Gegelati can be found in the linked 10-minute video.

+ +

The following topics are covered in this tutorial:

+
    +
  • Configuration of a C++ project with Gegelati.
  • +
  • Manual interaction with a Reinforcement Learning (RL) environment.
  • +
  • Interfacing of a RL environment with Gegelati.
  • +
  • Training of a TPG.
  • +
+ +

This tutorial does not require any particular prerequisites. +While being fluent in C++ certainly is an asset to follow this tutorial, bits of that must be written during the tutorial are given in this assignment.

+ +

0. Setup and build the tutorial project

+ +

C++ Environment:

+

This tutorial requires a C++ development environment compatible with the C++17 standard. +Compatibility of this tutorial was tested with MS Visual Studio Community Edition (MSVC) 2019, and GCC v9.

+ +

Bash environment

+

Some scripts embedded in the given files of this tutorial require the availability of a bash environment. +While bash is natively supported in Linux and Mac OS, an installation is required on Windows. +We advise you to use the all-in-one binaries maintained by the git community, and available here!. +When installing the tool, make sure that the tool is added to the PATH environment variable.

+ +

CMake

+

CMake is a utility tool whose purpose is to ease the portability of complex C/C++ applications by generating projects for most popular IDEs (CLion, Visual Studio, Makefile, QT Creator, …), on major operating systems (Linux, Windows, Mac OS). +To achieve this purpose, source code files and project dependencies are specified in a configuration file, called CMakeLists.txt, using a specific description language. +When CMake is launched, it automatically generates a project for a specified IDE, where all dependencies to third-party libraries are configured.

+ +

CMake version 3.12 or newer must be installed for this tutorial. +To check if the CMake tool is already available on your workstation simply type the following command:

+
cmake --version
+
+
In case CMake is not installed click here to display installation advice. +

The latest version of CMake can be downloaded at the following URL: https://cmake.org/download/. +For a simple installation, choose the binary version for windows. +During the installation process, select the “ADD TO PATH FOR ALL USERS” option. +Reboot your system at the end of the installation.

+
+ +

Third-Party Library

+

Several third party libraries and tools need to be installed for this tutorial: Gegelati, SDL2, SDL2_Image, SDL2_ttf, and curl. +The installation process for different OSes is given below.

+ +
On Windows: (Click to expand) +

All library binaries will be downloaded automatically when running the CMake project. +When using MSVC, all DLLs are copied automatically in the executable folders. +When using other compilers, if the library are not found during the build process, please refer to the /tutorial-gegelati/lib/ReadMe.md file for solutions.

+
+ +
On Linux: (Click to expand) +

The SDL library (SDL2, SDL2_Image, SDL2_ttf, and curl) are available in most package repository. +For example, on Ubuntu, simply type the following command:

+
sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev curl
+
+ +

To install Gegelati, you must build it and install it on your machine. +The following commands should do the work to build the latest release:

+
git clone -b master https://github.com/gegelati/gegelati.git
+cd gegelati/bin
+cmake ..
+cmake --build . --target install # On Linux
+
+
+ +
On Mac OS: (Click to expand) +

The SDL library (SDL2, SDL2_Image, and SDL2_ttf) are available in Homebrew. +Simply type the following command:

+
brew install sdl2 sdl2_image sdl2_ttf
+
+ +

To install Gegelati, you must build it and install it on your machine. +The following commands should do the work to build the latest release:

+
git clone -b master https://github.com/gegelati/gegelati.git
+cd gegelati/bin
+cmake ..
+cmake --build . --target install # On Mac OS
+
+
+ +

Tutorial files

+

To download the source files needed to follow this tutorial, simply download the following archive: gegelati-tutorial.zip. +Unzip these file in your favorite folder. +In the remainder of this tutorial, the parent folder where the files were unzipped will be referred as the /gegelati-tutorial folder.

+ +

To create the C++ project for your default build chain (Makefile on linux and Mac OS, MSVC -when installed- on windows), simply type the following commands in a bash terminal:

+
cd gegelati-tutorial/bin
+cmake ..
+
+

To select another IDE, use the cmake -G "<MY_FAVORITE_IDE>" .. command instead. +The list of available IDEs can be obtained by typing cmake -G.

+ +

Alternatively, some IDEs, like Clion, natively support CMake projects. +In this case, simply open a new project in the /gegelati-tutorial folder.

+ +

In all cases, make sure that no error appears during the generation of the CMake project.

+ +

The generated C++ project contains 2 targets : manual-control, and tpg-training. Please note that at this point, only the manual-control target can be built successfully. In order to build the tpg-training target, additional code will be added in Section 2, when interfacing Gegelati with the learning environment.

+ +

1. Meet the pendulum

+

The learning environment used in this tutorial is an inverted pendulum.

+ +
+ +

The pendulum itself is a physical simulation of a weight attached to a pivot with a rigid cord, and subject to both gravity and friction. +In this learning environment, it is possible to apply a clockwise or a counter clockwise torque to the pendulum to influence its swinging.

+ +

As illustrated in the previous GIF, the objective of a learning agent trained within this learning environment is to stabilize the pendulum in the upward position. +It is important to note that the maximum torque that can be applied to the pendulum is not strong enough to bring the pendulum to the upward position. +Hence, the only way to bring the pendulum to this position is to progressively gain some momentum with accelerated swings.

+ +

Build and swing!

+

To better appreciate the difficulty of this task, the first learning agent trained in this tutorial relies on a well known machine learning technique: your brain!

+ +

To build the first executable of this tutorial, open the project generated with CMake; then build the manual-control target and run the produced executable. +In case of an error, make sure you are only building the right target, as other targets cannot be built successfully at this point in the tutorial.

+ +

Once the build is complete, run the executable. +Using the keyboard, you can try to manually balance the pendulum with 7 different actions:

+
    +
  • [S], [D], [F]: Apply a clockwise torque to the pendulum. The strength of the torque applied to the pendulum decreases from left to right.
  • +
  • [J], [K], [L]: Apply a counter-clockwise torque to the pendulum. The strength of the torque applied to the pendulum increases from left to right.
  • +
  • No key: No torque is applied to the pendulum. Only gravity and friction will do their work.
  • +
+ +

Good luck holding the pendulum in the upward position for more than a few seconds.

+ +

Under the C++-hood

+

The simulation parameters of the pendulum can be changed when instantiating the corresponding C++ class. +The default parameter values were carefully chosen to give human beings a chance at stabilizing the pendulum. +Feel free to try other configurations by parameterizing the construction of the pendulum, in the /gegelati-tutorial/src/manual/main-manual.cpp

+ +
Pendulum constructor documentation (Click to expand) +
/**
+* \brief Default constructor for a pendulum.
+*
+* \param[in] a the initial angular position of the pendulum. Default value
+* is M_PI, that is downard position.
+* \param[in] c the initial angular velocity of the pendulum. Default value
+* is 0.0.
+* \param[in] maxSpeed Maximum speed of the pendulum
+* \param[in] maxTorque maximum torque applicable to the pendulum.
+* \param[in] timeDelta Simulation step duration.
+* \param[in] gravity Universal constant
+* \param[in] mass Weight of the pendulum.
+* \param[in] length Length of the pendulum.
+* \param[in] friction Friction slowing down the pendulum proportionally to
+* its velovity.
+*/
+Pendulum(double a = M_PI, double v = 0.0, double maxSpeed = 16.0,
+  double maxTorque = 1.8, double timeDelta = 0.01, double gravity = 9.81,
+  double mass = 0.8, double length = 1.0, double friction = 0.005);
+
+ +
+ +

2. Interfacing with GEGELATI

+ +

To train a Tangled Program Graph with Gegelati, the library needs to interact with the learning environment. +To achieve this purpose, the learning environment must be presented to the library using a standardized API. +In the case of Gegelati, this interfacing is done by specializing the Learn::LearningEnvironment abstract class.

+ + + +

The following steps will guide you through the creation of a PendulumWrapper class, inheriting from the Learn::LearningEnvironment class and interfacing the Pendulum class with Gegelati.

+ +

PendulumWrapper skeleton.

+

The pendulum_wrapper.h and pendulum_wrapper.cpp files already contain the skeleton of the PendulumWrapper class, which you’ll complete throughout the next steps. +To make the class compilable, this code already defines empty methods overriding all the pure virtual methods from the Learn::LearningEnvironment. +Comments in the header file explain the purpose of each method.

+ +

Pendulum attributes

+

A first specific attribute of the PendulumWrapper class is already declared: the actions vector.

+
/* From pendulum_wrapper.h */
+/// Array containing the actions available for the TPG.
+/// These actions are expressed as real numbers in [-1, 1], and will be multiplied
+/// by the MAX_TORQUE of the Pendulum to apply the corresponding action.
+static const std::vector<double> actions;
+
+ +

TODO #1:

+

Your first task is to update the definition of this vector in the pendulum_wrapper.cpp file, so that the 7 actions available to you in the manual version are also the one made available to the TPG. +It should be noted that the size of this vector is automatically used in the PendulumWrapper constructor to initialize the LearningEnvironment parent class with the number of actions available. +A single line of code needs to me modified in this task.

+ +
Solution to #1 +
const std::vector<double> PendulumWrapper::actions{ -1.0, -0.66, -0.33, 0.0, 0.33, 0.66, 1.0 };
+
+
+ +

TODO #2:

+

Add an instance of the Pendulum class to the attributes of the PendulumWrapper class. +Don’t forget to include the pendulum.h file and update the constructor of the class to initialize the Pendulum instance, keeping default parameters for now.

+ +
Solution to #2 +
/* pendulum_wrapper.h: After other includes */
+#include <pendulum.h>
+
+
/* pendulum_wrapper.h: After actions declaration */
+  /// Pendulum interfaced with the GEGELATI Lib  
+  Pendulum pendulum;
+
+
/* pendulum_wrapper.cpp*/
+PendulumWrapper::PendulumWrapper() : LearningEnvironment(actions.size()), pendulum()
+{
+}
+
+
+ +

Data access

+

In this step, you will expose the angle and velocity attributes of the pendulum so that they can be observed by the Gegelati library.

+ +

During the training process, the Gegelati library accesses the data from the environment using the getDataSources() method. +This method returns the observable state of the environment as a vector of references to Data::DataHandler.

+ +

The Data::DataHandler interface class provides a set of services that simplifies the training of TPGs. +In particular, in addition to methods for accessing the data, the Data::DataHandler supports methods for dynamically checking what the addressing space of a data source is, or which data types can be provided by a data source. +It is also possible for a Data::DataHandler to give access to data with a data type differing from the native type used for storing the data.

+ +

For example, with a Primitive2DArray<char>(10,10) data handler storing a 2D array of char[10][10], individual elements of the array can be accessed using the native data type char; but it is also possible to access a 3-by-2 subregion of data by requesting an access to data with type char[3][2]. +For more details on these features, please refer to the doxygen documentation built and delivered with the Gegelati library.

+ +

In the case of the pendulum, we will use the Data::PointerWrapper<T> specialization of the Data::DataHandler class, which acts as an interface between a native pointer (T *) and Gegelati. +Only the following 2 methods of this class needs to be used in this tutorial:

+ +
/**
+ *  \brief Constructor for the PointerWrapper class.
+ *
+ * \param[in] ptr the pointer managed by the PointerWrapper.
+ */
+PointerWrapper(T* ptr = nullptr);
+
+/**
+ * \brief Set the pointer of the PointerWrapper.
+ *
+ * \param[in] ptr the new pointer managed by the PointerWrapper.
+ *
+ */
+void setPointer(T* ptr);
+
+ +

TODO #3:

+

Instantiate two instances of the Data::PointerWrapper<T> class as attributes of the PendulumWrapper. +In the constructor of the PendulumWrapper, make these two Data::PointerWrapper point to the angle and velocity attributes of the pendulum. +Then, update the getDataSources() method to return a vector referring to these two Data::PointerWrapper. +This task requires less than 10 lines of C++ code.

+ +

C++ tip: Pushing a variable T var to a std::vector<std::references_wrapper<T>> vect is done with a simple call to vect.push_back(var).

+ +
Solution to #3 (Click to expand) +

This solution is based on a vector of Data::PointerWrapper<double>. +Alternative solutions based on two Data::PointerWrapper<double> are perfectly viable.

+ +
/* pendulum_wrapper.h : After pendulum declaration */
+/// DataHandler wrappers
+std::vector<Data::PointerWrapper<double>> data;
+
+
/* pendulum_wrapper.cpp */
+PendulumWrapper::PendulumWrapper() : LearningEnvironment(actions.size()), pendulum(), data(2)
+{
+	data.at(0).setPointer(&this->pendulum.getAngle());
+	data.at(1).setPointer(&this->pendulum.getVelocity());
+}
+
+std::vector<std::reference_wrapper<const Data::DataHandler>> PendulumWrapper::getDataSources()
+{
+	std::vector<std::reference_wrapper<const Data::DataHandler>> result;
+	result.push_back(this->data.at(0));
+	result.push_back(this->data.at(1));
+	return result;
+}
+
+
+ +

Actions on the pendulum

+

After exposing the pendulum attributes to the learning agent, this step will give it the ability to act on the pendulum.

+ +

The number of discrete actions that can be taken by the learning agent is given by the getNbActions() method from the learning environment. +The value returned by this method is already set when calling the constructor of the LearningEnvironment parent class of the PendulumWrapper.

+ +

To execute an action, the learning agent calls the doAction(int) method of the learning environment with an argument corresponding to the action to execute.

+ +

TODO #4

+

Implement the PendulumWrapper::doAction(int) method using the actions defined in the actions attribute. +To apply a torque to the pendulum, the Pendulum::applyTorque(double) method must be used.

+
/**
+* \brief Apply the given torque to the pendulum and advance the simulation.
+*
+* \param[in] torque the torque applied to the pendulum. If the given value
+* is not within the [-MAX_TORQUE, MAX_TORQUE] interval, it will be
+* saturated to the closest bound.
+*/
+void applyTorque(double torque);
+
+

Two lines of C++ code are sufficient for this task.

+ +
Solution to #4 (Click to expand) +
/* pendulum_wrapper.cpp */
+void PendulumWrapper::doAction(uint64_t actionID)
+{
+  	// Retrieve the torque corresponding to the ID
+  	double torque = this->actions[actionID] * pendulum.MAX_TORQUE;
+
+  	// Apply it to the pendulum
+  	this->pendulum.applyTorque(torque);
+}
+
+
+ +

TODO #5

+

To train the TPG, the reinforcement learning process requires making many attempts to stabilize it in the upward position. +Between each attempt, the initial position of the pendulum is reset using the reset() method. +Implement this method so that the pendulum managed by the PendulumWrapper always starts in a downward static state. +Two lines of code are needed for this task.

+ +

At this point, the arguments of the reset methods can be ignored. +Their utility will be covered in a more advanced tutorial.

+ +
Solution to #5 (Click to expand) +
/* pendulum_wrapper.cpp */
+void PendulumWrapper::reset(size_t seed, Learn::LearningMode mode)
+{
+	this->pendulum.setAngle(M_PI);
+	this->pendulum.setVelocity(0.0);
+}
+
+
+ +

Reward mechanism

+

In this last step, you are going to implement the reward mechanism used by Gegelati to identify the best strategies for controlling the pendulum.

+ +

The objective of this learning environment is to steady the pendulum in the upward position. +While it is easy to measure the distance of the pendulum to the upward position at each simulation step, appreciating the steadiness of the pendulum in this position can only be achieved over time. +Hence, the computation of the reward will be accumulated in a double attribute of the PendulumWrapper. +At each simulation step $i$, this reward will be updated as follows:

+ +
+$$ reward_{0} = 0 $$ +$$ reward_{i} = reward_{i-1} - (0.1 \cdot \theta^2 + 0.01 \cdot \omega^2 + 0.001\cdot \tau^2) $$ +
+ +

where $\theta$ is the angular distance to the upward position, $\omega$ is the velocity of the pendulum, and $\tau$ the torque applied to the pendulum. +Intuitively, the purpose of this equation is to minimize the angular distance to the upward position as a primary criteria, but also the velocity of the pendulum when reaching this position, and the torque applied to the pendulum to reach and stay in this position.

+ +

TODO #6

+

Implement the rewarding mechanism in the PendulumWrapper class by:

+
    +
  • Adding an accumulatedReward attribute.
  • +
  • Updating this reward after each action in the doAction(int) method.
  • +
  • Returning this reward in the getScore() method.
  • +
  • Resetting this reward in the reset(int, LearningMode) method. +Less than 10 new lines of code are needed for this task.
  • +
+ +

C++ tip: The double fmod(double, double) method can be used to compute the modulo of two double numbers.

+ +
Solution to #6 (Click to expand) +
/* pendulum_wrapper.h : After the PointerWrapper */
+	double accumulatedReward;
+
+ +
/* pendulum_wrapper.cpp */
+void PendulumWrapper::reset(size_t seed, Learn::LearningMode mode)
+{
+	this->pendulum.setAngle(M_PI);
+	this->pendulum.setVelocity(0.0);
+
+	this->accumulatedReward = 0.0;
+}
+
+void PendulumWrapper::doAction(uint64_t actionID)
+{
+	// Retrieve the torque corresponding to the ID
+	double torque = this->actions[actionID] * pendulum.MAX_TORQUE;
+
+	// Apply it to the pendulum
+	this->pendulum.applyTorque(torque);
+
+	// Get the angle value between -M_PI and M_PI (0 being the upward position)
+	double angle = fmod(this->pendulum.getAngle() + M_PI, 2.0 * M_PI) - M_PI;
+
+	// Compute a reward based on the angle to the upward position, the velocity and the torque.
+	// All three values should be minimized.
+	double reward = -(0.1f*(angle * angle) + 0.01f * (this->pendulum.getVelocity() * this->pendulum.getVelocity()) + 0.001f * (torque * torque));
+
+	// Accumulate the reward
+	accumulatedReward += reward;
+}
+
+double PendulumWrapper::getScore(void) const
+{
+	return accumulatedReward;
+}
+
+
+ +

The pendulum_wrapper.h and pendulum_wrapper.cpp files resulting from this tutorial can be downloaded at the following link: pendulum_wrapper_solution.zip.

+ +

3. Train your first TPG

+

The code needed to interface the pendulum with Gegelati is now complete. +This section will (finally) let you train a TPG with the pendulum learning environment.

+ +

Training procedure

+

The main-training.cpp file contains the entry point of the executable built with the tpg-training target. +The program is structured as follows:

+
    +
  1. Initialize the instruction set used in programs of the TPG.
  2. +
  3. Load the training meta-parameters from the gegelati-tutorial/params.json file.
  4. +
  5. Instantiate the PendulumWrapper learning environment.
  6. +
  7. Instantiate the Learn::LearningAgent class. This utility class will manage most aspects of the training process of the TPG, including its initialization, mutations, and evaluation of the fitness of its roots within the learning environment.
  8. +
  9. Initialize a display window. This display will be used throughout the training to show the behavior of the TPG root with the best score after each generation.
  10. +
  11. Instantiate a logger for keeping track of the training statistics throughout the training.
  12. +
  13. Iterate the genetic evolution process until the maximum number of generation is reached, or until the program is exited.
  14. +
  15. Train one generation. This step, managed by the learning agent, includes the mutation of the TPG to reach the desired number of roots, the evaluation of all the TPG roots, and the decimation of worst fitting root.
  16. +
  17. Create a replay of all actions performed by the best fitting root of the TPG, and trigger a refresh of the display.
  18. +
  19. Go back to step 7.
  20. +
+ +

Training in action

+

Build and run the tpg-training target to observe the TPG training process in action. +For a faster training, it is strongly advised to build the project in Release mode.

+ +

The first output of the training process are the logs generated in the console. +An example of log is presented hereafter:

+ +
Pendulum TPG training.
+                      Train
+      Gen   NbVert      Min      Avg      Max  T_mutat   T_eval  T_total
+        0      164 -7624.63 -1383.36  -980.33     0.00     1.51     1.51
+        1      167 -4848.23 -1263.68  -980.33     7.28     1.56    10.38
+        2      170 -6862.46 -1242.03  -844.01     2.63     1.53    14.55
+        3      170 -7707.18 -1181.00  -844.01     7.60     1.48    23.65
+        4      168
+
+ +

The generated logs contain a table that can be exported in the CSV format by giving a file path to the LABasicLogger constructor. +This table contains the following columns:

+
    +
  • Gen: Number of generation since the start of the training process.
  • +
  • NbVert: Number of vertices (teams + actions) in the TPG before the fitness of the roots is evaluated.
  • +
  • Train.Min/Avg/Max: Minimum, average, and maximum scores obtained during the evaluation process of all roots of the TPG.
  • +
  • T_mutat: Time taken in seconds to apply the mutations to the TPG.
  • +
  • T_eval: Time taken in seconds to evaluate all roots of the TPG.
  • +
  • T_total: Time in seconds since the beginning of the training process.
  • +
+ +

A few insights on these logs:

+
    +
  • It may happen that the maximum score observed at generation $n+1$ is lower than the score observed at a previous generation $n$. +This phenomenon occurs when the best root vertex observed at generation $n$ becomes an internal team of the TPG during the mutation process creating new roots for the next generation. +While this may seem weird to see the score decrease, the genetic material that had lead to a better result is not lost. +If the new roots introduced in the graph do a poor job, they will be decimated rapidly, and the best root will once again become a root. +It may also happen that the former best root remains an internal vertex of the TPG, but is copied during the mutation process, thus becoming a slightly altered root once again. +In any case, the vertex which, as a root, has provided the best reward since the beginning of the training is still the one returned by the learning agent when requesting the best root with the Learn::LearningAgent::getBestRoot() method.
  • +
  • In this learning environment, the time taken for mutating the graph is quite long, especially compared to the time taken for evaluating the roots. +The reason behind this abnormally long mutation times lies in a specific mechanism ensuring the originality of programs produced during the mutation process. +Each time a new program is created, it is compared to randomly selected pre-existing programs. +If the new program does not produce original outputs compared to other programs, it will be mutated over and over until its output becomes original. +While producing an original output is simple in learning environment with large observable space, this is a lot trickier to achieve in a learning environment with only 2 observable variables. +This is why the mutation time is long with this example.
  • +
+ +

The second output of the training process is the display of the pendulum. +While the score presented in the logs are not easily interpretable, this display makes it possible to appreciate how well the trained TPGs are doing.

+ +

With default pendulum parameters and meta-parameters, the learning agent should be able to stabilize the pendulum in less than 25 generations. +During the first generations, the learning agent usually learns how to swing the pendulum closer to the upward position. +Then it learns how to slow down the pendulum when it approaches the upward position. +Finally, it finds a way to stabilize the pendulum.

+ +

4. The fun is only beginning.

+

In this tutorial, you have learned:

+
    +
  • How to setup a project with Gegelati.
  • +
  • Create a custom learning environment.
  • +
  • Train TPG in the learning environment.
  • +
  • Understand the basic logs generated during the training.
  • +
+ +

While this tutorial illustrates the basic concepts of TPG training, Gegelati offers many features to play with TPGs. +The following tutorials guide you through these features, starting from the result of this tutorial. +These tutorial can be followed in any order, so feel free to explore them based on your personal interests and objectives.

+
    +
  • [Partially Available] Export, visualize and import TPG graphs in the DOT format.
  • +
  • [Available Soon] Accelerate training with early termination, random initial states and testing.
  • +
  • [Available Soon] Play with training meta-parameters.
  • +
  • [Available Soon] Explore TPG statistics throughout the training.
  • +
  • [Available Soon] Accelerate TPG training with deterministic multi-core support.
  • +
  • [Available Soon] Generate standalone C code for ultra-fast inference.
  • +
+ +

Several other open-source applications are available in the GitHub repository of Gegelati. +Feel free to explore them to get a better understanding of the wonderful abilities of TPGs.

+
    +
  • Gegelati-apps: MNIST, Tic-Tac-Toe, Nim Game
  • +
  • ALE-wrapper: Wrapper for the 50+ games of the Arcade Learning Environment.
  • +
  • ArmLearn-wrapper: Robotic arm control with 6 servo-motors.
  • +
  • Gym-Gegelati: Wrapper for OpenAI’s Gym reinforcement learning dataset.
  • +
+ + +
+ +
+ + + + + + +
+ + + + +
+ + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + diff --git a/minimal-mistakes-jekyll.gemspec b/minimal-mistakes-jekyll.gemspec new file mode 100644 index 0000000..e985e49 --- /dev/null +++ b/minimal-mistakes-jekyll.gemspec @@ -0,0 +1,27 @@ +# coding: utf-8 + +Gem::Specification.new do |spec| + spec.name = "minimal-mistakes-jekyll" + spec.version = "4.24.0" + spec.authors = ["Michael Rose"] + + spec.summary = %q{A flexible two-column Jekyll theme.} + spec.homepage = "https://github.com/mmistakes/minimal-mistakes" + spec.license = "MIT" + + spec.metadata["plugin_type"] = "theme" + + spec.files = `git ls-files -z`.split("\x0").select do |f| + f.match(%r{^(assets|_(data|includes|layouts|sass)/|(LICENSE|README|CHANGELOG)((\.(txt|md|markdown)|$)))}i) + end + + spec.add_runtime_dependency "jekyll", ">= 3.7", "< 5.0" + spec.add_runtime_dependency "jekyll-paginate", "~> 1.1" + spec.add_runtime_dependency "jekyll-sitemap", "~> 1.3" + spec.add_runtime_dependency "jekyll-gist", "~> 1.5" + spec.add_runtime_dependency "jekyll-feed", "~> 0.1" + spec.add_runtime_dependency "jekyll-include-cache", "~> 0.1" + + spec.add_development_dependency "bundler" + spec.add_development_dependency "rake", ">= 12.3.3" +end diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..385cef3 --- /dev/null +++ b/robots.txt @@ -0,0 +1 @@ +Sitemap: https://gegelati.github.io/sitemap.xml diff --git a/screenshot-layouts.png b/screenshot-layouts.png new file mode 100644 index 0000000000000000000000000000000000000000..88ef60fd6a56a8f0915ab335f20bb6260e1aacfa GIT binary patch literal 124853 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 z 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

)u!574JQW44e+vjI3PuZEX|LW4mi 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�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

pZ>rz*CRizJ1%C+phoM=`Y`%Jap|_ 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

Q_H`L^v$^$1~sjJ{8t8o1Z8F|4%>p^wa-3V96G0 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 literal 0 HcmV?d00001 diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..d28ecc3 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,18 @@ + + + +https://gegelati.github.io/about/ + + +https://gegelati.github.io/tutos/export-visualize-import + + +https://gegelati.github.io/ + + +https://gegelati.github.io/ + + +https://gegelati.github.io/tutos/ + + diff --git a/staticman.yml b/staticman.yml new file mode 100644 index 0000000..61b9592 --- /dev/null +++ b/staticman.yml @@ -0,0 +1,104 @@ +# Name of the property. You can have multiple properties with completely +# different config blocks for different sections of your site. +# For example, you can have one property to handle comment submission and +# another one to handle posts. +# To encrypt strings use the following endpoint: +# https://{your Staticman API URL}/v[2|3]/encrypt/{TEXT TO BE ENCRYPTED} + +comments: + # (*) REQUIRED + # + # Names of the fields the form is allowed to submit. If a field that is + # not here is part of the request, an error will be thrown. + allowedFields: ["name", "email", "url", "message"] + + # (*) REQUIRED WHEN USING NOTIFICATIONS + # + # When allowedOrigins is defined, only requests sent from one of the domains + # listed will be accepted. The origin is sent as part as the `options` object + # (e.g. +MathJax.Hub.Config({ + tex2jax: { + inlineMath: [['$','$'], ['\\(','\\)']], + processEscapes: true + }, + chtml: { + scale: 0.8 + }, + svg: { + scale: 0.8 + } +}); + + + + + + +Export, visualize and import TPG graphs in the DOT format - GEGELATI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + +
+
+
+ +
+
+
+ + +
+ + + + +
+ + + +
+ + + + + +
+ +
+

+ +

+ + + +
+ + +
+ + + +

The objective of this tutorial is to experiment with the DOT file format supported in Gegelati to export trained Tangled Program Graphs (TPGs), to visualize their topology, and to import them back in a program.

+ +

The following topics are covered in this tutorial:

+
    +
  • Use of the File::TPGGraphDotExporter class to serialize pre-trained TPGs into DOT files.
  • +
  • Visualization of TPG structure evolution throughout the training process using a DOT viewer.
  • +
  • Creation of an inference-only executable using TPG graphs imported with the File::TPGGraphDotImporter class.
  • +
+ +

The starting point of this tutorial is the C++ project obtained at the end of the GEGELATI introductory tutorial. While completing the introductory tutorial is strongly advised, a copy of the project resulting from this tutorial can be downloaded at the following link: pendulum_wrapper_solution.zip.

+ +

0. Export TPGs into DOT files.

+ +

The DOT format

+

DOT is a popular description language that makes it possible to describe graphs with a few lines of code. +With a simple declarative syntax, labeled directed or undirected graphs with homogeneous or heterogeneous types of vertices can be described. +In it simplest form, the DOT syntax (mostly) focuses on the description of the topology of graphs, leaving out graphical and layout concerns. +These graphical and layouting concerns are handled automatically by dedicated visualization tools, such as the open-source GraphViz tool.

+ +

A simple example of graph described with the DOT language is presented in the following excerpt:

+ +
digraph mygraph {
+  root -> A;
+  root -> B -> C;
+  A -> A;
+  B -> A;
+}
+
+ +

The visualization of this graph with xdot produces the following output:

+ +
+ +

In Gegelati, the DOT language is used as the serialization file format for exporting, visualizing and importing TPGs. +The general structure used for storing TPGs is as follows:

+ +
/* Header */
+digraph{
+	graph[pad = "0.212, 0.055" bgcolor = lightgray]  
+	node[shape=circle style = filled label = ""]
+
+    /* Team vertex */
+    T0 [fillcolor="#1199bb"]
+
+    /* Program */
+    P0 [fillcolor="#cccccc" shape=point] //-7|7|0|-4|9|
+
+    /* Program P0 instructions (invisible) */
+    I0 [shape=box style=invis label="2|5&2|1#0|4&#92;n1|3&0|7#0|5&#92;n"]
+    P0 -> I0[style=invis]
+
+    /* Action vertex */
+    A0 [fillcolor="#ff3366" shape=box margin=0.03 width=0 height=0 label="0"]
+
+    /* TPG Edge */
+    T0 -> P0 -> A0
+
+    /* Root list */
+    { rank= same T0 }
+}    
+
+ +

Export TPGs throughout training

+ +

To export TPGs in the DOT format, Gegelati provides the File::TPGGraphDotExporter class. +Each instance of the TPGGraphDotExporter class is associated, on construction to a TPG::TPGGraph. +The constructor of the exporter class is declared as follows:

+ +
/**
+ * \brief Constructor for the exporter.
+ *
+ * \param[in] filePath initial path to the file where the dot content
+ *            will be written.
+ * \param[in] graph const reference to the graph whose content will
+ *            be exported in dot.
+ * \throws std::runtime_error in case no file could be opened at the
+ *         given filePath.
+ */
+TPGGraphDotExporter (const char *filePath, const TPG::TPGGraph &graph)
+
+ +

While the path of the file where the TPG graph is written can be modified, using the TPGGraphDotExporter::setNewFilePath(char*) method, the TPG associated to the exporter on construction can not be changed. +The reason for this constraint is that for a TPG that was already exported, following exports of the TPGs, even after mutations, will keep identical names for teams, programs and actions present in both TPGs, and will create new names for new graphs elements. +Thanks to this features, it is easier to keep track of surviving teams throughout the evolution process.

+ +

TODO 1:

+

To print the trained TPG after each generation of the training process, edit the /gegelati-tutorial/src/training/main-training.cpp file as follows:

+
    +
  • Instantiate an instance of the TPGGraphDotExporter before entering the iterative training process. To retrieve a pointer to the trained TPG, use the following method of the learning agent: Learn::LearningAgent::getTPGGraph().
  • +
  • Use the instantiated exporter within the iterative training process to export a new dot file after each generation.
  • +
  • Print all generated files in the /gegelati-tutorial/dat/ folder. You can use the ROOT_DIR macro within the c++ code to target the /gegelati-tutorial folder automatically. +To trigger the printing of a file, use the TPGGraphDotExporter::print() method.
  • +
+ +
Solution to #1 (Click to expand) +
/* main-training.cpp */
+// Create an exporter for all graphs
+File::TPGGraphDotExporter dotExporter(ROOT_DIR "/dat/tpg_0000.dot", *la.getTPGGraph());
+
+// Train for params.nbGenerations generations
+for (int i = 0; i < params.nbGenerations && !exitProgram; i++) {
+  la.trainOneGeneration(i);
+
+  // Export dot
+  char buff[150];
+  sprintf(buff, ROOT_DIR "/dat/tpg_%04d.dot", i);
+  dotExporter.setNewFilePath(buff);
+  dotExporter.print();    
+
+  // ...
+}
+
+ +
+ +

Export the cleaned best TPG

+

During the training process, the pseudo-random nature of the graph and program mutations causes the apparition of useless elements.

+ +

Training roots: +At the end of the training process, the TPG needs to be exported for further utilization, for example for inferring the pre-trained TPG, as will be done later in this tutorial. +The TPGs exported in the previous step contained all roots present in the TPG at a given generation, which is useful to better understand the training process, but also to pause a training process and restart it later.

+ +

When exporting the TPG resulting from the training, only the graph stemming from the root team providing the best results needs to be exported. +To keep only the TPG stemming from the best root, the Learn::LearningAgent::keepBestPolicy() method should be used.

+ +

Hitchhiker programs: +In TPG graphs, so-called “hitchhiker” programs may appear. +A hitchhiker program is a program that belongs to a team with a valuable behavior without contributing to this useful behavior itself. +A team has a valuable behavior if it helps the TPG to which it belongs to obtain better rewards. +A hitchhiker program is a program that belongs to a valuable team, but that never produces a winning bid when programs of this team are executed. +Because the team has a valuable behavior, it will survive with many generations, with all its programs, including the useless hitchhiker program.

+ +

To identify these hitchhiker programs, the execution of TPG graphs must be instrumented in order to keep track of how many times each team was visited, and how many times each program produced a winning bid. +This instrumentation of the TPG graph is achieved by specifying a specialized TPG factory when instantiating the learning agent. +This can be achieved as follows:

+
Learn::LearningAgent la(pendulumLE, instructionSet, params, TPG::TPGInstrumentedFactory());
+
+ +

After the training process, hitchhiker programs can be cleaned from the TPG using a helper method from this factory, as follows:

+
// Clean unused vertices and teams
+std::shared_ptr<TPG::TPGGraph> tpg = la.getTPGGraph();
+TPG::TPGInstrumentedFactory().clearUnusedTPGGraphElements(*tpg);
+
+ +

Introns: +In Programs, it is very common to observe so-called “intron” instructions that do not directly contribute to the data path leading to the result returned by the program. +While these instructions are automatically detected and skipped during program execution, they may still be valuable during the training process, as they act as dormant genes that may be activated again during future mutations.

+ +

When exporting a TPG graph, these introns only pollute the exported graph, and should thus be removed using the TPG::TPGGraph::clearProgramIntrons() method.

+ +

TODO #2:

+

Update the instatiation of the Learn::LearningAgent to use the TPG::TPGInstrumentedFactory. +Then, after the end of the iterative training process:

+
    +
  • Keep only the best root in the trained TPG.
  • +
  • Remove all its hitchhiker programs.
  • +
  • Clear all introns.
  • +
  • Export the resulting TPG in a dedicated DOT file.
  • +
+ +
Solution to #2 (Click to expand) +
/* main-training.cpp: After the for loop. */
+
+// Clean unused vertices and teams
+std::shared_ptr<TPG::TPGGraph> tpg = la.getTPGGraph();
+TPG::TPGInstrumentedFactory().clearUnusedTPGGraphElements(*tpg);
+
+// Keep only the best root
+la.keepBestPolicy();
+
+// Clean introns
+tpg->clearProgramIntrons();
+
+// Print the resulting TPG
+dotExporter.setNewFilePath(ROOT_DIR "/dat/best_tpg.dot");
+dotExporter.print();
+
+
+ +

1. Visualization of TPG graphs.

+

To visualize TPGs described with DOT, a dedicated tool can be installed on your computer, such as graphviz. +Alternatively, several website propose online viewers for graphs described with the DOT language. +For example, Edotor, GraphvizOnline, or GraphViz Visual Editor can be used to follow this tutorial.

+ +

TPG graphical semantics

+

An excerpt of the visual representation of a TPG produced by GraphViz is presented hereafter:

+
+ +

The large colored circles in the graph represents the teams of the TPG. +At the top of the image, the two darker teams are root teams of the TPG. +Lighter teams are internal teams of the TPG, referenced in the graph stemming from at least one root of the TPG. +The red rectangles represent the actions of the TPG. +The integer numbers in the action rectangles represent the numbers associated to the discrete actions available in the learning environment. +Finally, arrows linking teams to other teams of actions are separated in two halves: the first one linking the team to a program, represented with a tiny circle, and the second one linking the program to its destination team or action. +In case several edges starting from different teams share a common program and destination, a single arrow exists between the program and its destination.

+ +

In-training TPGs and emergent behavior

+ +

The training meta-parameters used in this tutorial, specified in gegelati-tutorial/params.json, specify that the trained TPG should contain 150 roots at each generation, 80% of which are removed during the decimation process. +Hence, the DOT graph exported after each generation contain 30 root teams, which make them quite large when visualized.

+ +

The first observable feature of TPGs during the training process are their maximum depth from root to actions. +When the learning agent and the trained TPG are first initialized, the number of created root is equal to the number of actions available the TPG. +Each of this root is connected to two actions, such that each action is itself connected to two roots. +Hence, at initialization, the depth of the TPG is 1 between roots and actions.

+ +

During the any iteration of the natural selection training process, additional roots are added to the TPGs to reach the desired 150 roots. +These roots are obtained by cloning and mutating existing teams from the TPG. +During this mutation process, program of mutated team can change their destination among surviving teams from the previous generation, but can never point towards another root introduced at the same generation. +Hence, the maximum depth of the TPG can increase, at most, by one at each generation. +This is why, when observing the TPG resulting from the first generation, the graph should contain +30 roots with a maximum depth of 2 between roots and actions.

+ +

In practice, the maximum depth of the TPG remains relatively stable, unless one of the root teams discovers a new valuable strategy. +Indeed, in the absence of a reward breakthrough most newly introduced team, which may be responsible for an increase of the TPG depth, won’t survive any generation. +Thanks to this property, the depth of the TPG graphs automatically reflects the complexity of the strategy deployed for maximizing their rewards. +Hence, when visualizing the TPGs obtained during the first generation, you will most likely not notice a big change in the maximum depth of the TPG.

+ +

When a root team with a valuable behavior appears, it will survive for many generations, thus increasing its chance of being itself referenced by a new root team bringing further improvement of the TPG reward. +When becoming an internal (i.e. non-root) team of the TPG, a team is protected from decimation, which further increases its life-span, and its chance of being referenced during future mutations. +This natural self preservation of valuable behavior is called the emergent hierarchal structure of TPGs.

+ +

TODO #3:

+

Visualize the TPG obtained during throughout the training process, and the structure of the best TPG exported when exiting the training process.

+ +

2. Standalone inference from imported DOT file.

+

Once a pre-trained TPG is exported, an import feature is indispensable to enable using this TPG for inference purposes. +In this step, you will create an inference executable base on a TPG exported in the DOT format.

+ +

Creation of a new executable in the CMake project.

+

TODO #4

+
    +
  1. Download the main-inference.cpp file and place it in the gegelati-tutorial/src/inference/ folder: Download Link.
  2. +
  3. Update the CMake configuration file to add a new target to the project. To do that, add the following lines at the end of the gegelati-tutorial/CMakeLists.txt file: +
    # Sub project for inference
    +file(GLOB
    + inference_files
    + ./src/inference/*.cpp
    + ./src/inference/*.h
    + ./src/training/instructions.*
    + ./src/training/pendulum_wrapper.*
    + params.json
    +)
    +include_directories(${GEGELATI_INCLUDE_DIRS} ${SDL2_INCLUDE_DIR} ${SDL2IMAGE_INCLUDE_DIR} ${SDL2TTF_INCLUDE_DIR} "./src/" "./src/training/")
    +add_executable(tpg-inference ${pendulum_files} ${inference_files})
    +target_link_libraries(tpg-inference ${GEGELATI_LIBRARIES} ${SDL2_LIBRARY} ${SDL2IMAGE_LIBRARY} ${SDL2TTF_LIBRARY})
    +target_compile_definitions(tpg-inference PRIVATE ROOT_DIR="${CMAKE_SOURCE_DIR}")
    +
    +
  4. +
  5. Re-generate the project for your favorite IDE using appropriate CMake commands.
  6. +
+ +

Importing TPG for inference.

+

Open the gegelati-tutorial/src/inference/main-inference.cpp file which is pre-filled with the code needed to load and infer a TPG from a dot file. +The program is structured as follows:

+
    +
  1. Initialize the instruction set of the programs, with the same instructions as the ones used during training.
  2. +
  3. Initialize the PendulumWrapper learning environment and the associated learning agent. While the learning agent is not strictly needed for inference purposes, as it provides a simple API to initialize the execution environment, which is easier to use it in this example. Also note that this learning agent can be reused as a basis to restart the training of a previously saved TPG.
  4. +
  5. Load the TPG from a file using the File::TPGGraphDotImporter class with the following lines. +
    // Load the TPG from the file
    +File::TPGGraphDotImporter importer(ROOT_DIR "/dat/best_tpg.dot", la.getEnvironment(), *la.getTPGGraph());
    +importer.importGraph();
    +
    +

    It is important to note that the importer does not create its own TPG, but fills and replace the one created by the learning agent.

    +
  6. +
  7. Instantiate the TPG::TPGExecutionEngine which will manage the inference of the loaded TPG graph.
  8. +
  9. Initialize the display.
  10. +
  11. In an infinite loop, simulate and display the params.maxNbActionsPerEval actions of the TPG on the pendulum.
  12. +
  13. Each inference of the TPG is handled by the TPG::TPGExecutionEngine, which starts an execution of the TPG from a specified TPG vertex, with the current state of the pendulum learning environment. This executions produces a trace, which corresponds to the list of actors visited during one execution of the TPG. The last vertex visited in the trace is the action selected by the TPG.
  14. +
  15. After each inference, the selected action is applied to the environment, and the display is updated.
  16. +
  17. Necessary cleanups are executed after the simulation loop.
  18. +
+ +

TODO #5

+

Build and run the best TPG saved from a previous training. +Check that the result is identical to the score obtained during the training. +This score is automatically printed in the console after params.maxNbActionsPerEval actions are performed, and before restarting the simulation.

+ +

Conclusion

+

In this tutorial, you have seen how to and visualize TPGs during the training process, and also how to import them back for inference. +The code presented in this tutorial can serve as a basis for many purposes, and notably to restart the training of a TPG saved during the training process.

+ + +
+ +
+ + + + + + +
+ + + + +
+ + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + diff --git a/tutos/index.html b/tutos/index.html new file mode 100644 index 0000000..d0f1b8c --- /dev/null +++ b/tutos/index.html @@ -0,0 +1,286 @@ + + + + + + + + + +GEGELATI Tutorials - GEGELATI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+
+
+ + +
+ + + + +
+ + + + + + + +
+
+ + + + + + + + + + + + + + + + + + +
'+ + ''+ + '