--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">\r
+<head>\r
+<title>Angling for a new Staff Interface</title>\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.9" />\r
+<style type="text/css">\r
+/* Shared CSS for AsciiDoc xhtml11 and html5 backends */\r
+\r
+/* Default font. */\r
+body {\r
+ font-family: Georgia,serif;\r
+}\r
+\r
+/* Title font. */\r
+h1, h2, h3, h4, h5, h6,\r
+div.title, caption.title,\r
+thead, p.table.header,\r
+#toctitle,\r
+#author, #revnumber, #revdate, #revremark,\r
+#footer {\r
+ font-family: Arial,Helvetica,sans-serif;\r
+}\r
+\r
+body {\r
+ margin: 1em 5% 1em 5%;\r
+}\r
+\r
+a {\r
+ color: blue;\r
+ text-decoration: underline;\r
+}\r
+a:visited {\r
+ color: fuchsia;\r
+}\r
+\r
+em {\r
+ font-style: italic;\r
+ color: navy;\r
+}\r
+\r
+strong {\r
+ font-weight: bold;\r
+ color: #083194;\r
+}\r
+\r
+h1, h2, h3, h4, h5, h6 {\r
+ color: #527bbd;\r
+ margin-top: 1.2em;\r
+ margin-bottom: 0.5em;\r
+ line-height: 1.3;\r
+}\r
+\r
+h1, h2, h3 {\r
+ border-bottom: 2px solid silver;\r
+}\r
+h2 {\r
+ padding-top: 0.5em;\r
+}\r
+h3 {\r
+ float: left;\r
+}\r
+h3 + * {\r
+ clear: left;\r
+}\r
+h5 {\r
+ font-size: 1.0em;\r
+}\r
+\r
+div.sectionbody {\r
+ margin-left: 0;\r
+}\r
+\r
+hr {\r
+ border: 1px solid silver;\r
+}\r
+\r
+p {\r
+ margin-top: 0.5em;\r
+ margin-bottom: 0.5em;\r
+}\r
+\r
+ul, ol, li > p {\r
+ margin-top: 0;\r
+}\r
+ul > li { color: #aaa; }\r
+ul > li > * { color: black; }\r
+\r
+.monospaced, code, pre {\r
+ font-family: "Courier New", Courier, monospace;\r
+ font-size: inherit;\r
+ color: navy;\r
+ padding: 0;\r
+ margin: 0;\r
+}\r
+pre {\r
+ white-space: pre-wrap;\r
+}\r
+\r
+#author {\r
+ color: #527bbd;\r
+ font-weight: bold;\r
+ font-size: 1.1em;\r
+}\r
+#email {\r
+}\r
+#revnumber, #revdate, #revremark {\r
+}\r
+\r
+#footer {\r
+ font-size: small;\r
+ border-top: 2px solid silver;\r
+ padding-top: 0.5em;\r
+ margin-top: 4.0em;\r
+}\r
+#footer-text {\r
+ float: left;\r
+ padding-bottom: 0.5em;\r
+}\r
+#footer-badges {\r
+ float: right;\r
+ padding-bottom: 0.5em;\r
+}\r
+\r
+#preamble {\r
+ margin-top: 1.5em;\r
+ margin-bottom: 1.5em;\r
+}\r
+div.imageblock, div.exampleblock, div.verseblock,\r
+div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,\r
+div.admonitionblock {\r
+ margin-top: 1.0em;\r
+ margin-bottom: 1.5em;\r
+}\r
+div.admonitionblock {\r
+ margin-top: 2.0em;\r
+ margin-bottom: 2.0em;\r
+ margin-right: 10%;\r
+ color: #606060;\r
+}\r
+\r
+div.content { /* Block element content. */\r
+ padding: 0;\r
+}\r
+\r
+/* Block element titles. */\r
+div.title, caption.title {\r
+ color: #527bbd;\r
+ font-weight: bold;\r
+ text-align: left;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.5em;\r
+}\r
+div.title + * {\r
+ margin-top: 0;\r
+}\r
+\r
+td div.title:first-child {\r
+ margin-top: 0.0em;\r
+}\r
+div.content div.title:first-child {\r
+ margin-top: 0.0em;\r
+}\r
+div.content + div.title {\r
+ margin-top: 0.0em;\r
+}\r
+\r
+div.sidebarblock > div.content {\r
+ background: #ffffee;\r
+ border: 1px solid #dddddd;\r
+ border-left: 4px solid #f0f0f0;\r
+ padding: 0.5em;\r
+}\r
+\r
+div.listingblock > div.content {\r
+ border: 1px solid #dddddd;\r
+ border-left: 5px solid #f0f0f0;\r
+ background: #f8f8f8;\r
+ padding: 0.5em;\r
+}\r
+\r
+div.quoteblock, div.verseblock {\r
+ padding-left: 1.0em;\r
+ margin-left: 1.0em;\r
+ margin-right: 10%;\r
+ border-left: 5px solid #f0f0f0;\r
+ color: #888;\r
+}\r
+\r
+div.quoteblock > div.attribution {\r
+ padding-top: 0.5em;\r
+ text-align: right;\r
+}\r
+\r
+div.verseblock > pre.content {\r
+ font-family: inherit;\r
+ font-size: inherit;\r
+}\r
+div.verseblock > div.attribution {\r
+ padding-top: 0.75em;\r
+ text-align: left;\r
+}\r
+/* DEPRECATED: Pre version 8.2.7 verse style literal block. */\r
+div.verseblock + div.attribution {\r
+ text-align: left;\r
+}\r
+\r
+div.admonitionblock .icon {\r
+ vertical-align: top;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ text-decoration: underline;\r
+ color: #527bbd;\r
+ padding-right: 0.5em;\r
+}\r
+div.admonitionblock td.content {\r
+ padding-left: 0.5em;\r
+ border-left: 3px solid #dddddd;\r
+}\r
+\r
+div.exampleblock > div.content {\r
+ border-left: 3px solid #dddddd;\r
+ padding-left: 0.5em;\r
+}\r
+\r
+div.imageblock div.content { padding-left: 0; }\r
+span.image img { border-style: none; vertical-align: text-bottom; }\r
+a.image:visited { color: white; }\r
+\r
+dl {\r
+ margin-top: 0.8em;\r
+ margin-bottom: 0.8em;\r
+}\r
+dt {\r
+ margin-top: 0.5em;\r
+ margin-bottom: 0;\r
+ font-style: normal;\r
+ color: navy;\r
+}\r
+dd > *:first-child {\r
+ margin-top: 0.1em;\r
+}\r
+\r
+ul, ol {\r
+ list-style-position: outside;\r
+}\r
+ol.arabic {\r
+ list-style-type: decimal;\r
+}\r
+ol.loweralpha {\r
+ list-style-type: lower-alpha;\r
+}\r
+ol.upperalpha {\r
+ list-style-type: upper-alpha;\r
+}\r
+ol.lowerroman {\r
+ list-style-type: lower-roman;\r
+}\r
+ol.upperroman {\r
+ list-style-type: upper-roman;\r
+}\r
+\r
+div.compact ul, div.compact ol,\r
+div.compact p, div.compact p,\r
+div.compact div, div.compact div {\r
+ margin-top: 0.1em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+tfoot {\r
+ font-weight: bold;\r
+}\r
+td > div.verse {\r
+ white-space: pre;\r
+}\r
+\r
+div.hdlist {\r
+ margin-top: 0.8em;\r
+ margin-bottom: 0.8em;\r
+}\r
+div.hdlist tr {\r
+ padding-bottom: 15px;\r
+}\r
+dt.hdlist1.strong, td.hdlist1.strong {\r
+ font-weight: bold;\r
+}\r
+td.hdlist1 {\r
+ vertical-align: top;\r
+ font-style: normal;\r
+ padding-right: 0.8em;\r
+ color: navy;\r
+}\r
+td.hdlist2 {\r
+ vertical-align: top;\r
+}\r
+div.hdlist.compact tr {\r
+ margin: 0;\r
+ padding-bottom: 0;\r
+}\r
+\r
+.comment {\r
+ background: yellow;\r
+}\r
+\r
+.footnote, .footnoteref {\r
+ font-size: 0.8em;\r
+}\r
+\r
+span.footnote, span.footnoteref {\r
+ vertical-align: super;\r
+}\r
+\r
+#footnotes {\r
+ margin: 20px 0 20px 0;\r
+ padding: 7px 0 0 0;\r
+}\r
+\r
+#footnotes div.footnote {\r
+ margin: 0 0 5px 0;\r
+}\r
+\r
+#footnotes hr {\r
+ border: none;\r
+ border-top: 1px solid silver;\r
+ height: 1px;\r
+ text-align: left;\r
+ margin-left: 0;\r
+ width: 20%;\r
+ min-width: 100px;\r
+}\r
+\r
+div.colist td {\r
+ padding-right: 0.5em;\r
+ padding-bottom: 0.3em;\r
+ vertical-align: top;\r
+}\r
+div.colist td img {\r
+ margin-top: 0.3em;\r
+}\r
+\r
+@media print {\r
+ #footer-badges { display: none; }\r
+}\r
+\r
+#toc {\r
+ margin-bottom: 2.5em;\r
+}\r
+\r
+#toctitle {\r
+ color: #527bbd;\r
+ font-size: 1.1em;\r
+ font-weight: bold;\r
+ margin-top: 1.0em;\r
+ margin-bottom: 0.1em;\r
+}\r
+\r
+div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {\r
+ margin-top: 0;\r
+ margin-bottom: 0;\r
+}\r
+div.toclevel2 {\r
+ margin-left: 2em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel3 {\r
+ margin-left: 4em;\r
+ font-size: 0.9em;\r
+}\r
+div.toclevel4 {\r
+ margin-left: 6em;\r
+ font-size: 0.9em;\r
+}\r
+\r
+span.aqua { color: aqua; }\r
+span.black { color: black; }\r
+span.blue { color: blue; }\r
+span.fuchsia { color: fuchsia; }\r
+span.gray { color: gray; }\r
+span.green { color: green; }\r
+span.lime { color: lime; }\r
+span.maroon { color: maroon; }\r
+span.navy { color: navy; }\r
+span.olive { color: olive; }\r
+span.purple { color: purple; }\r
+span.red { color: red; }\r
+span.silver { color: silver; }\r
+span.teal { color: teal; }\r
+span.white { color: white; }\r
+span.yellow { color: yellow; }\r
+\r
+span.aqua-background { background: aqua; }\r
+span.black-background { background: black; }\r
+span.blue-background { background: blue; }\r
+span.fuchsia-background { background: fuchsia; }\r
+span.gray-background { background: gray; }\r
+span.green-background { background: green; }\r
+span.lime-background { background: lime; }\r
+span.maroon-background { background: maroon; }\r
+span.navy-background { background: navy; }\r
+span.olive-background { background: olive; }\r
+span.purple-background { background: purple; }\r
+span.red-background { background: red; }\r
+span.silver-background { background: silver; }\r
+span.teal-background { background: teal; }\r
+span.white-background { background: white; }\r
+span.yellow-background { background: yellow; }\r
+\r
+span.big { font-size: 2em; }\r
+span.small { font-size: 0.6em; }\r
+\r
+span.underline { text-decoration: underline; }\r
+span.overline { text-decoration: overline; }\r
+span.line-through { text-decoration: line-through; }\r
+\r
+div.unbreakable { page-break-inside: avoid; }\r
+\r
+\r
+/*\r
+ * xhtml11 specific\r
+ *\r
+ * */\r
+\r
+div.tableblock {\r
+ margin-top: 1.0em;\r
+ margin-bottom: 1.5em;\r
+}\r
+div.tableblock > table {\r
+ border: 3px solid #527bbd;\r
+}\r
+thead, p.table.header {\r
+ font-weight: bold;\r
+ color: #527bbd;\r
+}\r
+p.table {\r
+ margin-top: 0;\r
+}\r
+/* Because the table frame attribute is overriden by CSS in most browsers. */\r
+div.tableblock > table[frame="void"] {\r
+ border-style: none;\r
+}\r
+div.tableblock > table[frame="hsides"] {\r
+ border-left-style: none;\r
+ border-right-style: none;\r
+}\r
+div.tableblock > table[frame="vsides"] {\r
+ border-top-style: none;\r
+ border-bottom-style: none;\r
+}\r
+\r
+\r
+/*\r
+ * html5 specific\r
+ *\r
+ * */\r
+\r
+table.tableblock {\r
+ margin-top: 1.0em;\r
+ margin-bottom: 1.5em;\r
+}\r
+thead, p.tableblock.header {\r
+ font-weight: bold;\r
+ color: #527bbd;\r
+}\r
+p.tableblock {\r
+ margin-top: 0;\r
+}\r
+table.tableblock {\r
+ border-width: 3px;\r
+ border-spacing: 0px;\r
+ border-style: solid;\r
+ border-color: #527bbd;\r
+ border-collapse: collapse;\r
+}\r
+th.tableblock, td.tableblock {\r
+ border-width: 1px;\r
+ padding: 4px;\r
+ border-style: solid;\r
+ border-color: #527bbd;\r
+}\r
+\r
+table.tableblock.frame-topbot {\r
+ border-left-style: hidden;\r
+ border-right-style: hidden;\r
+}\r
+table.tableblock.frame-sides {\r
+ border-top-style: hidden;\r
+ border-bottom-style: hidden;\r
+}\r
+table.tableblock.frame-none {\r
+ border-style: hidden;\r
+}\r
+\r
+th.tableblock.halign-left, td.tableblock.halign-left {\r
+ text-align: left;\r
+}\r
+th.tableblock.halign-center, td.tableblock.halign-center {\r
+ text-align: center;\r
+}\r
+th.tableblock.halign-right, td.tableblock.halign-right {\r
+ text-align: right;\r
+}\r
+\r
+th.tableblock.valign-top, td.tableblock.valign-top {\r
+ vertical-align: top;\r
+}\r
+th.tableblock.valign-middle, td.tableblock.valign-middle {\r
+ vertical-align: middle;\r
+}\r
+th.tableblock.valign-bottom, td.tableblock.valign-bottom {\r
+ vertical-align: bottom;\r
+}\r
+\r
+\r
+/*\r
+ * manpage specific\r
+ *\r
+ * */\r
+\r
+body.manpage h1 {\r
+ padding-top: 0.5em;\r
+ padding-bottom: 0.5em;\r
+ border-top: 2px solid silver;\r
+ border-bottom: 2px solid silver;\r
+}\r
+body.manpage h2 {\r
+ border-style: none;\r
+}\r
+body.manpage div.sectionbody {\r
+ margin-left: 3em;\r
+}\r
+\r
+@media print {\r
+ body.manpage div#toc { display: none; }\r
+}\r
+/* slidy.css\r
+\r
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.\r
+ W3C liability, trademark, document use and software licensing\r
+ rules apply, see:\r
+\r
+ http://www.w3.org/Consortium/Legal/copyright-documents\r
+ http://www.w3.org/Consortium/Legal/copyright-software\r
+*/\r
+\r
+/*\r
+ SJR: 2010-09-29: Modified for AsciiDoc slidy backend.\r
+ Mostly just commented out stuff that is handled by AsciiDoc's CSS files.\r
+*/\r
+\r
+body\r
+{\r
+ margin: 0 0 0 0;\r
+ padding: 0 0 0 0;\r
+ width: 100%;\r
+ height: 100%;\r
+ color: black;\r
+ background-color: white;\r
+/*\r
+ font-family: "Gill Sans MT", "Gill Sans", GillSans, sans-serif;\r
+*/\r
+ font-size: 14pt;\r
+}\r
+\r
+div.toolbar {\r
+ position: fixed; z-index: 200;\r
+ top: auto; bottom: 0; left: 0; right: 0;\r
+ height: 1.2em; text-align: right;\r
+ padding-left: 1em;\r
+ padding-right: 1em;\r
+ font-size: 60%;\r
+ color: red;\r
+ background-color: rgb(240,240,240);\r
+ border-top: solid 1px rgb(180,180,180);\r
+}\r
+\r
+div.toolbar span.copyright {\r
+ color: black;\r
+ margin-left: 0.5em;\r
+}\r
+\r
+div.initial_prompt {\r
+ position: absolute;\r
+ z-index: 1000;\r
+ bottom: 1.2em;\r
+ width: 90%;\r
+ background-color: rgb(200,200,200);\r
+ opacity: 0.35;\r
+ background-color: rgb(200,200,200, 0.35);\r
+ cursor: pointer;\r
+}\r
+\r
+div.initial_prompt p.help {\r
+ text-align: center;\r
+}\r
+\r
+div.initial_prompt p.close {\r
+ text-align: right;\r
+ font-style: italic;\r
+}\r
+\r
+div.slidy_toc {\r
+ position: absolute;\r
+ z-index: 300;\r
+ width: 60%;\r
+ max-width: 30em;\r
+ height: 30em;\r
+ overflow: auto;\r
+ top: auto;\r
+ right: auto;\r
+ left: 4em;\r
+ bottom: 4em;\r
+ padding: 1em;\r
+ background: rgb(240,240,240);\r
+ border-style: solid;\r
+ border-width: 2px;\r
+ font-size: 60%;\r
+}\r
+\r
+div.slidy_toc .toc_heading {\r
+ text-align: center;\r
+ width: 100%;\r
+ margin: 0;\r
+ margin-bottom: 1em;\r
+ border-bottom-style: solid;\r
+ border-bottom-color: rgb(180,180,180);\r
+ border-bottom-width: 1px;\r
+}\r
+\r
+div.slide {\r
+ z-index: 20;\r
+ margin: 0 0 0 0;\r
+ padding-top: 0;\r
+ padding-bottom: 0;\r
+ padding-left: 20px;\r
+ padding-right: 20px;\r
+ border-width: 0;\r
+ clear: both;\r
+ top: 0;\r
+ bottom: 0;\r
+ left: 0;\r
+ right: 0;\r
+ line-height: 120%;\r
+ background-color: transparent;\r
+}\r
+\r
+div.background {\r
+ display: none;\r
+}\r
+\r
+div.handout {\r
+ margin-left: 20px;\r
+ margin-right: 20px;\r
+}\r
+\r
+div.slide.titlepage {\r
+ text-align: center;\r
+}\r
+\r
+div.slide.titlepage.h1 {\r
+ padding-top: 10%;\r
+}\r
+\r
+div.slide h1 {\r
+ padding-left: 0;\r
+ padding-right: 20pt;\r
+ padding-top: 4pt;\r
+ padding-bottom: 4pt;\r
+ margin-top: 0;\r
+ margin-left: 0;\r
+ margin-right: 60pt;\r
+ margin-bottom: 0.5em;\r
+ display: block;\r
+ font-size: 160%;\r
+ line-height: 1.2em;\r
+ background: transparent;\r
+}\r
+\r
+div.toc {\r
+ position: absolute;\r
+ top: auto;\r
+ bottom: 4em;\r
+ left: 4em;\r
+ right: auto;\r
+ width: 60%;\r
+ max-width: 30em;\r
+ height: 30em;\r
+ border: solid thin black;\r
+ padding: 1em;\r
+ background: rgb(240,240,240);\r
+ color: black;\r
+ z-index: 300;\r
+ overflow: auto;\r
+ display: block;\r
+ visibility: visible;\r
+}\r
+\r
+div.toc-heading {\r
+ width: 100%;\r
+ border-bottom: solid 1px rgb(180,180,180);\r
+ margin-bottom: 1em;\r
+ text-align: center;\r
+}\r
+\r
+/*\r
+pre {\r
+ font-size: 80%;\r
+ font-weight: bold;\r
+ line-height: 120%;\r
+ padding-top: 0.2em;\r
+ padding-bottom: 0.2em;\r
+ padding-left: 1em;\r
+ padding-right: 1em;\r
+ border-style: solid;\r
+ border-left-width: 1em;\r
+ border-top-width: thin;\r
+ border-right-width: thin;\r
+ border-bottom-width: thin;\r
+ border-color: #95ABD0;\r
+ color: #00428C;\r
+ background-color: #E4E5E7;\r
+}\r
+*/\r
+\r
+/*\r
+li pre { margin-left: 0; }\r
+\r
+blockquote { font-style: italic }\r
+\r
+img { background-color: transparent }\r
+\r
+p.copyright { font-size: smaller }\r
+*/\r
+\r
+.center { text-align: center }\r
+.footnote { font-size: smaller; margin-left: 2em; }\r
+\r
+/*\r
+a img { border-width: 0; border-style: none }\r
+*/\r
+\r
+a:visited { color: navy }\r
+a:link { color: navy }\r
+a:hover { color: red; text-decoration: underline }\r
+a:active { color: red; text-decoration: underline }\r
+\r
+a {text-decoration: none}\r
+.navbar a:link {color: white}\r
+.navbar a:visited {color: yellow}\r
+.navbar a:active {color: red}\r
+.navbar a:hover {color: red}\r
+\r
+/*\r
+ul { list-style-type: square; }\r
+ul ul { list-style-type: disc; }\r
+ul ul ul { list-style-type: circle; }\r
+ul ul ul ul { list-style-type: disc; }\r
+li { margin-left: 0.5em; margin-top: 0.5em; }\r
+li li { font-size: 85%; font-style: italic }\r
+li li li { font-size: 85%; font-style: normal }\r
+*/\r
+\r
+div dt\r
+{\r
+ margin-left: 0;\r
+ margin-top: 1em;\r
+ margin-bottom: 0.5em;\r
+ font-weight: bold;\r
+}\r
+div dd\r
+{\r
+ margin-left: 2em;\r
+ margin-bottom: 0.5em;\r
+}\r
+\r
+\r
+/*\r
+p,pre,ul,ol,blockquote,h2,h3,h4,h5,h6,dl,table {\r
+ margin-left: 1em;\r
+ margin-right: 1em;\r
+}\r
+*/\r
+\r
+p.subhead { font-weight: bold; margin-top: 2em; }\r
+\r
+.smaller { font-size: smaller }\r
+.bigger { font-size: 130% }\r
+\r
+/*\r
+td,th { padding: 0.2em }\r
+*/\r
+\r
+ul {\r
+ margin: 0.5em 1.5em 0.5em 1.5em;\r
+ padding: 0;\r
+}\r
+\r
+ol {\r
+ margin: 0.5em 1.5em 0.5em 1.5em;\r
+ padding: 0;\r
+}\r
+\r
+ul { list-style-type: square; }\r
+ul ul { list-style-type: disc; }\r
+ul ul ul { list-style-type: circle; }\r
+ul ul ul ul { list-style-type: disc; }\r
+\r
+/*\r
+ul li {\r
+ list-style: square;\r
+ margin: 0.1em 0em 0.6em 0;\r
+ padding: 0 0 0 0;\r
+ line-height: 140%;\r
+}\r
+\r
+ol li {\r
+ margin: 0.1em 0em 0.6em 1.5em;\r
+ padding: 0 0 0 0px;\r
+ line-height: 140%;\r
+ list-style-type: decimal;\r
+}\r
+\r
+li ul li {\r
+ font-size: 85%;\r
+ font-style: italic;\r
+ list-style-type: disc;\r
+ background: transparent;\r
+ padding: 0 0 0 0;\r
+}\r
+li li ul li {\r
+ font-size: 85%;\r
+ font-style: normal;\r
+ list-style-type: circle;\r
+ background: transparent;\r
+ padding: 0 0 0 0;\r
+}\r
+li li li ul li {\r
+ list-style-type: disc;\r
+ background: transparent;\r
+ padding: 0 0 0 0;\r
+}\r
+\r
+li ol li {\r
+ list-style-type: decimal;\r
+}\r
+\r
+\r
+li li ol li {\r
+ list-style-type: decimal;\r
+}\r
+*/\r
+\r
+/*\r
+ setting class="outline" on ol or ul makes it behave as an\r
+ ouline list where blocklevel content in li elements is\r
+ hidden by default and can be expanded or collapsed with\r
+ mouse click. Set class="expand" on li to override default\r
+*/\r
+\r
+ol.outline li:hover { cursor: pointer }\r
+ol.outline li.nofold:hover { cursor: default }\r
+\r
+ul.outline li:hover { cursor: pointer }\r
+ul.outline li.nofold:hover { cursor: default }\r
+\r
+ol.outline { list-style:decimal; }\r
+ol.outline ol { list-style-type:lower-alpha }\r
+\r
+ol.outline li.nofold {\r
+ padding: 0 0 0 20px;\r
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;\r
+}\r
+ol.outline li.unfolded {\r
+ padding: 0 0 0 20px;\r
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;\r
+}\r
+ol.outline li.folded {\r
+ padding: 0 0 0 20px;\r
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;\r
+}\r
+ol.outline li.unfolded:hover {\r
+ padding: 0 0 0 20px;\r
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;\r
+}\r
+ol.outline li.folded:hover {\r
+ padding: 0 0 0 20px;\r
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;\r
+}\r
+\r
+ul.outline li.nofold {\r
+ padding: 0 0 0 20px;\r
+ background: transparent url(../graphics/nofold-dim.gif) no-repeat 0px 0.5em;\r
+}\r
+ul.outline li.unfolded {\r
+ padding: 0 0 0 20px;\r
+ background: transparent url(../graphics/fold-dim.gif) no-repeat 0px 0.5em;\r
+}\r
+ul.outline li.folded {\r
+ padding: 0 0 0 20px;\r
+ background: transparent url(../graphics/unfold-dim.gif) no-repeat 0px 0.5em;\r
+}\r
+ul.outline li.unfolded:hover {\r
+ padding: 0 0 0 20px;\r
+ background: transparent url(../graphics/fold.gif) no-repeat 0px 0.5em;\r
+}\r
+ul.outline li.folded:hover {\r
+ padding: 0 0 0 20px;\r
+ background: transparent url(../graphics/unfold.gif) no-repeat 0px 0.5em;\r
+}\r
+\r
+/* for slides with class "title" in table of contents */\r
+a.titleslide { font-weight: bold; font-style: italic }\r
+\r
+/*\r
+ hide images for work around for save as bug\r
+ where browsers fail to save images used by CSS\r
+*/\r
+img.hidden { display: none; visibility: hidden }\r
+div.initial_prompt { display: none; visibility: hidden }\r
+\r
+ div.slide {\r
+ visibility: visible;\r
+ position: inherit;\r
+ }\r
+ div.handout {\r
+ border-top-style: solid;\r
+ border-top-width: thin;\r
+ border-top-color: black;\r
+ }\r
+\r
+@media screen {\r
+ .hidden { display: none; visibility: visible }\r
+\r
+ div.slide.hidden { display: block; visibility: visible }\r
+ div.handout.hidden { display: block; visibility: visible }\r
+ div.background { display: none; visibility: hidden }\r
+ body.single_slide div.initial_prompt { display: block; visibility: visible }\r
+ body.single_slide div.background { display: block; visibility: visible }\r
+ body.single_slide div.background.hidden { display: none; visibility: hidden }\r
+ body.single_slide .invisible { visibility: hidden }\r
+ body.single_slide .hidden { display: none; visibility: hidden }\r
+ body.single_slide div.slide { position: absolute }\r
+ body.single_slide div.handout { display: none; visibility: hidden }\r
+}\r
+\r
+@media print {\r
+ .hidden { display: block; visibility: visible }\r
+\r
+/*\r
+ div.slide pre { font-size: 60%; padding-left: 0.5em; }\r
+*/\r
+ div.toolbar { display: none; visibility: hidden; }\r
+ div.slidy_toc { display: none; visibility: hidden; }\r
+ div.background { display: none; visibility: hidden; }\r
+ div.slide { page-break-before: always }\r
+ /* :first-child isn't reliable for print media */\r
+ div.slide.first-slide { page-break-before: avoid }\r
+}\r
+\r
+\r
+/* SJR: AsciiDoc slidy backend tweaks */\r
+\r
+ol, ul {\r
+ margin: 0.8em 1.5em 0.8em 1.8em;\r
+}\r
+li > ul, li > ol {\r
+ margin-top: 0.5em;\r
+}\r
+\r
+.outline > li.folded,\r
+.outline > li.unfolded {\r
+ color: #527bbd;\r
+}\r
+ul > li{ color: #aaa; }\r
+ul > li > *, ol > li > * { color: black; }\r
+\r
+li {\r
+ margin-top: 0.5em;\r
+ margin-bottom: 0.5em;\r
+}\r
+\r
+\r
+</style>\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+/* slidy.js\r
+\r
+ Copyright (c) 2005-2010 W3C (MIT, ERCIM, Keio), All Rights Reserved.\r
+ W3C liability, trademark, document use and software licensing\r
+ rules apply, see:\r
+\r
+ http://www.w3.org/Consortium/Legal/copyright-documents\r
+ http://www.w3.org/Consortium/Legal/copyright-software\r
+*/\r
+\r
+// the slidy object implementation\r
+var w3c_slidy = {\r
+ // classify which kind of browser we're running under\r
+ ns_pos: (typeof window.pageYOffset!='undefined'),\r
+ khtml: ((navigator.userAgent).indexOf("KHTML") >= 0 ? true : false),\r
+ opera: ((navigator.userAgent).indexOf("Opera") >= 0 ? true : false),\r
+ ipad: ((navigator.userAgent).indexOf("iPad") >= 0 ? true : false),\r
+ iphone: ((navigator.userAgent).indexOf("iPhone") >= 0 ? true : false),\r
+ ie: (typeof document.all != "undefined" && !this.opera),\r
+ ie6: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 6") != -1),\r
+ ie7: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 7") != -1),\r
+ ie8: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 8") != -1),\r
+ ie9: (!this.ns_pos && navigator.userAgent.indexOf("MSIE 9") != -1),\r
+ keyboardless: (this.ipad || this.iphone),\r
+\r
+ // are we running as XHTML? (doesn't work on Opera)\r
+ is_xhtml: /xml/.test(document.contentType),\r
+\r
+ slide_number: 0, // integer slide count: 0, 1, 2, ...\r
+ slide_number_element: null, // element containing slide number\r
+ slides: [], // set to array of slide div's\r
+ notes: [], // set to array of handout div's\r
+ backgrounds: [], // set to array of background div's\r
+ toolbar: null, // element containing toolbar\r
+ title: null, // document title\r
+ last_shown: null, // last incrementally shown item\r
+ eos: null, // span element for end of slide indicator\r
+ toc: null, // table of contents\r
+ outline: null, // outline element with the focus\r
+ selected_text_len: 0, // length of drag selection on document\r
+ view_all: 0, // 1 to view all slides + handouts\r
+ want_toolbar: true, // user preference to show/hide toolbar\r
+ mouse_click_enabled: true, // enables left click for next slide\r
+ scroll_hack: 0, // IE work around for position: fixed\r
+ disable_slide_click: false, // used by clicked anchors\r
+\r
+ lang: "en", // updated to language specified by html file\r
+\r
+ help_anchor: null, // used for keyboard focus hack in showToolbar()\r
+ help_page: "http://www.w3.org/Talks/Tools/Slidy2/help/help.html",\r
+ help_text: "Navigate with mouse click, space bar, Cursor Left/Right, " +\r
+ "or Pg Up and Pg Dn. Use S and B to change font size.",\r
+\r
+ size_index: 0,\r
+ size_adjustment: 0,\r
+ sizes: new Array("10pt", "12pt", "14pt", "16pt", "18pt", "20pt",\r
+ "22pt", "24pt", "26pt", "28pt", "30pt", "32pt"),\r
+\r
+ // needed for efficient resizing\r
+ last_width: 0,\r
+ last_height: 0,\r
+\r
+\r
+ // Needed for cross browser support for relative width/height on\r
+ // object elements. The work around is to save width/height attributes\r
+ // and then to recompute absolute width/height dimensions on resizing\r
+ objects: [],\r
+\r
+ // attach initialiation event handlers\r
+ set_up: function () {\r
+ var init = function() { w3c_slidy.init(); };\r
+ if (typeof window.addEventListener != "undefined")\r
+ window.addEventListener("load", init, false);\r
+ else\r
+ window.attachEvent("onload", init);\r
+ },\r
+\r
+ hide_slides: function () {\r
+ if (document.body && !w3c_slidy.initialized)\r
+ document.body.style.visibility = "hidden";\r
+ else\r
+ setTimeout(w3c_slidy.hide_slides, 50);\r
+ },\r
+\r
+ // hack to persuade IE to compute correct document height\r
+ // as needed for simulating fixed positioning of toolbar\r
+ ie_hack: function () {\r
+ window.resizeBy(0,-1);\r
+ window.resizeBy(0, 1);\r
+ },\r
+\r
+ init: function () {\r
+ //alert("slidy starting test 10");\r
+ document.body.style.visibility = "visible";\r
+ w3c_slidy_i18n.init();\r
+ this.add_toolbar();\r
+ this.wrap_implicit_slides();\r
+ this.collect_slides();\r
+ this.collect_notes();\r
+ this.collect_backgrounds();\r
+ this.objects = document.body.getElementsByTagName("object");\r
+ this.patch_anchors();\r
+ this.slide_number = this.find_slide_number(location.href);\r
+ window.offscreenbuffering = true;\r
+ this.size_adjustment = this.find_size_adjust();\r
+ this.time_left = this.find_duration();\r
+ this.hide_image_toolbar(); // suppress IE image toolbar popup\r
+ this.init_outliner(); // activate fold/unfold support\r
+ this.title = document.title;\r
+\r
+ // work around for opera bug\r
+ this.is_xhtml = (document.body.tagName == "BODY" ? false : true);\r
+\r
+ if (this.slides.length > 0)\r
+ {\r
+ var slide = this.slides[this.slide_number];\r
+\r
+ if (this.slide_number > 0)\r
+ {\r
+ this.set_visibility_all_incremental("visible");\r
+ this.last_shown = this.previous_incremental_item(null);\r
+ this.set_eos_status(true);\r
+ }\r
+ else\r
+ {\r
+ this.last_shown = null;\r
+ this.set_visibility_all_incremental("hidden");\r
+ this.set_eos_status(!this.next_incremental_item(this.last_shown));\r
+ }\r
+\r
+ this.set_location();\r
+ this.add_class(this.slides[0], "first-slide");\r
+ w3c_slidy.show_slide(slide);\r
+ }\r
+\r
+ this.toc = this.table_of_contents();\r
+\r
+ this.add_initial_prompt();\r
+\r
+ // bind event handlers without interfering with custom page scripts\r
+ // Tap events behave too weirdly to support clicks reliably on\r
+ // iPhone and iPad, so exclude these from click handler\r
+\r
+ if (!this.keyboardless)\r
+ this.add_listener(document.body, "click", this.mouse_button_click);\r
+\r
+ this.add_listener(document, "keydown", this.key_down);\r
+ this.add_listener(document, "keypress", this.key_press);\r
+ this.add_listener(window, "resize", this.resized);\r
+ this.add_listener(window, "scroll", this.scrolled);\r
+ this.add_listener(window, "unload", this.unloaded);\r
+\r
+ if (!document.body.onclick)\r
+ document.body.onclick = function () { };\r
+\r
+ this.single_slide_view();\r
+\r
+ //this.set_location();\r
+\r
+ this.resized();\r
+\r
+ if (this.ie7)\r
+ setTimeout(w3c_slidy.ie_hack, 100);\r
+\r
+ this.show_toolbar();\r
+\r
+ // for back button detection\r
+ setInterval(function () { w3c_slidy.check_location(); }, 200);\r
+ w3c_slidy.initialized = true;\r
+ },\r
+\r
+ // create div element with links to each slide\r
+ table_of_contents: function () {\r
+ var toc = this.create_element("div");\r
+ this.add_class(toc, "slidy_toc hidden");\r
+ //toc.setAttribute("tabindex", "0");\r
+\r
+ var heading = this.create_element("div");\r
+ this.add_class(heading, "toc-heading");\r
+ heading.innerHTML = "Table of Contents".localize();\r
+\r
+ toc.appendChild(heading);\r
+ var previous = null;\r
+\r
+ for (var i = 0; i < this.slides.length; ++i)\r
+ {\r
+ var title = this.has_class(this.slides[i], "title");\r
+ var num = document.createTextNode((i + 1) + ". ");\r
+\r
+ toc.appendChild(num);\r
+\r
+ var a = this.create_element("a");\r
+ a.setAttribute("href", "#(" + (i+1) + ")");\r
+\r
+ if (title)\r
+ this.add_class(a, "titleslide");\r
+\r
+ var name = document.createTextNode(this.slide_name(i));\r
+ a.appendChild(name);\r
+ a.onclick = w3c_slidy.toc_click;\r
+ a.onkeydown = w3c_slidy.toc_keydown;\r
+ a.previous = previous;\r
+\r
+ if (previous)\r
+ previous.next = a;\r
+\r
+ toc.appendChild(a);\r
+\r
+ if (i == 0)\r
+ toc.first = a;\r
+\r
+ if (i < this.slides.length - 1)\r
+ {\r
+ var br = this.create_element("br");\r
+ toc.appendChild(br);\r
+ }\r
+\r
+ previous = a;\r
+ }\r
+\r
+ toc.focus = function () {\r
+ if (this.first)\r
+ this.first.focus();\r
+ }\r
+\r
+ toc.onmouseup = w3c_slidy.mouse_button_up;\r
+\r
+ toc.onclick = function (e) {\r
+ e||(e=window.event);\r
+\r
+ if (w3c_slidy.selected_text_len <= 0)\r
+ w3c_slidy.hide_table_of_contents();\r
+\r
+ w3c_slidy.stop_propagation(e);\r
+\r
+ if (e.cancel != undefined)\r
+ e.cancel = true;\r
+\r
+ if (e.returnValue != undefined)\r
+ e.returnValue = false;\r
+\r
+ return false;\r
+ };\r
+\r
+ document.body.insertBefore(toc, document.body.firstChild);\r
+ return toc;\r
+ },\r
+\r
+ is_shown_toc: function () {\r
+ return !w3c_slidy.has_class(w3c_slidy.toc, "hidden");\r
+ },\r
+\r
+ show_table_of_contents: function () {\r
+ w3c_slidy.remove_class(w3c_slidy.toc, "hidden");\r
+ var toc = w3c_slidy.toc;\r
+ toc.focus();\r
+\r
+ if (w3c_slidy.ie7 && w3c_slidy.slide_number == 0)\r
+ setTimeout(w3c_slidy.ie_hack, 100);\r
+ },\r
+\r
+ hide_table_of_contents: function () {\r
+ w3c_slidy.add_class(w3c_slidy.toc, "hidden");\r
+\r
+ if (!w3c_slidy.opera)\r
+ w3c_slidy.help_anchor.focus();\r
+ },\r
+\r
+ toggle_table_of_contents: function () {\r
+ if (w3c_slidy.is_shown_toc())\r
+ w3c_slidy.hide_table_of_contents();\r
+ else\r
+ w3c_slidy.show_table_of_contents();\r
+ },\r
+\r
+ // called on clicking toc entry\r
+ toc_click: function (e) {\r
+ if (!e)\r
+ e = window.event;\r
+\r
+ var target = w3c_slidy.get_target(e);\r
+\r
+ if (target && target.nodeType == 1)\r
+ {\r
+ var uri = target.getAttribute("href");\r
+\r
+ if (uri)\r
+ {\r
+ //alert("going to " + uri);\r
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.hide_slide(slide);\r
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);\r
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.last_shown = null;\r
+ w3c_slidy.set_location();\r
+ w3c_slidy.set_visibility_all_incremental("hidden");\r
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));\r
+ w3c_slidy.show_slide(slide);\r
+ //target.focus();\r
+\r
+ try\r
+ {\r
+ if (!w3c_slidy.opera)\r
+ w3c_slidy.help_anchor.focus();\r
+ }\r
+ catch (e)\r
+ {\r
+ }\r
+ }\r
+ }\r
+\r
+ w3c_slidy.hide_table_of_contents(e);\r
+ if (w3c_slidy.ie7) w3c_slidy.ie_hack();\r
+ w3c_slidy.stop_propagation(e);\r
+ return w3c_slidy.cancel(e);\r
+ },\r
+\r
+ // called onkeydown for toc entry\r
+ toc_keydown: function (event) {\r
+ var key;\r
+\r
+ if (!event)\r
+ var event = window.event;\r
+\r
+ // kludge around NS/IE differences\r
+ if (window.event)\r
+ key = window.event.keyCode;\r
+ else if (event.which)\r
+ key = event.which;\r
+ else\r
+ return true; // Yikes! unknown browser\r
+\r
+ // ignore event if key value is zero\r
+ // as for alt on Opera and Konqueror\r
+ if (!key)\r
+ return true;\r
+\r
+ // check for concurrent control/command/alt key\r
+ // but are these only present on mouse events?\r
+\r
+ if (event.ctrlKey || event.altKey)\r
+ return true;\r
+\r
+ if (key == 13)\r
+ {\r
+ var uri = this.getAttribute("href");\r
+\r
+ if (uri)\r
+ {\r
+ //alert("going to " + uri);\r
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.hide_slide(slide);\r
+ w3c_slidy.slide_number = w3c_slidy.find_slide_number(uri);\r
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.last_shown = null;\r
+ w3c_slidy.set_location();\r
+ w3c_slidy.set_visibility_all_incremental("hidden");\r
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));\r
+ w3c_slidy.show_slide(slide);\r
+ //target.focus();\r
+\r
+ try\r
+ {\r
+ if (!w3c_slidy.opera)\r
+ w3c_slidy.help_anchor.focus();\r
+ }\r
+ catch (e)\r
+ {\r
+ }\r
+ }\r
+\r
+ w3c_slidy.hide_table_of_contents();\r
+\r
+ if (self.ie7)\r
+ w3c_slidy.ie_hack();\r
+\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+\r
+ if (key == 40 && this.next)\r
+ {\r
+ this.next.focus();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+\r
+ if (key == 38 && this.previous)\r
+ {\r
+ this.previous.focus();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+\r
+ return true;\r
+ },\r
+\r
+\r
+ // ### OBSOLETE ###\r
+ before_print: function () {\r
+ this.show_all_slides();\r
+ this.hide_toolbar();\r
+ alert("before print");\r
+ },\r
+\r
+ // ### OBSOLETE ###\r
+ after_print: function () {\r
+ if (!this.view_all)\r
+ {\r
+ this.single_slide_view();\r
+ this.show_toolbar();\r
+ }\r
+ alert("after print");\r
+ },\r
+\r
+ // ### OBSOLETE ###\r
+ print_slides: function () {\r
+ this.before_print();\r
+ window.print();\r
+ this.after_print();\r
+ },\r
+\r
+ // ### OBSOLETE ?? ###\r
+ toggle_view: function () {\r
+ if (this.view_all)\r
+ {\r
+ this.single_slide_view();\r
+ this.show_toolbar();\r
+ this.view_all = 0;\r
+ }\r
+ else\r
+ {\r
+ this.show_all_slides();\r
+ this.hide_toolbar();\r
+ this.view_all = 1;\r
+ }\r
+ },\r
+\r
+ // prepare for printing ### OBSOLETE ###\r
+ show_all_slides: function () {\r
+ this.remove_class(document.body, "single_slide");\r
+ this.set_visibility_all_incremental("visible");\r
+ },\r
+\r
+ // restore after printing ### OBSOLETE ###\r
+ single_slide_view: function () {\r
+ this.add_class(document.body, "single_slide");\r
+ this.set_visibility_all_incremental("visible");\r
+ this.last_shown = this.previous_incremental_item(null);\r
+ },\r
+\r
+ // suppress IE's image toolbar pop up\r
+ hide_image_toolbar: function () {\r
+ if (!this.ns_pos)\r
+ {\r
+ var images = document.getElementsByTagName("IMG");\r
+\r
+ for (var i = 0; i < images.length; ++i)\r
+ images[i].setAttribute("galleryimg", "no");\r
+ }\r
+ },\r
+\r
+ unloaded: function (e) {\r
+ //alert("unloaded");\r
+ },\r
+\r
+ // Safari and Konqueror don't yet support getComputedStyle()\r
+ // and they always reload page when location.href is updated\r
+ is_KHTML: function () {\r
+ var agent = navigator.userAgent;\r
+ return (agent.indexOf("KHTML") >= 0 ? true : false);\r
+ },\r
+\r
+ // find slide name from first h1 element\r
+ // default to document title + slide number\r
+ slide_name: function (index) {\r
+ var name = null;\r
+ var slide = this.slides[index];\r
+\r
+ var heading = this.find_heading(slide);\r
+\r
+ if (heading)\r
+ name = this.extract_text(heading);\r
+\r
+ if (!name)\r
+ name = this.title + "(" + (index + 1) + ")";\r
+\r
+ name.replace(/\&/g, "&");\r
+ name.replace(/\</g, "<");\r
+ name.replace(/\>/g, ">");\r
+\r
+ return name;\r
+ },\r
+\r
+ // find first h1 element in DOM tree\r
+ find_heading: function (node) {\r
+ if (!node || node.nodeType != 1)\r
+ return null;\r
+\r
+ if (node.nodeName == "H1" || node.nodeName == "h1")\r
+ return node;\r
+\r
+ var child = node.firstChild;\r
+\r
+ while (child)\r
+ {\r
+ node = this.find_heading(child);\r
+\r
+ if (node)\r
+ return node;\r
+\r
+ child = child.nextSibling;\r
+ }\r
+\r
+ return null;\r
+ },\r
+\r
+ // recursively extract text from DOM tree\r
+ extract_text: function (node) {\r
+ if (!node)\r
+ return "";\r
+\r
+ // text nodes\r
+ if (node.nodeType == 3)\r
+ return node.nodeValue;\r
+\r
+ // elements\r
+ if (node.nodeType == 1)\r
+ {\r
+ node = node.firstChild;\r
+ var text = "";\r
+\r
+ while (node)\r
+ {\r
+ text = text + this.extract_text(node);\r
+ node = node.nextSibling;\r
+ }\r
+\r
+ return text;\r
+ }\r
+\r
+ return "";\r
+ },\r
+\r
+ // find copyright text from meta element\r
+ find_copyright: function () {\r
+ var name, content;\r
+ var meta = document.getElementsByTagName("meta");\r
+\r
+ for (var i = 0; i < meta.length; ++i)\r
+ {\r
+ name = meta[i].getAttribute("name");\r
+ content = meta[i].getAttribute("content");\r
+\r
+ if (name == "copyright")\r
+ return content;\r
+ }\r
+\r
+ return null;\r
+ },\r
+\r
+ find_size_adjust: function () {\r
+ var name, content, offset;\r
+ var meta = document.getElementsByTagName("meta");\r
+\r
+ for (var i = 0; i < meta.length; ++i)\r
+ {\r
+ name = meta[i].getAttribute("name");\r
+ content = meta[i].getAttribute("content");\r
+\r
+ if (name == "font-size-adjustment")\r
+ return 1 * content;\r
+ }\r
+\r
+ return 1;\r
+ },\r
+\r
+ // <meta name="duration" content="20" /> for 20 minutes\r
+ find_duration: function () {\r
+ var name, content, offset;\r
+ var meta = document.getElementsByTagName("meta");\r
+\r
+ for (var i = 0; i < meta.length; ++i)\r
+ {\r
+ name = meta[i].getAttribute("name");\r
+ content = meta[i].getAttribute("content");\r
+\r
+ if (name == "duration")\r
+ return 60000 * content;\r
+ }\r
+\r
+ return null;\r
+ },\r
+\r
+ replace_by_non_breaking_space: function (str) {\r
+ for (var i = 0; i < str.length; ++i)\r
+ str[i] = 160;\r
+ },\r
+\r
+ // ### CHECK ME ### is use of "li" okay for text/html?\r
+ // for XHTML do we also need to specify namespace?\r
+ init_outliner: function () {\r
+ var items = document.getElementsByTagName("li");\r
+\r
+ for (var i = 0; i < items.length; ++i)\r
+ {\r
+ var target = items[i];\r
+\r
+ if (!this.has_class(target.parentNode, "outline"))\r
+ continue;\r
+\r
+ target.onclick = this.outline_click;\r
+/* ### more work needed for IE6\r
+ if (!this.ns_pos)\r
+ {\r
+ target.onmouseover = this.hover_outline;\r
+ target.onmouseout = this.unhover_outline;\r
+ }\r
+*/\r
+ if (this.foldable(target))\r
+ {\r
+ target.foldable = true;\r
+ target.onfocus = function () {w3c_slidy.outline = this;};\r
+ target.onblur = function () {w3c_slidy.outline = null;};\r
+\r
+ if (!target.getAttribute("tabindex"))\r
+ target.setAttribute("tabindex", "0");\r
+\r
+ if (this.has_class(target, "expand"))\r
+ this.unfold(target);\r
+ else\r
+ this.fold(target);\r
+ }\r
+ else\r
+ {\r
+ this.add_class(target, "nofold");\r
+ target.visible = true;\r
+ target.foldable = false;\r
+ }\r
+ }\r
+ },\r
+\r
+ foldable: function (item) {\r
+ if (!item || item.nodeType != 1)\r
+ return false;\r
+\r
+ var node = item.firstChild;\r
+\r
+ while (node)\r
+ {\r
+ if (node.nodeType == 1 && this.is_block(node))\r
+ return true;\r
+\r
+ node = node.nextSibling;\r
+ }\r
+\r
+ return false;\r
+ },\r
+\r
+ // ### CHECK ME ### switch to add/remove "hidden" class\r
+ fold: function (item) {\r
+ if (item)\r
+ {\r
+ this.remove_class(item, "unfolded");\r
+ this.add_class(item, "folded");\r
+ }\r
+\r
+ var node = item ? item.firstChild : null;\r
+\r
+ while (node)\r
+ {\r
+ if (node.nodeType == 1 && this.is_block(node)) // element\r
+ {\r
+ w3c_slidy.add_class(node, "hidden");\r
+ }\r
+\r
+ node = node.nextSibling;\r
+ }\r
+\r
+ item.visible = false;\r
+ },\r
+\r
+ // ### CHECK ME ### switch to add/remove "hidden" class\r
+ unfold: function (item) {\r
+ if (item)\r
+ {\r
+ this.add_class(item, "unfolded");\r
+ this.remove_class(item, "folded");\r
+ }\r
+\r
+ var node = item ? item.firstChild : null;\r
+\r
+ while (node)\r
+ {\r
+ if (node.nodeType == 1 && this.is_block(node)) // element\r
+ {\r
+ w3c_slidy.remove_class(node, "hidden");\r
+ }\r
+\r
+ node = node.nextSibling;\r
+ }\r
+\r
+ item.visible = true;\r
+ },\r
+\r
+ outline_click: function (e) {\r
+ if (!e)\r
+ e = window.event;\r
+\r
+ var rightclick = false;\r
+ var target = w3c_slidy.get_target(e);\r
+\r
+ while (target && target.visible == undefined)\r
+ target = target.parentNode;\r
+\r
+ if (!target)\r
+ return true;\r
+\r
+ if (e.which)\r
+ rightclick = (e.which == 3);\r
+ else if (e.button)\r
+ rightclick = (e.button == 2);\r
+\r
+ if (!rightclick && target.visible != undefined)\r
+ {\r
+ if (target.foldable)\r
+ {\r
+ if (target.visible)\r
+ w3c_slidy.fold(target);\r
+ else\r
+ w3c_slidy.unfold(target);\r
+ }\r
+\r
+ w3c_slidy.stop_propagation(e);\r
+ e.cancel = true;\r
+ e.returnValue = false;\r
+ }\r
+\r
+ return false;\r
+ },\r
+\r
+ add_initial_prompt: function () {\r
+ var prompt = this.create_element("div");\r
+ prompt.setAttribute("class", "initial_prompt");\r
+\r
+ var p1 = this.create_element("p");\r
+ prompt.appendChild(p1);\r
+ p1.setAttribute("class", "help");\r
+\r
+ if (this.keyboardless)\r
+ p1.innerHTML = "Tap footer to move to next slide";\r
+ else\r
+ p1.innerHTML = "Space or Right Arrow to move to next " +\r
+ "slide, click help below for more details";\r
+\r
+ this.add_listener(prompt, "click", function (e) {\r
+ document.body.removeChild(prompt);\r
+ w3c_slidy.stop_propagation(e);\r
+\r
+ if (e.cancel != undefined)\r
+ e.cancel = true;\r
+\r
+ if (e.returnValue != undefined)\r
+ e.returnValue = false;\r
+\r
+ return false;\r
+ });\r
+\r
+ document.body.appendChild(prompt);\r
+ this.initial_prompt = prompt;\r
+ setTimeout(function() {document.body.removeChild(prompt);}, 5000);\r
+ },\r
+\r
+ add_toolbar: function () {\r
+ var counter, page;\r
+\r
+ this.toolbar = this.create_element("div");\r
+ this.toolbar.setAttribute("class", "toolbar");\r
+\r
+ // a reasonably behaved browser\r
+ if (this.ns_pos || !this.ie6)\r
+ {\r
+ var right = this.create_element("div");\r
+ right.setAttribute("style", "float: right; text-align: right");\r
+\r
+ counter = this.create_element("span")\r
+ counter.innerHTML = "slide".localize() + " n/m";\r
+ right.appendChild(counter);\r
+ this.toolbar.appendChild(right);\r
+\r
+ var left = this.create_element("div");\r
+ left.setAttribute("style", "text-align: left");\r
+\r
+ // global end of slide indicator\r
+ this.eos = this.create_element("span");\r
+ this.eos.innerHTML = "* ";\r
+ left.appendChild(this.eos);\r
+\r
+ var help = this.create_element("a");\r
+ help.setAttribute("href", this.help_page);\r
+ help.setAttribute("title", this.help_text.localize());\r
+ help.innerHTML = "help?".localize();\r
+ left.appendChild(help);\r
+ this.help_anchor = help; // save for focus hack\r
+\r
+ var gap1 = document.createTextNode(" ");\r
+ left.appendChild(gap1);\r
+\r
+ var contents = this.create_element("a");\r
+ contents.setAttribute("href", "javascript:w3c_slidy.toggle_table_of_contents()");\r
+ contents.setAttribute("title", "table of contents".localize());\r
+ contents.innerHTML = "contents?".localize();\r
+ left.appendChild(contents);\r
+\r
+ var gap2 = document.createTextNode(" ");\r
+ left.appendChild(gap2);\r
+\r
+ var copyright = this.find_copyright();\r
+\r
+ if (copyright)\r
+ {\r
+ var span = this.create_element("span");\r
+ span.className = "copyright";\r
+ span.innerHTML = copyright;\r
+ left.appendChild(span);\r
+ }\r
+\r
+ this.toolbar.setAttribute("tabindex", "0");\r
+ this.toolbar.appendChild(left);\r
+ }\r
+ else // IE6 so need to work around its poor CSS support\r
+ {\r
+ this.toolbar.style.position = (this.ie7 ? "fixed" : "absolute");\r
+ this.toolbar.style.zIndex = "200";\r
+ this.toolbar.style.width = "99.9%";\r
+ this.toolbar.style.height = "1.2em";\r
+ this.toolbar.style.top = "auto";\r
+ this.toolbar.style.bottom = "0";\r
+ this.toolbar.style.left = "0";\r
+ this.toolbar.style.right = "0";\r
+ this.toolbar.style.textAlign = "left";\r
+ this.toolbar.style.fontSize = "60%";\r
+ this.toolbar.style.color = "red";\r
+ this.toolbar.borderWidth = 0;\r
+ this.toolbar.className = "toolbar";\r
+ this.toolbar.style.background = "rgb(240,240,240)";\r
+\r
+ // would like to have help text left aligned\r
+ // and page counter right aligned, floating\r
+ // div's don't work, so instead use nested\r
+ // absolutely positioned div's.\r
+\r
+ var sp = this.create_element("span");\r
+ sp.innerHTML = " * ";\r
+ this.toolbar.appendChild(sp);\r
+ this.eos = sp; // end of slide indicator\r
+\r
+ var help = this.create_element("a");\r
+ help.setAttribute("href", this.help_page);\r
+ help.setAttribute("title", this.help_text.localize());\r
+ help.innerHTML = "help?".localize();\r
+ this.toolbar.appendChild(help);\r
+ this.help_anchor = help; // save for focus hack\r
+\r
+ var gap1 = document.createTextNode(" ");\r
+ this.toolbar.appendChild(gap1);\r
+\r
+ var contents = this.create_element("a");\r
+ contents.setAttribute("href", "javascript:toggleTableOfContents()");\r
+ contents.setAttribute("title", "table of contents".localize());\r
+ contents.innerHTML = "contents?".localize();\r
+ this.toolbar.appendChild(contents);\r
+\r
+ var gap2 = document.createTextNode(" ");\r
+ this.toolbar.appendChild(gap2);\r
+\r
+ var copyright = this.find_copyright();\r
+\r
+ if (copyright)\r
+ {\r
+ var span = this.create_element("span");\r
+ span.innerHTML = copyright;\r
+ span.style.color = "black";\r
+ span.style.marginLeft = "0.5em";\r
+ this.toolbar.appendChild(span);\r
+ }\r
+\r
+ counter = this.create_element("div")\r
+ counter.style.position = "absolute";\r
+ counter.style.width = "auto"; //"20%";\r
+ counter.style.height = "1.2em";\r
+ counter.style.top = "auto";\r
+ counter.style.bottom = 0;\r
+ counter.style.right = "0";\r
+ counter.style.textAlign = "right";\r
+ counter.style.color = "red";\r
+ counter.style.background = "rgb(240,240,240)";\r
+\r
+ counter.innerHTML = "slide".localize() + " n/m";\r
+ this.toolbar.appendChild(counter);\r
+ }\r
+\r
+ // ensure that click isn't passed through to the page\r
+ this.toolbar.onclick =\r
+ function (e) {\r
+ if (!e)\r
+ e = window.event;\r
+\r
+ var target = e.target;\r
+\r
+ if (!target && e.srcElement)\r
+ target = e.srcElement;\r
+\r
+ // work around Safari bug\r
+ if (target && target.nodeType == 3)\r
+ target = target.parentNode;\r
+\r
+ w3c_slidy.stop_propagation(e);\r
+\r
+ if (target && target.nodeName.toLowerCase() != "a")\r
+ w3c_slidy.mouse_button_click(e);\r
+ };\r
+\r
+ this.slide_number_element = counter;\r
+ this.set_eos_status(false);\r
+ document.body.appendChild(this.toolbar);\r
+ },\r
+\r
+ // wysiwyg editors make it hard to use div elements\r
+ // e.g. amaya loses the div when you copy and paste\r
+ // this function wraps div elements around implicit\r
+ // slides which start with an h1 element and continue\r
+ // up to the next heading or div element\r
+ wrap_implicit_slides: function () {\r
+ var i, heading, node, next, div;\r
+ var headings = document.getElementsByTagName("h1");\r
+\r
+ if (!headings)\r
+ return;\r
+\r
+ for (i = 0; i < headings.length; ++i)\r
+ {\r
+ heading = headings[i];\r
+\r
+ if (heading.parentNode != document.body)\r
+ continue;\r
+\r
+ node = heading.nextSibling;\r
+\r
+ div = document.createElement("div");\r
+ this.add_class(div, "slide");\r
+ document.body.replaceChild(div, heading);\r
+ div.appendChild(heading);\r
+\r
+ while (node)\r
+ {\r
+ if (node.nodeType == 1 && // an element\r
+ (node.nodeName == "H1" ||\r
+ node.nodeName == "h1" ||\r
+ node.nodeName == "DIV" ||\r
+ node.nodeName == "div"))\r
+ break;\r
+\r
+ next = node.nextSibling;\r
+ node = document.body.removeChild(node);\r
+ div.appendChild(node);\r
+ node = next;\r
+ }\r
+ }\r
+ },\r
+\r
+// return new array of all slides\r
+ collect_slides: function () {\r
+ var slides = new Array();\r
+ var divs = document.body.getElementsByTagName("div");\r
+\r
+ for (var i = 0; i < divs.length; ++i)\r
+ {\r
+ div = divs.item(i);\r
+\r
+ if (this.has_class(div, "slide"))\r
+ {\r
+ // add slide to collection\r
+ slides[slides.length] = div;\r
+\r
+ // hide each slide as it is found\r
+ this.add_class(div, "hidden");\r
+\r
+ // add dummy <br/> at end for scrolling hack\r
+ var node1 = document.createElement("br");\r
+ div.appendChild(node1);\r
+ var node2 = document.createElement("br");\r
+ div.appendChild(node2);\r
+ }\r
+ else if (this.has_class(div, "background"))\r
+ { // work around for Firefox SVG reload bug\r
+ // which otherwise replaces 1st SVG graphic with 2nd\r
+ div.style.display = "block";\r
+ }\r
+ }\r
+\r
+ this.slides = slides;\r
+ },\r
+\r
+ // return new array of all <div class="handout">\r
+ collect_notes: function () {\r
+ var notes = new Array();\r
+ var divs = document.body.getElementsByTagName("div");\r
+\r
+ for (var i = 0; i < divs.length; ++i)\r
+ {\r
+ div = divs.item(i);\r
+\r
+ if (this.has_class(div, "handout"))\r
+ {\r
+ // add note to collection\r
+ notes[notes.length] = div;\r
+\r
+ // and hide it\r
+ this.add_class(div, "hidden");\r
+ }\r
+ }\r
+\r
+ this.notes = notes;\r
+ },\r
+\r
+ // return new array of all <div class="background">\r
+ // including named backgrounds e.g. class="background titlepage"\r
+ collect_backgrounds: function () {\r
+ var backgrounds = new Array();\r
+ var divs = document.body.getElementsByTagName("div");\r
+\r
+ for (var i = 0; i < divs.length; ++i)\r
+ {\r
+ div = divs.item(i);\r
+\r
+ if (this.has_class(div, "background"))\r
+ {\r
+ // add background to collection\r
+ backgrounds[backgrounds.length] = div;\r
+\r
+ // and hide it\r
+ this.add_class(div, "hidden");\r
+ }\r
+ }\r
+\r
+ this.backgrounds = backgrounds;\r
+ },\r
+\r
+ // set click handlers on all anchors\r
+ patch_anchors: function () {\r
+ var self = w3c_slidy;\r
+ var handler = function (event) {\r
+ // compare this.href with location.href\r
+ // for link to another slide in this doc\r
+\r
+ if (self.page_address(this.href) == self.page_address(location.href))\r
+ {\r
+ // yes, so find new slide number\r
+ var newslidenum = self.find_slide_number(this.href);\r
+\r
+ if (newslidenum != self.slide_number)\r
+ {\r
+ var slide = self.slides[self.slide_number];\r
+ self.hide_slide(slide);\r
+ self.slide_number = newslidenum;\r
+ slide = self.slides[self.slide_number];\r
+ self.show_slide(slide);\r
+ self.set_location();\r
+ }\r
+ }\r
+ else if (this.target == null)\r
+ location.href = this.href;\r
+\r
+ this.blur();\r
+ self.disable_slide_click = true;\r
+ };\r
+\r
+ var anchors = document.body.getElementsByTagName("a");\r
+\r
+ for (var i = 0; i < anchors.length; ++i)\r
+ {\r
+ if (window.addEventListener)\r
+ anchors[i].addEventListener("click", handler, false);\r
+ else\r
+ anchors[i].attachEvent("onclick", handler);\r
+ }\r
+ },\r
+\r
+ // ### CHECK ME ### see which functions are invoked via setTimeout\r
+ // either directly or indirectly for use of w3c_slidy vs this\r
+ show_slide_number: function () {\r
+ var timer = w3c_slidy.get_timer();\r
+ w3c_slidy.slide_number_element.innerHTML = timer + "slide".localize() + " " +\r
+ (w3c_slidy.slide_number + 1) + "/" + w3c_slidy.slides.length;\r
+ },\r
+\r
+ // every 200mS check if the location has been changed as a\r
+ // result of the user activating the Back button/menu item\r
+ // doesn't work for Opera < 9.5\r
+ check_location: function () {\r
+ var hash = location.hash;\r
+\r
+ if (w3c_slidy.slide_number > 0 && (hash == "" || hash == "#"))\r
+ w3c_slidy.goto_slide(0);\r
+ else if (hash.length > 2 && hash != "#("+(w3c_slidy.slide_number+1)+")")\r
+ {\r
+ var num = parseInt(location.hash.substr(2));\r
+\r
+ if (!isNaN(num))\r
+ w3c_slidy.goto_slide(num-1);\r
+ }\r
+\r
+ if (w3c_slidy.time_left && w3c_slidy.slide_number > 0)\r
+ {\r
+ w3c_slidy.show_slide_number();\r
+\r
+ if (w3c_slidy.time_left > 0)\r
+ w3c_slidy.time_left -= 200;\r
+ }\r
+ },\r
+\r
+ get_timer: function () {\r
+ var timer = "";\r
+ if (w3c_slidy.time_left)\r
+ {\r
+ var mins, secs;\r
+ secs = Math.floor(w3c_slidy.time_left/1000);\r
+ mins = Math.floor(secs / 60);\r
+ secs = secs % 60;\r
+ timer = (mins ? mins+"m" : "") + secs + "s ";\r
+ }\r
+\r
+ return timer;\r
+ },\r
+\r
+ // this doesn't push location onto history stack for IE\r
+ // for which a hidden iframe hack is needed: load page into\r
+ // the iframe with script that set's parent's location.hash\r
+ // but that won't work for standalone use unless we can\r
+ // create the page dynamically via a javascript: URL\r
+ set_location: function () {\r
+ var uri = w3c_slidy.page_address(location.href);\r
+ var hash = "#(" + (w3c_slidy.slide_number+1) + ")";\r
+\r
+ if (w3c_slidy.slide_number >= 0)\r
+ uri = uri + hash;\r
+\r
+ if (w3c_slidy.ie && !w3c_slidy.ie8)\r
+ w3c_slidy.push_hash(hash);\r
+\r
+ if (uri != location.href) // && !khtml\r
+ location.href = uri;\r
+\r
+ if (this.khtml)\r
+ hash = "(" + (w3c_slidy.slide_number+1) + ")";\r
+\r
+ if (!this.ie && location.hash != hash && location.hash != "")\r
+ location.hash = hash;\r
+\r
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";\r
+ w3c_slidy.show_slide_number();\r
+ },\r
+\r
+ page_address: function (uri) {\r
+ var i = uri.indexOf("#");\r
+\r
+ if (i < 0)\r
+ i = uri.indexOf("%23");\r
+\r
+ // check if anchor is entire page\r
+\r
+ if (i < 0)\r
+ return uri; // yes\r
+\r
+ return uri.substr(0, i);\r
+ },\r
+\r
+ // only used for IE6 and IE7\r
+ on_frame_loaded: function (hash) {\r
+ location.hash = hash;\r
+ var uri = w3c_slidy.page_address(location.href);\r
+ location.href = uri + hash;\r
+ },\r
+\r
+ // history hack with thanks to Bertrand Le Roy\r
+ push_hash: function (hash) {\r
+ if (hash == "") hash = "#(1)";\r
+ window.location.hash = hash;\r
+\r
+ var doc = document.getElementById("historyFrame").contentWindow.document;\r
+ doc.open("javascript:'<html></html>'");\r
+ // PWL modified this string literal to break the close script tag\r
+ // which otherwise gets parsed when incorporated\r
+ doc.write("<html><head><script type=\"text/javascript\">window.parent.w3c_slidy.on_frame_loaded('"+\r
+ (hash) + "');</" + "script></head><body>hello mum</body></html>");\r
+ doc.close();\r
+ },\r
+\r
+ // find current slide based upon location\r
+ // first find target anchor and then look\r
+ // for associated div element enclosing it\r
+ // finally map that to slide number\r
+ find_slide_number: function (uri) {\r
+ // first get anchor from page location\r
+\r
+ var i = uri.indexOf("#");\r
+\r
+ // check if anchor is entire page\r
+ if (i < 0)\r
+ return 0; // yes\r
+\r
+ var anchor = unescape(uri.substr(i+1));\r
+\r
+ // now use anchor as XML ID to find target\r
+ var target = document.getElementById(anchor);\r
+\r
+ if (!target)\r
+ {\r
+ // does anchor look like "(2)" for slide 2 ??\r
+ // where first slide is (1)\r
+ var re = /\((\d)+\)/;\r
+\r
+ if (anchor.match(re))\r
+ {\r
+ var num = parseInt(anchor.substring(1, anchor.length-1));\r
+\r
+ if (num > this.slides.length)\r
+ num = 1;\r
+\r
+ if (--num < 0)\r
+ num = 0;\r
+\r
+ return num;\r
+ }\r
+\r
+ // accept [2] for backwards compatibility\r
+ re = /\[(\d)+\]/;\r
+\r
+ if (anchor.match(re))\r
+ {\r
+ var num = parseInt(anchor.substring(1, anchor.length-1));\r
+\r
+ if (num > this.slides.length)\r
+ num = 1;\r
+\r
+ if (--num < 0)\r
+ num = 0;\r
+\r
+ return num;\r
+ }\r
+\r
+ // oh dear unknown anchor\r
+ return 0;\r
+ }\r
+\r
+ // search for enclosing slide\r
+\r
+ while (true)\r
+ {\r
+ // browser coerces html elements to uppercase!\r
+ if (target.nodeName.toLowerCase() == "div" &&\r
+ this.has_class(target, "slide"))\r
+ {\r
+ // found the slide element\r
+ break;\r
+ }\r
+\r
+ // otherwise try parent element if any\r
+\r
+ target = target.parentNode;\r
+\r
+ if (!target)\r
+ {\r
+ return 0; // no luck!\r
+ }\r
+ };\r
+\r
+ for (i = 0; i < slides.length; ++i)\r
+ {\r
+ if (slides[i] == target)\r
+ return i; // success\r
+ }\r
+\r
+ // oh dear still no luck\r
+ return 0;\r
+ },\r
+\r
+ previous_slide: function (incremental) {\r
+ if (!w3c_slidy.view_all)\r
+ {\r
+ var slide;\r
+\r
+ if ((incremental || w3c_slidy.slide_number == 0) && w3c_slidy.last_shown != null)\r
+ {\r
+ w3c_slidy.last_shown = w3c_slidy.hide_previous_item(w3c_slidy.last_shown);\r
+ w3c_slidy.set_eos_status(false);\r
+ }\r
+ else if (w3c_slidy.slide_number > 0)\r
+ {\r
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.hide_slide(slide);\r
+\r
+ w3c_slidy.slide_number = w3c_slidy.slide_number - 1;\r
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.set_visibility_all_incremental("visible");\r
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);\r
+ w3c_slidy.set_eos_status(true);\r
+ w3c_slidy.show_slide(slide);\r
+ }\r
+\r
+ w3c_slidy.set_location();\r
+\r
+ if (!w3c_slidy.ns_pos)\r
+ w3c_slidy.refresh_toolbar(200);\r
+ }\r
+ },\r
+\r
+ next_slide: function (incremental) {\r
+ if (!w3c_slidy.view_all)\r
+ {\r
+ var slide, last = w3c_slidy.last_shown;\r
+\r
+ if (incremental || w3c_slidy.slide_number == w3c_slidy.slides.length - 1)\r
+ w3c_slidy.last_shown = w3c_slidy.reveal_next_item(w3c_slidy.last_shown);\r
+\r
+ if ((!incremental || w3c_slidy.last_shown == null) &&\r
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)\r
+ {\r
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.hide_slide(slide);\r
+\r
+ w3c_slidy.slide_number = w3c_slidy.slide_number + 1;\r
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.last_shown = null;\r
+ w3c_slidy.set_visibility_all_incremental("hidden");\r
+ w3c_slidy.show_slide(slide);\r
+ }\r
+ else if (!w3c_slidy.last_shown)\r
+ {\r
+ if (last && incremental)\r
+ w3c_slidy.last_shown = last;\r
+ }\r
+\r
+ w3c_slidy.set_location();\r
+\r
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));\r
+\r
+ if (!w3c_slidy.ns_pos)\r
+ w3c_slidy.refresh_toolbar(200);\r
+ }\r
+ },\r
+\r
+ // to first slide with nothing revealed\r
+ // i.e. state at start of presentation\r
+ first_slide: function () {\r
+ if (!w3c_slidy.view_all)\r
+ {\r
+ var slide;\r
+\r
+ if (w3c_slidy.slide_number != 0)\r
+ {\r
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.hide_slide(slide);\r
+\r
+ w3c_slidy.slide_number = 0;\r
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.last_shown = null;\r
+ w3c_slidy.set_visibility_all_incremental("hidden");\r
+ w3c_slidy.show_slide(slide);\r
+ }\r
+\r
+ w3c_slidy.set_eos_status(\r
+ !w3c_slidy.next_incremental_item(w3c_slidy.last_shown));\r
+ w3c_slidy.set_location();\r
+ }\r
+ },\r
+\r
+ // goto last slide with everything revealed\r
+ // i.e. state at end of presentation\r
+ last_slide: function () {\r
+ if (!w3c_slidy.view_all)\r
+ {\r
+ var slide;\r
+\r
+ w3c_slidy.last_shown = null; //revealNextItem(lastShown);\r
+\r
+ if (w3c_slidy.last_shown == null &&\r
+ w3c_slidy.slide_number < w3c_slidy.slides.length - 1)\r
+ {\r
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.hide_slide(slide);\r
+ w3c_slidy.slide_number = w3c_slidy.slides.length - 1;\r
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.set_visibility_all_incremental("visible");\r
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);\r
+\r
+ w3c_slidy.show_slide(slide);\r
+ }\r
+ else\r
+ {\r
+ w3c_slidy.set_visibility_all_incremental("visible");\r
+ w3c_slidy.last_shown = w3c_slidy.previous_incremental_item(null);\r
+ }\r
+\r
+ w3c_slidy.set_eos_status(true);\r
+ w3c_slidy.set_location();\r
+ }\r
+ },\r
+\r
+\r
+ // ### check this and consider add/remove class\r
+ set_eos_status: function (state) {\r
+ if (this.eos)\r
+ this.eos.style.color = (state ? "rgb(240,240,240)" : "red");\r
+ },\r
+\r
+ // first slide is 0\r
+ goto_slide: function (num) {\r
+ //alert("going to slide " + (num+1));\r
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.hide_slide(slide);\r
+ w3c_slidy.slide_number = num;\r
+ slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.last_shown = null;\r
+ w3c_slidy.set_visibility_all_incremental("hidden");\r
+ w3c_slidy.set_eos_status(!w3c_slidy.next_incremental_item(w3c_slidy.last_shown));\r
+ document.title = w3c_slidy.title + " (" + (w3c_slidy.slide_number+1) + ")";\r
+ w3c_slidy.show_slide(slide);\r
+ w3c_slidy.show_slide_number();\r
+ },\r
+\r
+\r
+ show_slide: function (slide) {\r
+ this.sync_background(slide);\r
+ window.scrollTo(0,0);\r
+ this.remove_class(slide, "hidden");\r
+ },\r
+\r
+ hide_slide: function (slide) {\r
+ this.add_class(slide, "hidden");\r
+ },\r
+\r
+ // show just the backgrounds pertinent to this slide\r
+ // when slide background-color is transparent\r
+ // this should now work with rgba color values\r
+ sync_background: function (slide) {\r
+ var background;\r
+ var bgColor;\r
+\r
+ if (slide.currentStyle)\r
+ bgColor = slide.currentStyle["backgroundColor"];\r
+ else if (document.defaultView)\r
+ {\r
+ var styles = document.defaultView.getComputedStyle(slide,null);\r
+\r
+ if (styles)\r
+ bgColor = styles.getPropertyValue("background-color");\r
+ else // broken implementation probably due Safari or Konqueror\r
+ {\r
+ //alert("defective implementation of getComputedStyle()");\r
+ bgColor = "transparent";\r
+ }\r
+ }\r
+ else\r
+ bgColor == "transparent";\r
+\r
+ if (bgColor == "transparent" ||\r
+ bgColor.indexOf("rgba") >= 0 ||\r
+ bgColor.indexOf("opacity") >= 0)\r
+ {\r
+ var slideClass = this.get_class_list(slide);\r
+\r
+ for (var i = 0; i < this.backgrounds.length; i++)\r
+ {\r
+ background = this.backgrounds[i];\r
+\r
+ var bgClass = this.get_class_list(background);\r
+\r
+ if (this.matching_background(slideClass, bgClass))\r
+ this.remove_class(background, "hidden");\r
+ else\r
+ this.add_class(background, "hidden");\r
+ }\r
+ }\r
+ else // forcibly hide all backgrounds\r
+ this.hide_backgrounds();\r
+ },\r
+\r
+ hide_backgrounds: function () {\r
+ for (var i = 0; i < this.backgrounds.length; i++)\r
+ {\r
+ background = this.backgrounds[i];\r
+ this.add_class(background, "hidden");\r
+ }\r
+ },\r
+\r
+ // compare classes for slide and background\r
+ matching_background: function (slideClass, bgClass) {\r
+ var i, count, pattern, result;\r
+\r
+ // define pattern as regular expression\r
+ pattern = /\w+/g;\r
+\r
+ // check background class names\r
+ result = bgClass.match(pattern);\r
+\r
+ for (i = count = 0; i < result.length; i++)\r
+ {\r
+ if (result[i] == "hidden")\r
+ continue;\r
+\r
+ if (result[i] == "background")\r
+ continue;\r
+\r
+ ++count;\r
+ }\r
+\r
+ if (count == 0) // default match\r
+ return true;\r
+\r
+ // check for matches and place result in array\r
+ result = slideClass.match(pattern);\r
+\r
+ // now check if desired name is present for background\r
+ for (i = count = 0; i < result.length; i++)\r
+ {\r
+ if (result[i] == "hidden")\r
+ continue;\r
+\r
+ if (this.has_token(bgClass, result[i]))\r
+ return true;\r
+ }\r
+\r
+ return false;\r
+ },\r
+\r
+ resized: function () {\r
+ var width = 0;\r
+\r
+ if ( typeof( window.innerWidth ) == 'number' )\r
+ width = window.innerWidth; // Non IE browser\r
+ else if (document.documentElement && document.documentElement.clientWidth)\r
+ width = document.documentElement.clientWidth; // IE6\r
+ else if (document.body && document.body.clientWidth)\r
+ width = document.body.clientWidth; // IE4\r
+\r
+ var height = 0;\r
+\r
+ if ( typeof( window.innerHeight ) == 'number' )\r
+ height = window.innerHeight; // Non IE browser\r
+ else if (document.documentElement && document.documentElement.clientHeight)\r
+ height = document.documentElement.clientHeight; // IE6\r
+ else if (document.body && document.body.clientHeight)\r
+ height = document.body.clientHeight; // IE4\r
+\r
+ if (height && (width/height > 1.05*1024/768))\r
+ {\r
+ width = height * 1024.0/768;\r
+ }\r
+\r
+ // IE fires onresize even when only font size is changed!\r
+ // so we do a check to avoid blocking < and > actions\r
+ if (width != w3c_slidy.last_width || height != w3c_slidy.last_height)\r
+ {\r
+ if (width >= 1100)\r
+ w3c_slidy.size_index = 5; // 4\r
+ else if (width >= 1000)\r
+ w3c_slidy.size_index = 4; // 3\r
+ else if (width >= 800)\r
+ w3c_slidy.size_index = 3; // 2\r
+ else if (width >= 600)\r
+ w3c_slidy.size_index = 2; // 1\r
+ else if (width)\r
+ w3c_slidy.size_index = 0;\r
+\r
+ // add in font size adjustment from meta element e.g.\r
+ // <meta name="font-size-adjustment" content="-2" />\r
+ // useful when slides have too much content ;-)\r
+\r
+ if (0 <= w3c_slidy.size_index + w3c_slidy.size_adjustment &&\r
+ w3c_slidy.size_index + w3c_slidy.size_adjustment < w3c_slidy.sizes.length)\r
+ w3c_slidy.size_index = w3c_slidy.size_index + w3c_slidy.size_adjustment;\r
+\r
+ // enables cross browser use of relative width/height\r
+ // on object elements for use with SVG and Flash media\r
+ w3c_slidy.adjust_object_dimensions(width, height);\r
+\r
+ if (document.body.style.fontSize != w3c_slidy.sizes[w3c_slidy.size_index])\r
+ {\r
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];\r
+ }\r
+\r
+ w3c_slidy.last_width = width;\r
+ w3c_slidy.last_height = height;\r
+\r
+ // force reflow to work around Mozilla bug\r
+ if (w3c_slidy.ns_pos)\r
+ {\r
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.hide_slide(slide);\r
+ w3c_slidy.show_slide(slide);\r
+ }\r
+\r
+ // force correct positioning of toolbar\r
+ w3c_slidy.refresh_toolbar(200);\r
+ }\r
+ },\r
+\r
+ scrolled: function () {\r
+ if (w3c_slidy.toolbar && !w3c_slidy.ns_pos && !w3c_slidy.ie7)\r
+ {\r
+ w3c_slidy.hack_offset = w3c_slidy.scroll_x_offset();\r
+ // hide toolbar\r
+ w3c_slidy.toolbar.style.display = "none";\r
+\r
+ // make it reappear later\r
+ if (w3c_slidy.scrollhack == 0 && !w3c_slidy.view_all)\r
+ {\r
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 1000);\r
+ w3c_slidy.scrollhack = 1;\r
+ }\r
+ }\r
+ },\r
+\r
+ hide_toolbar: function () {\r
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden");\r
+ window.focus();\r
+ },\r
+\r
+ // used to ensure IE refreshes toolbar in correct position\r
+ refresh_toolbar: function (interval) {\r
+ if (!w3c_slidy.ns_pos && !w3c_slidy.ie7)\r
+ {\r
+ w3c_slidy.hide_toolbar();\r
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, interval);\r
+ }\r
+ },\r
+\r
+ // restores toolbar after short delay\r
+ show_toolbar: function () {\r
+ if (w3c_slidy.want_toolbar)\r
+ {\r
+ w3c_slidy.toolbar.style.display = "block";\r
+\r
+ if (!w3c_slidy.ns_pos)\r
+ {\r
+ // adjust position to allow for scrolling\r
+ var xoffset = w3c_slidy.scroll_x_offset();\r
+ w3c_slidy.toolbar.style.left = xoffset;\r
+ w3c_slidy.toolbar.style.right = xoffset;\r
+\r
+ // determine vertical scroll offset\r
+ //var yoffset = scrollYOffset();\r
+\r
+ // bottom is doc height - window height - scroll offset\r
+ //var bottom = documentHeight() - lastHeight - yoffset\r
+\r
+ //if (yoffset > 0 || documentHeight() > lastHeight)\r
+ // bottom += 16; // allow for height of scrollbar\r
+\r
+ w3c_slidy.toolbar.style.bottom = 0; //bottom;\r
+ }\r
+\r
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden");\r
+ }\r
+\r
+ w3c_slidy.scrollhack = 0;\r
+\r
+\r
+ // set the keyboard focus to the help link on the\r
+ // toolbar to ensure that document has the focus\r
+ // IE doesn't always work with window.focus()\r
+ // and this hack has benefit of Enter for help\r
+\r
+ try\r
+ {\r
+ if (!w3c_slidy.opera)\r
+ w3c_slidy.help_anchor.focus();\r
+ }\r
+ catch (e)\r
+ {\r
+ }\r
+ },\r
+\r
+// invoked via F key\r
+ toggle_toolbar: function () {\r
+ if (!w3c_slidy.view_all)\r
+ {\r
+ if (w3c_slidy.has_class(w3c_slidy.toolbar, "hidden"))\r
+ {\r
+ w3c_slidy.remove_class(w3c_slidy.toolbar, "hidden")\r
+ w3c_slidy.want_toolbar = 1;\r
+ }\r
+ else\r
+ {\r
+ w3c_slidy.add_class(w3c_slidy.toolbar, "hidden")\r
+ w3c_slidy.want_toolbar = 0;\r
+ }\r
+ }\r
+ },\r
+\r
+ scroll_x_offset: function () {\r
+ if (window.pageXOffset)\r
+ return self.pageXOffset;\r
+\r
+ if (document.documentElement &&\r
+ document.documentElement.scrollLeft)\r
+ return document.documentElement.scrollLeft;\r
+\r
+ if (document.body)\r
+ return document.body.scrollLeft;\r
+\r
+ return 0;\r
+ },\r
+\r
+ scroll_y_offset: function () {\r
+ if (window.pageYOffset)\r
+ return self.pageYOffset;\r
+\r
+ if (document.documentElement &&\r
+ document.documentElement.scrollTop)\r
+ return document.documentElement.scrollTop;\r
+\r
+ if (document.body)\r
+ return document.body.scrollTop;\r
+\r
+ return 0;\r
+ },\r
+\r
+ // looking for a way to determine height of slide content\r
+ // the slide itself is set to the height of the window\r
+ optimize_font_size: function () {\r
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+\r
+ //var dh = documentHeight(); //getDocHeight(document);\r
+ var dh = slide.scrollHeight;\r
+ var wh = getWindowHeight();\r
+ var u = 100 * dh / wh;\r
+\r
+ alert("window utilization = " + u + "% (doc "\r
+ + dh + " win " + wh + ")");\r
+ },\r
+\r
+ // from document object\r
+ get_doc_height: function (doc) {\r
+ if (!doc)\r
+ doc = document;\r
+\r
+ if (doc && doc.body && doc.body.offsetHeight)\r
+ return doc.body.offsetHeight; // ns/gecko syntax\r
+\r
+ if (doc && doc.body && doc.body.scrollHeight)\r
+ return doc.body.scrollHeight;\r
+\r
+ alert("couldn't determine document height");\r
+ },\r
+\r
+ get_window_height: function () {\r
+ if ( typeof( window.innerHeight ) == 'number' )\r
+ return window.innerHeight; // Non IE browser\r
+\r
+ if (document.documentElement && document.documentElement.clientHeight)\r
+ return document.documentElement.clientHeight; // IE6\r
+\r
+ if (document.body && document.body.clientHeight)\r
+ return document.body.clientHeight; // IE4\r
+ },\r
+\r
+ document_height: function () {\r
+ var sh, oh;\r
+\r
+ sh = document.body.scrollHeight;\r
+ oh = document.body.offsetHeight;\r
+\r
+ if (sh && oh)\r
+ {\r
+ return (sh > oh ? sh : oh);\r
+ }\r
+\r
+ // no idea!\r
+ return 0;\r
+ },\r
+\r
+ smaller: function () {\r
+ if (w3c_slidy.size_index > 0)\r
+ {\r
+ --w3c_slidy.size_index;\r
+ }\r
+\r
+ w3c_slidy.toolbar.style.display = "none";\r
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];\r
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.hide_slide(slide);\r
+ w3c_slidy.show_slide(slide);\r
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);\r
+ },\r
+\r
+ bigger: function () {\r
+ if (w3c_slidy.size_index < w3c_slidy.sizes.length - 1)\r
+ {\r
+ ++w3c_slidy.size_index;\r
+ }\r
+\r
+ w3c_slidy.toolbar.style.display = "none";\r
+ document.body.style.fontSize = w3c_slidy.sizes[w3c_slidy.size_index];\r
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+ w3c_slidy.hide_slide(slide);\r
+ w3c_slidy.show_slide(slide);\r
+ setTimeout(function () {w3c_slidy.show_toolbar(); }, 50);\r
+ },\r
+\r
+ // enables cross browser use of relative width/height\r
+ // on object elements for use with SVG and Flash media\r
+ // with thanks to Ivan Herman for the suggestion\r
+ adjust_object_dimensions: function (width, height) {\r
+ for( var i = 0; i < w3c_slidy.objects.length; i++ )\r
+ {\r
+ var obj = this.objects[i];\r
+ var mimeType = obj.getAttribute("type");\r
+\r
+ if (mimeType == "image/svg+xml" || mimeType == "application/x-shockwave-flash")\r
+ {\r
+ if ( !obj.initialWidth )\r
+ obj.initialWidth = obj.getAttribute("width");\r
+\r
+ if ( !obj.initialHeight )\r
+ obj.initialHeight = obj.getAttribute("height");\r
+\r
+ if ( obj.initialWidth && obj.initialWidth.charAt(obj.initialWidth.length-1) == "%" )\r
+ {\r
+ var w = parseInt(obj.initialWidth.slice(0, obj.initialWidth.length-1));\r
+ var newW = width * (w/100.0);\r
+ obj.setAttribute("width",newW);\r
+ }\r
+\r
+ if ( obj.initialHeight &&\r
+ obj.initialHeight.charAt(obj.initialHeight.length-1) == "%" )\r
+ {\r
+ var h = parseInt(obj.initialHeight.slice(0, obj.initialHeight.length-1));\r
+ var newH = height * (h/100.0);\r
+ obj.setAttribute("height", newH);\r
+ }\r
+ }\r
+ }\r
+ },\r
+\r
+ // needed for Opera to inhibit default behavior\r
+ // since Opera delivers keyPress even if keyDown\r
+ // was cancelled\r
+ key_press: function (event) {\r
+ if (!event)\r
+ event = window.event;\r
+\r
+ if (!w3c_slidy.key_wanted)\r
+ return w3c_slidy.cancel(event);\r
+\r
+ return true;\r
+ },\r
+\r
+ // See e.g. http://www.quirksmode.org/js/events/keys.html for keycodes\r
+ key_down: function (event) {\r
+ var key;\r
+\r
+ w3c_slidy.key_wanted = true;\r
+\r
+ if (!event)\r
+ event = window.event;\r
+\r
+ // kludge around NS/IE differences\r
+ if (window.event)\r
+ key = window.event.keyCode;\r
+ else if (event.which)\r
+ key = event.which;\r
+ else\r
+ return true; // Yikes! unknown browser\r
+\r
+ // ignore event if key value is zero\r
+ // as for alt on Opera and Konqueror\r
+ if (!key)\r
+ return true;\r
+\r
+ // check for concurrent control/command/alt key\r
+ // but are these only present on mouse events?\r
+\r
+ if (event.ctrlKey || event.altKey || event.metaKey)\r
+ return true;\r
+\r
+ // dismiss table of contents if visible\r
+ if (w3c_slidy.is_shown_toc() && key != 9 && key != 16 && key != 38 && key != 40)\r
+ {\r
+ w3c_slidy.hide_table_of_contents();\r
+\r
+ if (key == 27 || key == 84 || key == 67)\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+\r
+ if (key == 34) // Page Down\r
+ {\r
+ if (w3c_slidy.view_all)\r
+ return true;\r
+\r
+ w3c_slidy.next_slide(false);\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 33) // Page Up\r
+ {\r
+ if (w3c_slidy.view_all)\r
+ return true;\r
+\r
+ w3c_slidy.previous_slide(false);\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 32) // space bar\r
+ {\r
+ w3c_slidy.next_slide(true);\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 37) // Left arrow\r
+ {\r
+ w3c_slidy.previous_slide(!event.shiftKey);\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 36) // Home\r
+ {\r
+ w3c_slidy.first_slide();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 35) // End\r
+ {\r
+ w3c_slidy.last_slide();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 39) // Right arrow\r
+ {\r
+ w3c_slidy.next_slide(!event.shiftKey);\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 13) // Enter\r
+ {\r
+ if (w3c_slidy.outline)\r
+ {\r
+ if (w3c_slidy.outline.visible)\r
+ w3c_slidy.fold(w3c_slidy.outline);\r
+ else\r
+ w3c_slidy.unfold(w3c_slidy.outline);\r
+\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ }\r
+ else if (key == 188) // < for smaller fonts\r
+ {\r
+ w3c_slidy.smaller();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 190) // > for larger fonts\r
+ {\r
+ w3c_slidy.bigger();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 189 || key == 109) // - for smaller fonts\r
+ {\r
+ w3c_slidy.smaller();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 187 || key == 191 || key == 107) // = + for larger fonts\r
+ {\r
+ w3c_slidy.bigger();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 83) // S for smaller fonts\r
+ {\r
+ w3c_slidy.smaller();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 66) // B for larger fonts\r
+ {\r
+ w3c_slidy.bigger();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 90) // Z for last slide\r
+ {\r
+ w3c_slidy.last_slide();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 70) // F for toggle toolbar\r
+ {\r
+ w3c_slidy.toggle_toolbar();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 65) // A for toggle view single/all slides\r
+ {\r
+ w3c_slidy.toggle_view();\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 75) // toggle action of left click for next page\r
+ {\r
+ w3c_slidy.mouse_click_enabled = !w3c_slidy.mouse_click_enabled;\r
+ var alert_msg = (w3c_slidy.mouse_click_enabled ?\r
+ "enabled" : "disabled") + " mouse click advance";\r
+\r
+ alert(alert_msg.localize());\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 84 || key == 67) // T or C for table of contents\r
+ {\r
+ if (w3c_slidy.toc)\r
+ w3c_slidy.toggle_table_of_contents();\r
+\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ else if (key == 72) // H for help\r
+ {\r
+ window.location = w3c_slidy.help_page;\r
+ return w3c_slidy.cancel(event);\r
+ }\r
+ //else alert("key code is "+ key);\r
+\r
+ return true;\r
+ },\r
+\r
+ // safe for both text/html and application/xhtml+xml\r
+ create_element: function (name) {\r
+ if (this.xhtml && (typeof document.createElementNS != 'undefined'))\r
+ return document.createElementNS("http://www.w3.org/1999/xhtml", name)\r
+\r
+ return document.createElement(name);\r
+ },\r
+\r
+ get_element_style: function (elem, IEStyleProp, CSSStyleProp) {\r
+ if (elem.currentStyle)\r
+ {\r
+ return elem.currentStyle[IEStyleProp];\r
+ }\r
+ else if (window.getComputedStyle)\r
+ {\r
+ var compStyle = window.getComputedStyle(elem, "");\r
+ return compStyle.getPropertyValue(CSSStyleProp);\r
+ }\r
+ return "";\r
+ },\r
+\r
+ // the string str is a whitespace separated list of tokens\r
+ // test if str contains a particular token, e.g. "slide"\r
+ has_token: function (str, token) {\r
+ if (str)\r
+ {\r
+ // define pattern as regular expression\r
+ var pattern = /\w+/g;\r
+\r
+ // check for matches\r
+ // place result in array\r
+ var result = str.match(pattern);\r
+\r
+ // now check if desired token is present\r
+ for (var i = 0; i < result.length; i++)\r
+ {\r
+ if (result[i] == token)\r
+ return true;\r
+ }\r
+ }\r
+\r
+ return false;\r
+ },\r
+\r
+ get_class_list: function (element) {\r
+ if (typeof element.className != 'undefined')\r
+ return element.className;\r
+\r
+ return element.getAttribute("class");\r
+ },\r
+\r
+ has_class: function (element, name) {\r
+ if (element.nodeType != 1)\r
+ return false;\r
+\r
+ var regexp = new RegExp("(^| )" + name + "\W*");\r
+\r
+ if (typeof element.className != 'undefined')\r
+ return regexp.test(element.className);\r
+\r
+ return regexp.test(element.getAttribute("class"));\r
+ },\r
+\r
+ remove_class: function (element, name) {\r
+ var regexp = new RegExp("(^| )" + name + "\W*");\r
+ var clsval = "";\r
+\r
+ if (typeof element.className != 'undefined')\r
+ {\r
+ clsval = element.className;\r
+\r
+ if (clsval)\r
+ {\r
+ clsval = clsval.replace(regexp, "");\r
+ element.className = clsval;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ clsval = element.getAttribute("class");\r
+\r
+ if (clsval)\r
+ {\r
+ clsval = clsval.replace(regexp, "");\r
+ element.setAttribute("class", clsval);\r
+ }\r
+ }\r
+ },\r
+\r
+ add_class: function (element, name) {\r
+ if (!this.has_class(element, name))\r
+ {\r
+ if (typeof element.className != 'undefined')\r
+ element.className += " " + name;\r
+ else\r
+ {\r
+ var clsval = element.getAttribute("class");\r
+ clsval = clsval ? clsval + " " + name : name;\r
+ element.setAttribute("class", clsval);\r
+ }\r
+ }\r
+ },\r
+\r
+ // HTML elements that can be used with class="incremental"\r
+ // note that you can also put the class on containers like\r
+ // up, ol, dl, and div to make their contents appear\r
+ // incrementally. Upper case is used since this is what\r
+ // browsers report for HTML node names (text/html).\r
+ incremental_elements: null,\r
+ okay_for_incremental: function (name) {\r
+ if (!this.incremental_elements)\r
+ {\r
+ var inclist = new Array();\r
+ inclist["p"] = true;\r
+ inclist["pre"] = true;\r
+ inclist["li"] = true;\r
+ inclist["blockquote"] = true;\r
+ inclist["dt"] = true;\r
+ inclist["dd"] = true;\r
+ inclist["h2"] = true;\r
+ inclist["h3"] = true;\r
+ inclist["h4"] = true;\r
+ inclist["h5"] = true;\r
+ inclist["h6"] = true;\r
+ inclist["span"] = true;\r
+ inclist["address"] = true;\r
+ inclist["table"] = true;\r
+ inclist["tr"] = true;\r
+ inclist["th"] = true;\r
+ inclist["td"] = true;\r
+ inclist["img"] = true;\r
+ inclist["object"] = true;\r
+ this.incremental_elements = inclist;\r
+ }\r
+ return this.incremental_elements[name.toLowerCase()];\r
+ },\r
+\r
+ next_incremental_item: function (node) {\r
+ var br = this.is_xhtml ? "br" : "BR";\r
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+\r
+ for (;;)\r
+ {\r
+ node = w3c_slidy.next_node(slide, node);\r
+\r
+ if (node == null || node.parentNode == null)\r
+ break;\r
+\r
+ if (node.nodeType == 1) // ELEMENT\r
+ {\r
+ if (node.nodeName == br)\r
+ continue;\r
+\r
+ if (w3c_slidy.has_class(node, "incremental")\r
+ && w3c_slidy.okay_for_incremental(node.nodeName))\r
+ return node;\r
+\r
+ if (w3c_slidy.has_class(node.parentNode, "incremental")\r
+ && !w3c_slidy.has_class(node, "non-incremental"))\r
+ return node;\r
+ }\r
+ }\r
+\r
+ return node;\r
+ },\r
+\r
+ previous_incremental_item: function (node) {\r
+ var br = this.is_xhtml ? "br" : "BR";\r
+ var slide = w3c_slidy.slides[w3c_slidy.slide_number];\r
+\r
+ for (;;)\r
+ {\r
+ node = w3c_slidy.previous_node(slide, node);\r
+\r
+ if (node == null || node.parentNode == null)\r
+ break;\r
+\r
+ if (node.nodeType == 1)\r
+ {\r
+ if (node.nodeName == br)\r
+ continue;\r
+\r
+ if (w3c_slidy.has_class(node, "incremental")\r
+ && w3c_slidy.okay_for_incremental(node.nodeName))\r
+ return node;\r
+\r
+ if (w3c_slidy.has_class(node.parentNode, "incremental")\r
+ && !w3c_slidy.has_class(node, "non-incremental"))\r
+ return node;\r
+ }\r
+ }\r
+\r
+ return node;\r
+ },\r
+\r
+ // set visibility for all elements on current slide with\r
+ // a parent element with attribute class="incremental"\r
+ set_visibility_all_incremental: function (value) {\r
+ var node = this.next_incremental_item(null);\r
+\r
+ if (value == "hidden")\r
+ {\r
+ while (node)\r
+ {\r
+ w3c_slidy.add_class(node, "invisible");\r
+ node = w3c_slidy.next_incremental_item(node);\r
+ }\r
+ }\r
+ else // value == "visible"\r
+ {\r
+ while (node)\r
+ {\r
+ w3c_slidy.remove_class(node, "invisible");\r
+ node = w3c_slidy.next_incremental_item(node);\r
+ }\r
+ }\r
+ },\r
+\r
+ // reveal the next hidden item on the slide\r
+ // node is null or the node that was last revealed\r
+ reveal_next_item: function (node) {\r
+ node = w3c_slidy.next_incremental_item(node);\r
+\r
+ if (node && node.nodeType == 1) // an element\r
+ w3c_slidy.remove_class(node, "invisible");\r
+\r
+ return node;\r
+ },\r
+\r
+ // exact inverse of revealNextItem(node)\r
+ hide_previous_item: function (node) {\r
+ if (node && node.nodeType == 1) // an element\r
+ w3c_slidy.add_class(node, "invisible");\r
+\r
+ return this.previous_incremental_item(node);\r
+ },\r
+\r
+ // left to right traversal of root's content\r
+ next_node: function (root, node) {\r
+ if (node == null)\r
+ return root.firstChild;\r
+\r
+ if (node.firstChild)\r
+ return node.firstChild;\r
+\r
+ if (node.nextSibling)\r
+ return node.nextSibling;\r
+\r
+ for (;;)\r
+ {\r
+ node = node.parentNode;\r
+\r
+ if (!node || node == root)\r
+ break;\r
+\r
+ if (node && node.nextSibling)\r
+ return node.nextSibling;\r
+ }\r
+\r
+ return null;\r
+ },\r
+\r
+ // right to left traversal of root's content\r
+ previous_node: function (root, node) {\r
+ if (node == null)\r
+ {\r
+ node = root.lastChild;\r
+\r
+ if (node)\r
+ {\r
+ while (node.lastChild)\r
+ node = node.lastChild;\r
+ }\r
+\r
+ return node;\r
+ }\r
+\r
+ if (node.previousSibling)\r
+ {\r
+ node = node.previousSibling;\r
+\r
+ while (node.lastChild)\r
+ node = node.lastChild;\r
+\r
+ return node;\r
+ }\r
+\r
+ if (node.parentNode != root)\r
+ return node.parentNode;\r
+\r
+ return null;\r
+ },\r
+\r
+ previous_sibling_element: function (el) {\r
+ el = el.previousSibling;\r
+\r
+ while (el && el.nodeType != 1)\r
+ el = el.previousSibling;\r
+\r
+ return el;\r
+ },\r
+\r
+ next_sibling_element: function (el) {\r
+ el = el.nextSibling;\r
+\r
+ while (el && el.nodeType != 1)\r
+ el = el.nextSibling;\r
+\r
+ return el;\r
+ },\r
+\r
+ first_child_element: function (el) {\r
+ var node;\r
+\r
+ for (node = el.firstChild; node; node = node.nextSibling)\r
+ {\r
+ if (node.nodeType == 1)\r
+ break;\r
+ }\r
+\r
+ return node;\r
+ },\r
+\r
+ first_tag: function (element, tag) {\r
+ var node;\r
+\r
+ if (!this.is_xhtml)\r
+ tag = tag.toUpperCase();\r
+\r
+ for (node = element.firstChild; node; node = node.nextSibling)\r
+ {\r
+ if (node.nodeType == 1 && node.nodeName == tag)\r
+ break;\r
+ }\r
+\r
+ return node;\r
+ },\r
+\r
+ hide_selection: function () {\r
+ if (window.getSelection) // Firefox, Chromium, Safari, Opera\r
+ {\r
+ var selection = window.getSelection();\r
+\r
+ if (selection.rangeCount > 0)\r
+ {\r
+ var range = selection.getRangeAt(0);\r
+ range.collapse (false);\r
+ }\r
+ }\r
+ else // Internet Explorer\r
+ {\r
+ var textRange = document.selection.createRange ();\r
+ textRange.collapse (false);\r
+ }\r
+ },\r
+\r
+ get_selected_text: function () {\r
+ try\r
+ {\r
+ if (window.getSelection)\r
+ return window.getSelection().toString();\r
+\r
+ if (document.getSelection)\r
+ return document.getSelection().toString();\r
+\r
+ if (document.selection)\r
+ return document.selection.createRange().text;\r
+ }\r
+ catch (e)\r
+ {\r
+ }\r
+\r
+ return "";\r
+ },\r
+\r
+ // make note of length of selected text\r
+ // as this evaluates to zero in click event\r
+ mouse_button_up: function (e) {\r
+ w3c_slidy.selected_text_len = w3c_slidy.get_selected_text().length;\r
+ },\r
+\r
+ // right mouse button click is reserved for context menus\r
+ // it is more reliable to detect rightclick than leftclick\r
+ mouse_button_click: function (e) {\r
+ var rightclick = false;\r
+ var leftclick = false;\r
+ var middleclick = false;\r
+ var target;\r
+\r
+ if (!e)\r
+ var e = window.event;\r
+\r
+ if (e.target)\r
+ target = e.target;\r
+ else if (e.srcElement)\r
+ target = e.srcElement;\r
+\r
+ // work around Safari bug\r
+ if (target.nodeType == 3)\r
+ target = target.parentNode;\r
+\r
+ if (e.which) // all browsers except IE\r
+ {\r
+ leftclick = (e.which == 1);\r
+ middleclick = (e.which == 2);\r
+ rightclick = (e.which == 3);\r
+ }\r
+ else if (e.button)\r
+ {\r
+ // Konqueror gives 1 for left, 4 for middle\r
+ // IE6 gives 0 for left and not 1 as I expected\r
+\r
+ if (e.button == 4)\r
+ middleclick = true;\r
+\r
+ // all browsers agree on 2 for right button\r
+ rightclick = (e.button == 2);\r
+ }\r
+ else leftclick = true;\r
+/*\r
+ alert("you clicked over a " + target.nodeName + " element\n" +\r
+ "w3c_slidy.mouse_click_enabled = " + w3c_slidy.mouse_click_enabled + "\n" +\r
+ "leftclick = " + leftclick + "\n" +\r
+ "selected text length = " + w3c_slidy.selected_text_len);\r
+ //alert("selected text length = " + w3c_slidy.selected_text_len);\r
+*/\r
+ if (w3c_slidy.selected_text_len > 0)\r
+ {\r
+ w3c_slidy.stop_propagation(e);\r
+ e.cancel = true;\r
+ e.returnValue = false;\r
+ return false;\r
+ }\r
+\r
+ // dismiss table of contents\r
+ w3c_slidy.hide_table_of_contents();\r
+\r
+ // check if target is something that probably want's clicks\r
+ // e.g. a, embed, object, input, textarea, select, option\r
+ var tag = target.nodeName.toLowerCase();\r
+\r
+ if (w3c_slidy.mouse_click_enabled && leftclick &&\r
+ tag != "a" &&\r
+ tag != "embed" &&\r
+ tag != "object" &&\r
+ tag != "video" &&\r
+ tag != "input" &&\r
+ tag != "textarea" &&\r
+ tag != "select" &&\r
+ tag != "option" &&\r
+ !target.onclick)\r
+ {\r
+ w3c_slidy.next_slide(true);\r
+ w3c_slidy.stop_propagation(e);\r
+ e.cancel = true;\r
+ e.returnValue = false;\r
+ return false;\r
+ }\r
+ },\r
+\r
+ get_key: function (e)\r
+ {\r
+ var key;\r
+\r
+ // kludge around NS/IE differences\r
+ if (typeof window.event != "undefined")\r
+ key = window.event.keyCode;\r
+ else if (e.which)\r
+ key = e.which;\r
+\r
+ return key;\r
+ },\r
+\r
+ get_target: function (e) {\r
+ var target;\r
+\r
+ if (!e)\r
+ e = window.event;\r
+\r
+ if (e.target)\r
+ target = e.target;\r
+ else if (e.srcElement)\r
+ target = e.srcElement;\r
+\r
+ if (target.nodeType != 1)\r
+ target = target.parentNode;\r
+\r
+ return target;\r
+ },\r
+\r
+ // does display property provide correct defaults?\r
+ is_block: function (elem) {\r
+ var tag = elem.nodeName.toLowerCase();\r
+\r
+ return tag == "ol" || tag == "ul" || tag == "p" ||\r
+ tag == "li" || tag == "table" || tag == "pre" ||\r
+ tag == "h1" || tag == "h2" || tag == "h3" ||\r
+ tag == "h4" || tag == "h5" || tag == "h6" ||\r
+ tag == "blockquote" || tag == "address";\r
+ },\r
+\r
+ add_listener: function (element, event, handler) {\r
+ if (window.addEventListener)\r
+ element.addEventListener(event, handler, false);\r
+ else\r
+ element.attachEvent("on"+event, handler);\r
+ },\r
+\r
+ // used to prevent event propagation from field controls\r
+ stop_propagation: function (event) {\r
+ event = event ? event : window.event;\r
+ event.cancelBubble = true; // for IE\r
+\r
+ if (event.stopPropagation)\r
+ event.stopPropagation();\r
+\r
+ return true;\r
+ },\r
+\r
+ cancel: function (event) {\r
+ if (event)\r
+ {\r
+ event.cancel = true;\r
+ event.returnValue = false;\r
+\r
+ if (event.preventDefault)\r
+ event.preventDefault();\r
+ }\r
+\r
+ w3c_slidy.key_wanted = false;\r
+ return false;\r
+ }\r
+};\r
+\r
+// for each language define an associative array\r
+// and also the help text which is longer\r
+\r
+var w3c_slidy_i18n = {\r
+ strings_es: {\r
+ "slide":"pág.",\r
+ "help?":"Ayuda",\r
+ "contents?":"Índice",\r
+ "table of contents":"tabla de contenidos",\r
+ "Table of Contents":"Tabla de Contenidos",\r
+ "restart presentation":"Reiniciar presentación",\r
+ "restart?":"Inicio"\r
+ },\r
+ help_es:\r
+ "Utilice el ratón, barra espaciadora, teclas Izda/Dcha, " +\r
+ "o Re pág y Av pág. Use S y B para cambiar el tamaño de fuente.",\r
+\r
+ strings_ca: {\r
+ "slide":"pàg..",\r
+ "help?":"Ajuda",\r
+ "contents?":"Índex",\r
+ "table of contents":"taula de continguts",\r
+ "Table of Contents":"Taula de Continguts",\r
+ "restart presentation":"Reiniciar presentació",\r
+ "restart?":"Inici"\r
+ },\r
+ help_ca:\r
+ "Utilitzi el ratolí, barra espaiadora, tecles Esq./Dta. " +\r
+ "o Re pàg y Av pàg. Usi S i B per canviar grandària de font.",\r
+\r
+ strings_cs: {\r
+ "slide":"snímek",\r
+ "help?":"nápověda",\r
+ "contents?":"obsah",\r
+ "table of contents":"obsah prezentace",\r
+ "Table of Contents":"Obsah prezentace",\r
+ "restart presentation":"znovu spustit prezentaci",\r
+ "restart?":"restart"\r
+ },\r
+ help_cs:\r
+ "Prezentaci můžete procházet pomocí kliknutí myši, mezerníku, " +\r
+ "šipek vlevo a vpravo nebo kláves PageUp a PageDown. Písmo se " +\r
+ "dá zvětšit a zmenšit pomocí kláves B a S.",\r
+\r
+ strings_nl: {\r
+ "slide":"pagina",\r
+ "help?":"Help?",\r
+ "contents?":"Inhoud?",\r
+ "table of contents":"inhoudsopgave",\r
+ "Table of Contents":"Inhoudsopgave",\r
+ "restart presentation":"herstart presentatie",\r
+ "restart?":"Herstart?"\r
+ },\r
+ help_nl:\r
+ "Navigeer d.m.v. het muis, spatiebar, Links/Rechts toetsen, " +\r
+ "of PgUp en PgDn. Gebruik S en B om de karaktergrootte te veranderen.",\r
+\r
+ strings_de: {\r
+ "slide":"Seite",\r
+ "help?":"Hilfe",\r
+ "contents?":"Übersicht",\r
+ "table of contents":"Inhaltsverzeichnis",\r
+ "Table of Contents":"Inhaltsverzeichnis",\r
+ "restart presentation":"Präsentation neu starten",\r
+ "restart?":"Neustart"\r
+ },\r
+ help_de:\r
+ "Benutzen Sie die Maus, Leerschlag, die Cursortasten links/rechts oder " +\r
+ "Page up/Page Down zum Wechseln der Seiten und S und B für die Schriftgrösse.",\r
+\r
+ strings_pl: {\r
+ "slide":"slajd",\r
+ "help?":"pomoc?",\r
+ "contents?":"spis treści?",\r
+ "table of contents":"spis treści",\r
+ "Table of Contents":"Spis Treści",\r
+ "restart presentation":"Restartuj prezentację",\r
+ "restart?":"restart?"\r
+ },\r
+ help_pl:\r
+ "Zmieniaj slajdy klikając myszą, naciskając spację, strzałki lewo/prawo" +\r
+ "lub PgUp / PgDn. Użyj klawiszy S i B, aby zmienić rozmiar czczionki.",\r
+\r
+ strings_fr: {\r
+ "slide":"page",\r
+ "help?":"Aide",\r
+ "contents?":"Index",\r
+ "table of contents":"table des matières",\r
+ "Table of Contents":"Table des matières",\r
+ "restart presentation":"Recommencer l'exposé",\r
+ "restart?":"Début"\r
+ },\r
+ help_fr:\r
+ "Naviguez avec la souris, la barre d'espace, les flèches " +\r
+ "gauche/droite ou les touches Pg Up, Pg Dn. Utilisez " +\r
+ "les touches S et B pour modifier la taille de la police.",\r
+\r
+ strings_hu: {\r
+ "slide":"oldal",\r
+ "help?":"segítség",\r
+ "contents?":"tartalom",\r
+ "table of contents":"tartalomjegyzék",\r
+ "Table of Contents":"Tartalomjegyzék",\r
+ "restart presentation":"bemutató újraindítása",\r
+ "restart?":"újraindítás"\r
+ },\r
+ help_hu:\r
+ "Az oldalak közti lépkedéshez kattintson az egérrel, vagy " +\r
+ "használja a szóköz, a bal, vagy a jobb nyíl, illetve a Page Down, " +\r
+ "Page Up billentyűket. Az S és a B billentyűkkel változtathatja " +\r
+ "a szöveg méretét.",\r
+\r
+ strings_it: {\r
+ "slide":"pag.",\r
+ "help?":"Aiuto",\r
+ "contents?":"Indice",\r
+ "table of contents":"indice",\r
+ "Table of Contents":"Indice",\r
+ "restart presentation":"Ricominciare la presentazione",\r
+ "restart?":"Inizio"\r
+ },\r
+ help_it:\r
+ "Navigare con mouse, barra spazio, frecce sinistra/destra o " +\r
+ "PgUp e PgDn. Usare S e B per cambiare la dimensione dei caratteri.",\r
+\r
+ strings_el: {\r
+ "slide":"σελίδα",\r
+ "help?":"βοήθεια;",\r
+ "contents?":"περιεχόμενα;",\r
+ "table of contents":"πίνακας περιεχομένων",\r
+ "Table of Contents":"Πίνακας Περιεχομένων",\r
+ "restart presentation":"επανεκκίνηση παρουσίασης",\r
+ "restart?":"επανεκκίνηση;"\r
+ },\r
+ help_el:\r
+ "Πλοηγηθείτε με το κλίκ του ποντικιού, το space, τα βέλη αριστερά/δεξιά, " +\r
+ "ή Page Up και Page Down. Χρησιμοποιήστε τα πλήκτρα S και B για να αλλάξετε " +\r
+ "το μέγεθος της γραμματοσειράς.",\r
+\r
+ strings_ja: {\r
+ "slide":"スライド",\r
+ "help?":"ヘルプ",\r
+ "contents?":"目次",\r
+ "table of contents":"目次を表示",\r
+ "Table of Contents":"目次",\r
+ "restart presentation":"最初から再生",\r
+ "restart?":"最初から"\r
+ },\r
+ help_ja:\r
+ "マウス左クリック ・ スペース ・ 左右キー " +\r
+ "または Page Up ・ Page Downで操作, S ・ Bでフォントサイズ変更",\r
+\r
+ strings_zh: {\r
+ "slide":"幻灯片",\r
+ "help?":"帮助?",\r
+ "contents?":"内容?",\r
+ "table of contents":"目录",\r
+ "Table of Contents":"目录",\r
+ "restart presentation":"重新启动展示",\r
+ "restart?":"重新启动?"\r
+ },\r
+ help_zh:\r
+ "用鼠标点击, 空格条, 左右箭头, Pg Up 和 Pg Dn 导航. " +\r
+ "用 S, B 改变字体大小.",\r
+\r
+ strings_ru: {\r
+ "slide":"слайд",\r
+ "help?":"помощь?",\r
+ "contents?":"содержание?",\r
+ "table of contents":"оглавление",\r
+ "Table of Contents":"Оглавление",\r
+ "restart presentation":"перезапустить презентацию",\r
+ "restart?":"перезапуск?"\r
+ },\r
+ help_ru:\r
+ "Перемещайтесь кликая мышкой, используя клавишу пробел, стрелки" +\r
+ "влево/вправо или Pg Up и Pg Dn. Клавиши S и B меняют размер шрифта.",\r
+\r
+ strings_sv: {\r
+ "slide":"sida",\r
+ "help?":"hjälp",\r
+ "contents?":"innehåll",\r
+ "table of contents":"innehållsförteckning",\r
+ "Table of Contents":"Innehållsförteckning",\r
+ "restart presentation":"visa presentationen från början",\r
+ "restart?":"börja om"\r
+ },\r
+ help_sv:\r
+ "Bläddra med ett klick med vänstra musknappen, mellanslagstangenten, " +\r
+ "vänster- och högerpiltangenterna eller tangenterna Pg Up, Pg Dn. " +\r
+ "Använd tangenterna S och B för att ändra textens storlek.",\r
+\r
+// each such language array is declared in the localize array\r
+// which is set on string prototype and used as in "foo".localize();\r
+ localize: {\r
+ "es":this.strings_es,\r
+ "ca":this.strings_ca,\r
+ "cs":this.strings_cs,\r
+ "nl":this.strings_nl,\r
+ "de":this.strings_de,\r
+ "pl":this.strings_pl,\r
+ "fr":this.strings_fr,\r
+ "hu":this.strings_hu,\r
+ "it":this.strings_it,\r
+ "el":this.strings_el,\r
+ "jp":this.strings_ja,\r
+ "zh":this.strings_zh,\r
+ "ru":this.strings_ru,\r
+ "sv":this.strings_sv\r
+ },\r
+\r
+ init: function () {\r
+ var i18n = w3c_slidy_i18n;\r
+ var help_text = w3c_slidy.help_text;\r
+ i18n.strings_es[help_text] = i18n.help_es;\r
+ i18n.strings_ca[help_text] = i18n.help_ca;\r
+ i18n.strings_cs[help_text] = i18n.help_cs;\r
+ i18n.strings_nl[help_text] = i18n.help_nl;\r
+ i18n.strings_de[help_text] = i18n.help_de;\r
+ i18n.strings_pl[help_text] = i18n.help_pl;\r
+ i18n.strings_fr[help_text] = i18n.help_fr;\r
+ i18n.strings_hu[help_text] = i18n.help_hu;\r
+ i18n.strings_it[help_text] = i18n.help_it;\r
+ i18n.strings_el[help_text] = i18n.help_el;\r
+ i18n.strings_ja[help_text] = i18n.help_ja;\r
+ i18n.strings_zh[help_text] = i18n.help_zh;\r
+ i18n.strings_ru[help_text] = i18n.help_ru;\r
+ i18n.strings_sv[help_text] = i18n.help_sv;\r
+\r
+ w3c_slidy.lang = document.body.parentNode.getAttribute("lang");\r
+\r
+ if (!w3c_slidy.lang)\r
+ w3c_slidy.lang = document.body.parentNode.getAttribute("xml:lang");\r
+\r
+ if (!w3c_slidy.lang)\r
+ w3c_slidy.lang = "en";\r
+\r
+ // add localize method to all strings\r
+ // for use as in "contents".localize()\r
+ String.prototype.localize = function() {\r
+ if (this == "")\r
+ return this;\r
+\r
+ // try full language code, e.g. en-US\r
+ var s, lookup = w3c_slidy_i18n.localize[w3c_slidy.lang];\r
+\r
+ if (lookup)\r
+ {\r
+ s = lookup[this];\r
+\r
+ if (s)\r
+ return s;\r
+ }\r
+\r
+ // strip country code suffix, e.g.\r
+ // try en if undefined for en-US\r
+ var lg = w3c_slidy.lang.split("-");\r
+\r
+ if (lg.length > 1)\r
+ {\r
+ lookup = w3c_slidy_i18n.localize[lg[0]];\r
+\r
+ if (lookup)\r
+ {\r
+ s = lookup[this];\r
+\r
+ if (s)\r
+ return s;\r
+ }\r
+ }\r
+\r
+ // otherwise string as is\r
+ return this;\r
+ };\r
+ }\r
+};\r
+\r
+// hack for back button behavior\r
+if (w3c_slidy.ie6 || w3c_slidy.ie7)\r
+{\r
+ document.write("<iframe id='historyFrame' " +\r
+ "src='javascript:\"<html"+"></"+"html>\"' " +\r
+ "height='1' width='1' " +\r
+ "style='position:absolute;left:-800px'></iframe>");\r
+}\r
+\r
+// attach event listeners for initialization\r
+w3c_slidy.set_up();\r
+\r
+// hide the slides as soon as body element is available\r
+// to reduce annoying screen mess before the onload event\r
+setTimeout(w3c_slidy.hide_slides, 50);\r
+\r
+/*]]>*/\r
+</script>\r
+</head>\r
+<body class="article" style="max-width:45em">\r
+<div id="header" class="slide">\r
+<h1>Angling for a new Staff Interface</h1>\r
+</div>\r
+<div class="sect1 slide">\r
+<h1 id="_current_state_of_the_web_staff_interface">Current state of the web staff interface</h1>\r
+<div class="sectionbody" style="max-width:45em">\r
+<div class="paragraph"><p><a href="https://webby.evergreencatalog.com">https://webby.evergreencatalog.com</a></p></div>\r
+<div class="paragraph"><p><span class="image">\r
+<img alt="images/duck-with-webbed-feet.jpg"\r
+src="data:image/jpeg;base64,\r
+/9j/4AAQSkZJRgABAQEAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a\r
+HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy\r
+MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAGKArwDASIA\r
+AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA\r
+AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3\r
+ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm\r
+p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA\r
+AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx\r
+BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK\r
+U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3\r
+uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDWkWOR\r
+PLG2cnluTx+S00Yh2skSr77sAfmKlEmADvkPYhWyB/hT1jOfM2SMQepIz+WaZJWWRkYkMCp672JH\r
+4Glk8wRK29UjPDKPmK/j2qQJG07MYWx1YbQAR65zjFSeYJQfJ8xDuPWPOT2wehFAEC5LIwbOBjBJ\r
+OacRM8gBQYzwDzUg3bnYxybwRkjjP51IIgU3glcZzhsn/CgEQyQbg6oArY4bJPPsKrSW8yZDlkGB\r
+ksFJP0zVhijYiZG25z+8HH4YNI8durIxjyfUgtn6UrAJHJAI/LUbsDnjJ+p9KdHFayZ+c7u4GTj9\r
+KcYFZm3sS2M5dc4HoKRgImVliDg8ggHOPzpgNkjhhXIdmJwAAOPp9aAXtjvijQytn7+en0FSSmVE\r
+yIy5/ujuPqOlNZxLHteNFUcgAk4/MUrICER3Ej7svG57gbQaRodzYdiz565LVOwuiSxAdCuOFIJH\r
+8qWKReExIpHA2KSPxFMNSMJFDhbgBh/CG4A+tNihgEbRCWMDcT6dfQ9xUkjyx5Zowyg43AkZ/D1/\r
+SoZLu1lASWIg/wB4RkmlYZZlt1kVFV+QPuNJ1+gJ4qtLHchwGQDJxyRx9KesSR5WOPpyS23v7dqk\r
+i+0RBiTEVPJKgAg/p0oYFCDNwJCpLiM7eex9KtzX1wyJ5p3FAFGewHb6VIs0jKxbEy/eYCRMH8OT\r
+VacySfPGgwDhk65HsSKXL2C4faWJ2jagb2/lUbzumUUrgnk7ev49amjV3kVFhCg+2fz4qSWDzRsa\r
+IgKcAFMD8wOKTjcdyqNszBZGAz0wKnhgQjk/NGuFwO1SJFHCx+VUbuqA5P505wkkqg+YMHJ3LgdK\r
+FGysFxFjjkTBAx1waXy5JAFbzlXt6D8aiyTMo8xhvOAxOce1SoSA6szsAcckkE+vemlYRWeSORxH\r
+LsLYwqsjEn3yKsRm3giYgSMR14xigSMkRZTCqZycMefqRwad55Zd5khz1Cgg5+pzTQDR9nIaRoWJ\r
+UZ3HJ/PHSiRRcBWizjnIBI/pzTjIu5fOxk5wAcAe4qVEAiO8b93KsSSR+P8A+umIgyQvlbogD18z\r
+Ofpgmo9yeWZFLRIzbMDgM30zU8wCIp385+Xfkrn2NIiqcBmVSw+UfKwPuuKTYxgZlU+c0h5wNpJ4\r
+9+c0kccTsB5jE5xtzkj8+ak82KJ5A7rux8xJHHuaqf6PKWZpi4zy2zI/WlcdiUCNGbOwvk4USDkZ\r
+4Oc0vkSxEttXa3OwdB/9enNCHUKsinafl34woPp706N5CCoUS7funuD6D/6+KYiNC1sMoHAPO3n8\r
+x/8AXyKnYqYhISUcjJ4/Xkc1Clx+7MiBgxHLSAqR9KiS834EksykZAIANAE7O8YBCmRS3DGMD9M8\r
+/Uc0siMFUyv5YboWHGajklJO1Zt2Bj5scH6VIV88K0rMAcAAjg+2aAGoGBIldSp535B49MDtUVyb\r
+V5S24Rsx6RrgD2+lEyFTgFQoHJJAx+XpVWRreHy1uA25gMOpAP1IbH50ASsxWVJBGkuOQC5wKbJd\r
+NGuWPXnahzTvOto4iLaZmduBuG38s9T9KfL9wbAHY43fKMD17jNADor1JULSI5K8E7cqB2/GozcY\r
+bEKqFfgllxk+3PFQ8uzRwqkj4GN0WAp9zn9OtWNkhZdqDrjCL+nNAEiz3Eo5JGODnA/AUFGB2szE\r
+H+PGfwpUCM2U4A4KkZJNPkUsxxtz6DgCgBhh/dlvlcD0OGFBlKooQEY5+bHI/wAKesXlyb359lYq\r
+fzHSmFAq70ChkOCxGcE9RigBsko2guvGMLzz9aWa4AUq0Owg4OQQfaknjcBS6O2OA2cjj+lMLSYC\r
+tcIuR8vmc4+gNMQ4tC0f7wZBIwAeQR6Ht/8AXqvCkMDkRwM0PTy24A/HrVxY5X3MWTy1wNxDc/nU\r
+Mto8ZIVCxODl2wp+vWgBJobSfO6OJVJGSoPT0/8Ar4pVto7Qg29y6gjG1xkEZzjnH50RxPJFhreK\r
+MLnfmQnPpz+FSrtkQIIYijrty56DvQBYh82WVjMI1kBK4ifr7kHkU2aEZMjW+x1OdwIJb9M/hVWa\r
+3LqscyN5SrnBkbAA6dsj6ZqMCIR+SZZIWfnEkh2YHoWyM/rQBYWS3mYxqT5i9mDFqdI5gKuJCVzj\r
+5ULL/wB88/mKrvNJIihmtbpUG4Fxs/Juh+gqSCCVTugVVJGTvJYewye1FgbGhrKVwFcG4YZwPkJH\r
+qN2AasJaxQ2bMzSrGTghlOQfQYz+lZ0+myXqhbqUlQSyooLBSO/X9KYNPd5Fe3ma12/K3kZTd9ee\r
+fpgUAWpZIQuyOVQ68NlT8o9/Q80hZGVsEMkZGCvyn8eTT7a2SJTGmQAcbsAM1Lu3lgjEkDGB3HrQ\r
+BC0rKvmqP3gOQxHOP8arec5IBQnJ65q3JCSQIdxwRkc1GEk+aQjHy5YB+P1oArNK6uQF4I5IPIP0\r
+q7FLE8W4PsIyHRTjP0zTX2SxpJCkhVwGAaLHX/PWkkeGIZlSMY4LLznt90nJP05oGOV9ykIqhMZZ\r
+iMVErQj75XA/hxwamP2V4lxdxruH8QOD9B2qBbGGV1/0u3JHQbxRZiQ513nzUUld2FaP5SKU3lxZ\r
+3aRzIbuHHzsVG9T7HjNaKWTw2jRpJtJGA4/h9SPeqLSxLHKrDYy8KQSxOPU0Be5JdPFcIz2soWT+\r
+LjBGPUGslftLEKZVdO5B6+1T3Lrc2xiPzN1/eJ8o/EcmmR2OmiNQkJUr/wA9GOAfY/XsaTGi3ZwR\r
+xoTEqxsww2UzU8FtdzGRYIwFUZdtwAAPSnKZUgbZHCEbJJXnPoOKrpIIlOHBBA3EDABHbnqKasId\r
+PA8EpiZd5QD7p3DP1oaFwqmUMC/3cqfxpqJHG7F1C7ucI2fxqQzRS3ASP5M9TkjA+tMBrq0Tc4Rc\r
+g5IyaV2icFHHcAMeAKkMMSqjHkuufvZJHY0gWN3WJDyOhc5NIDE1KS5OYIna3Uckhd276UWNo0Kt\r
+M0plLADexP8AOtnU1jiKOkZk3H5kB5x7fSp4oj9nBhIKEcAr/SlZ3C+hnB1Y8IX+p/wpwkLP5axQ\r
+RA5OApJzVtI7nLCSIhPUKFqOSO3RdxIZ2OMLKCR+NVYko3A+Xy9mPUAYBqJZbmP5InEYPPAHWtMx\r
+XDRvKr7VQHAAz/8ArNV5LjUVYLJaWyArkOV5I9QM0ix8ChlOSEz0561GVaJmHltknJ9zSLcF1iM4\r
+AOOWVcEVZxO3MWx0PQ9f500I0WlhXh0ky2Nu1TyPammSOUZVGYD5SBn+vWiKZJAP3qxDPTzP8eBV\r
+iW5syBsR4mVcfu5N28+vXikMhVdqA7kwfl4T/wCvUUscpfaznYf7uAf8aYswUli/PbcmCB6e9Oac\r
+yJ5iKCi9S5/pQAgt9gJWUq47IMk/WpRHLjnYW/utj+YHFOiC3Cje0UqD7o44qJ4MSnZA5UdPLAXH\r
+0yKBIQEM/wA8IU4wPmLL9B6USIVTd5RVc8/vcE/pS+bIMER8j/npJyB+H+NBnSRceU5HZV+bJ9jm\r
+gCNmkPEfnxAY+84IB9hnmmo07DAumdCPvBD1z+n41cjiZoAwjbIGQxTHHpVdPLmkdoldyvBLEqM/\r
+hQA5HkhYCcoys2FIJyfTgdakZpmQ+VAo2/xMx+b/AAqKRZ3jAYoVByQdzY/Ht+lRKzI5xtBA6KWw\r
+P1oCwNcyeWylZImByrwngn/aB60+O+WUj5iWQkHbGQR/OnZnwEeOLDZxljk+9RuxlA3xoxUYUglf\r
+8mgCzPdFMCQDYRk7gR/TFU5VildVdyqMMA7Mr9Cad5flRjFuuScn5s4+ue1Hmq7hlUBs8cDH5HvQ\r
+BLBHLEECjfD0Vk4I/H/GpZhJEvMcbrjkEHJ/T+tU13O7q8MeRwGOQxHr1xj6UnmTo3CRtgEgKSg/\r
+Mk8/TNAyYTqIislowI5DLjn2/wA4qVCrjExkGeVSTr+HJqCQTxodqRE+m5ufqc0okm2Ff3W9ekZZ\r
+uD+IoEPaGNkceUSo6g5BFNjiSVQ0STA45LDGfp/+qnnzMbv3MQ/2WOM+4PFMefyshZZGJGVEa5GP\r
+XnigCBwXLwhsEcfKQWU/Sr0SFlXJZXUBQx+YkfjVZQ10/mi0WPaAA8yDc39KkEAiIJhDZbquQSfw\r
+HFJIGPE8qSEqqyFWGVVSv8+KZe7YnDrOyt1AQAYz70xriFn2b2Q8goCRn67uv4ZpFjuMANL5iKNx\r
+ZlB49sf4UwDe5fZnP8OXVck+2BUqQsh2ugOTnOVGT7nvT4i6oVEjBwflYrgN7YA/wpoW4dD5knlx\r
+nnK8hfxbmkA4fY5HChUyOGwwXj1HrQs8VuXTau3qEjXp9e1Ztz5bScyAGLLFnHEYI5465I6Csx78\r
+tABCrb2BZS3AC9zj6UnKxaRrz6h5kkSKUiQ8MT1zWa9/IZzLakcfIpAMjH3J7VV2ShGYxvJIy/Is\r
+Y5Huc9KjKeXBsSOZ5mHJVidoz0rNyuWkkWZZpkgIdmMjHtH3+mc4/OpbeaUBGc3eGXkOgjBPtk/0\r
+rPd54lVRbiIkA72fBXj2702dxI4DXMW0tgh8tgd+OtTco1hdeTMXErhVO795yPz+tWYdYYAKYmbP\r
+XgHBz6j+tc+WV3zEA+eS4O0KPxFTYVlI/dJGi/NJIOQeucDk9qpSsTZM6h5Yry2EsT+YucbWPAPv\r
+TmtkhCOQN7d/8DXJx3r6ayyWb7GfnLyfK/sQeldJZ6oNQw3QgfMrYP5Y7e9WmmQ00Tk71AaPgn7r\r
+c59/apZXIJ2/usDHyc4+mahhiBkkALKEOCQpIHFIwkZi5U9s5Oc0m9BFW5gncysMSHHzMT296S1Y\r
+fZ0gm3iaPlncE4P+yT0+mK0EACshLFQoJ9Kjlt0mQyNlGOOc4P400BCI5SQEaVUwCQ3yj696jErF\r
+fLeeTkcY9PbNShXhcZdQnJGW5P0PakkDXSjeozn5WC9R3yR3p3AIvIRB5ZIZfujBXmpQICAJH2se\r
+n8LZ9/emC2McqbUYRlSS5IIx6Y9aViBKrxfvEB+ZR/CO2KYiR4zv2xMxYDB/ecfoKbFAzLvYgbj/\r
+AH8kgdRxUkU8qIHTMeDkgHtjmo0kdGZlEi8YyOBj60rgSMVCFB90dPr7VGkUkeMn5s/eP6Z96h81\r
+lClo18wjjjoAepq0huHAYYwOenQevtTWoieKMxIWEzcsfk/hxn/HNRSQGaWWcSxxs3IG3qfxqNfl\r
+kdCXX5CylRn605Z4UaMbySq4BY5x19elMBqCJyj/AHwOOVCj8MUl2qOVG1wdvKg5A5ouJopUjVLb\r
+YVPz85DH1H/1qYyo2CIzEFB+eRzk59ecGgBRaFVd1lGxcfNu5b9elQNcQB1DXSw7sn5yBnHoe5+t\r
+PVYmnVpZ1kbsiDOfyFOVBM3lxybmGSVYE4FIBIYkMRYzx7gBgE/M57YA6f8A16jRPNuCzmLeoPcZ\r
+BqwV2gb25JH+yf0xxS3KJGAsR85Sof7m0E/zP1pgV5PMAVpHbd1AY5Xjt9ackEjxvdS+b5C8cPg5\r
+A5+tORTEGMksn7w5MY4U+wPXNKpIl3hpI5FPy5lByp56kfhigCFo5gwa2barH5gwVQR78cVIJ4hI\r
+25h5nRfNIGBns3IoeaGSICJZTIF/ePIR19eKibdNM/mWsDhmBMoYcf8AASOvuKSGwe5ifCrDIzLk\r
+Ekhefr/9anxlI5Aq7A545k5+vAz+lSybJYUQQEP137i5f09gO1RfY4xmQtz/AAlG/PPpTuIZcTuY\r
+onBVkb+6c5PIPPTilTc0ajfu2jJQp9361MsBVAbeVkDZYqdrKx9cetQxzTsfLkk3qD8xbA9s8UAK\r
+fKa3VH8wlOm1T0PPpgCo2t4yRiJkB5BYYPHf/wDVS7bzy8wu7Lu4K8gAdaSOZ5GwoCyLnceTuPv2\r
+oAfiZtpZ/N56Ht+PBpLm3tJICWhVWPBK8jPcjPNO8rzAhYsCemCGGcfWkklSAGMorN7nqKBlRI7i\r
+0Mgt7gxLn5dikp/wJTmpVmLozSJbSuDgYRlJ/L/CnLMqqWELMf7uTQJ5ljEkdhECeu9jj9KAHYBy\r
+wswF4/iJ/WmSkRFh5EqKvJdHBBHrzUyz3k0ZdkjhYDoqk8A8EAnj61WeO5ufJjHz26HLbAFwefbm\r
+gCVZ7CxXZLN5JlOfNIUhvxH9aY62s6Fo9RgYe5xSNZxeYyF13lQNh4/I96bHJDs8maFsEcSLz09R\r
+2/rRcLDVtY0Py3UAX2arCQRjARi+epA4FP8AMjaKNbV8rGnLMvLfhUgmB3KxKqoy2E5HHUHtQIQQ\r
+xRK25nJH9wYzTH8uIorlFBBI3cfm3aozbbSJI7iMo4zkOOlSM6JGFN2iv6qQc/jg0wuBlto5FC5m\r
+kP8AzzG5V+pFLOl5cW5/0pIo+SqxwsPz3c5+tRo1tbs8kNqCXGdglABPr0/zmmfasJJcG0YHO5vn\r
+yf0/woFYrxWAYoJWkKnlnnbOfzOKsxLHCixqUkIyY2fIz15GBihCrp5ikOCM/fH8jSRv5sAlilZg\r
+HwVkixj8/wClKwy0brbjZ5MkL/eIJXt6Hioru/shJF5TJNMzEBEOSB3J9AKQXToGMloGTJJKn9Bm\r
+qwtbWa4+3JHLFlduGUDP4D+tMOpYAmkjRwZx1BXIwfxpCY+PM+0q2OiHIqJFnWUPazFABl1JyCfU\r
+jpT/ADLg88ue5JxzSuBdFsfLYBVAYZIyOaatt+8UlwFA6ACryghWIj2KuDlm6/WpUzFFuOzJ6MRx\r
++dIZQlickBAWU9AFxQE8ol5YZVHf5en5VdDRSgqkwRug2nP86jltpUXeJN0nB+Uc4+lFhlYG3c7x\r
+GJVxjPQ5/LBpqpFMcRNN8p6ucEfUH/8AVVxPM2+bJJhP4hsI/UnionaE/JHJG6twUk7n2NMQHdE7\r
+qVYjHTb+uRxUAYrJII7gIcZ2Fe/161d+zgPGS8alT0B6+3NRG28uQiMncfVmY/l0x+NADSjSrGDK\r
+jt2BJH5HrTXcx5QRzKc4BQgn+fNDWaOi7ssCc5xwacIUMgbKKo6hBn6++aBDZGnH+sh8zj/WIwJH\r
+1GBVc3yvuVoypTjfIwPP4VYmhVFPJ2nHJQgL+FRxogLIrEIw4CoTx+VGoxYrrzY4w0aFm7LyQfXt\r
+ViO3aNS5UK/IycDA/U1GqOerysmchZAv/wCupwPMkJSWVePmTaMZ9qBERAODu3YBJZSAD+uaY0bY\r
+ygCnP3if6d6LlFWdQCB8vzEDLH29hS7Zo0xyw/h6A/pQFiFfORtx2MM8jBGfzNSbUdykiKo9eQM9\r
+upxTSHnBcwptXjcGDtn6UzEoYYkVV5xmLd+lK4WCSHySEDEA9FIxz29qbJEgT5tyOT95e1T+ZK7h\r
+WmjHPJQYI96JI5S5MbhwMcyleP60xorFpwwcbyxOAWA/PHHFS77iVwruQ/dYhgH8epFK8YhlbMkU\r
+kJADyLIQuT2GRzT2WGZGUyk8Y2Ace3AzQBWWHzpvllYugO7DA/XOcD8KQ8Msa7nctjGwbSBnPOOv\r
+ToasLbxwAqu0N/EWyzE/rmntvh+RIF3kbtxB7D2pAQuYQ6iRjuz8qsmQD6jik+zzK8nkyAkkFkYZ\r
+B+oIqZmUtueQRKAAdyNgt7c1Es0rjZBIxP8AEVyufrmmBLElxHkmVgD1x0/IdKoXt48jgF8xqwOH\r
+b5SexPtUl7eTQowllzvXaqL2Pr79RWJNcFHBZGlbgAluOB7fQn6VLlYqKFuJ4mjcNNI8i4DkLwpb\r
+knp19+vYYqJRDKxmbzdjfdWUlRJ6Y9s0SrMtvHcXNwic7kgjPVzjk+/H0AFUZtQmuyfOdSxYYMyk\r
+DHQ49cYrLc02LbT20IwZbosx+fY2QfbPbt+VMNyAgW1iupycfOflRW/r+NZ4lkdNqpJMRnAXCqv1\r
+Hr696ms2nlIiRdj5yGBzt91GcZ680WC5MkcgZVcSMxY5CZLADr1qeGKMOhDozkfcGSUHoT3Na8cI\r
+ittptQd/VmfBfHdm9fpUNxcNKoBmXbn5Utlwp9h3P+NTe41Ep/ZS0pEgik285eNsA+59qWOFlCmO\r
+fCucDyo8Bh7selTNdwoNka24bA3iSUNtPYYH+NJ9pMg+aZJBnlASgb2GKnVDSEkDgmFiqxnllyCT\r
+6Co7eGS0lFwqMsuCyIOQe2PpUsAs5JQJ98GW+8o3E+2TW1FJYKjCC4Urt55JZvf+fHAo5mh2JLO6\r
+e6iE23y2U4ZQc4bNWpcnh3IwegGSazmXyWFxGoCsyh0Y8sP72fUVa5BIIBB+7mTOR+PStotSRjJW\r
+YNhbgEAA555p+XILM7FM4OFBNMMMkgygUgdAGIxUW2V9qsSFONmeRn8KtogLsuEVJUbcWIGW5AHb\r
+b2+tMVyrsgZduBzjnIqUQiWZUK5c/ekD8Ed6SWIo4SKItkYbawJH0J/CizGN3b2IkcugzweOvFJF\r
+LGm5CJEKkE716/T/APVUcY3xHcJAI/4mUnHPoKsKsQcq3DHnrx+tFhF5An2aRpreTzBjaWk4VT3x\r
+3qg8yZJBLKeMZ4ppllDMoZcqM9eCPr0p6vG6s0gwW5ymDilrcY1BKpV45A2VxhwPx61KzFdpJz7Z\r
+/wA5phjYRnDjYv8Atf0PFJt+fdJIFO3Iw2CTVCHlUkZPLwuTgk8c/TnioCHa7yqxLEfunJII/wAa\r
+lG9U3bWkHTIGc/ljmnNKiqsUO046ocqQfb/9dAEJZkG4gIT268/0/GlmtiwHmeYWbv1x9KQKAuWX\r
+c+Mgs2Rn/CnKrvE6KAjMw3YJwT/SmIrgvGNickDkhOajn2tEc5L46AYx9D3q7Ekdug3mJG5xvcjP\r
+581VtxJPI5hE8pkYj5OMt0CqDyP50h3AMViHliTOOcj/ADmp4trR5ldg5dRtxwRnkk9vb1p6Wl9F\r
+eLbyRmFivSQYP4n0qEyKtw8YVX25/eAZ3DPpTAUxb+WlUIAevX8qTfbwhV2O+ehY4H60RLJK+HRx\r
+GOT5abc+3vUk/lhQxJdWGQmwk/l1FAvUcJGWNlEUcanovJLf0xUQuIC2Zo9sucKVQsPzzTFt22mR\r
+gF28sCuAO9RbxIIpRIgz91V7+2P8aQzRiuY45gxiR0HVH7+uR6e1QtzKxVwFLkkKuAPTgdPpUTRF\r
+ySW5H8IAH5CpdzsgBhXCoU5XBPOcn19jTERFrobo23Sp1AJXGfTkVIyvHGdzgg4IQrkZ/CgeVv8A\r
+LRF8w/eGS2B+HAqN3mEv3m2beJEUZ/HNAbgsrG2y02CG2hVfaRx1CjHHbPNPFtILRZn8oxMxVWaQ\r
+DnGTxnP41GGE5GIt+ADu6Z9+DTysIxucrnoOuKAWhXgaUyzxQxRP5eADGxII9cnmn+YVmTao3Acn\r
+HFOVQEQRzCSMHhVOcH+lSZiJGQA2eQB0/wAaQxHlxtwg8zPzFuVHocinyFUJA2yN1ZhkY+maJCkk\r
+3lrg7TjC45PakSRVARIiQBg723Z/wpiGNOr7FJdTjPyAZyPxqRLhFkBMku5VLgFc/njtUDqEm3PG\r
+pXGCqttH16Hmo1WQMZo4oim0h4WYkkZzmgZLCkEaEl/MZ8kseC2e5x0qUCEs5+0wx8H5HBy3HQYF\r
+M+YQhkg8sEBuJMkfhjNBChFPySg4LBuCD7UWC46BgjeZEIy4zgseADx07Ux7cNGzuUO7J3bv60Ap\r
+gfI8ak4yTn9KRItiExzxNnsOKAZRTT1j4hkQFxyuBsJ+nQ1fNuwVAAocduMkUwCQvmSPzN3HXJH0\r
+pYUW2kIYj73PmnPNAho+aTdtxn+6QAanFsxDsmcA8MD3/rThDIlxvNoGGONo4/Co5oEIeRss5/hy\r
+FIz6c07AM+0MCzEWzc4ITlj+AP8AOnMH/wBWGFoZDyQVBfHr19aj8pk4SMYzngfpUgswsMksjrEi\r
+qSSRkKPp2pALJZuRuV5ZmBx87ZA+gpmVXMbEeYeArevvSWuoiNXgjSa4XIO6U7FX6Z5omvlWQjyk\r
+Y92DEkfjinYBXASPbsU9yFXGKrfa5CAURWHrU0N28yYMMmxTuJkfJ+mMdKkVmx+7IRT/AArIQB+l\r
+IZcNw7SEkK/XACgkH05phvoJJIzKoL54LABVI9if6VMdsY3IE+f34qILEX2tFk99p4P1z1o1Alm8\r
+uZSIwm48lkcZ/TP9KrIJRcgtIXDDhG3Db9CBj86upDBDdeaIz6DgDH0GKn85QTtjIPVf89KAM/dL\r
+b3C+c0kyk9BJn/IqbcJpCm0bv7oI4/Cp5Q0qkbRgDklMkfkaiTytrAuu0ccDhvqKAG+bPllbDRKO\r
+fkKj8adGHK+ZCgCP1TcCrf4VFKgVEzO8kbDIVSCB+Hf86spKjElJACei/dx+BoEyFluWcBWMKDsm\r
+OfqTULSgnypGJIbIaNACP++uDVrfIrEEEnHQio3iSRcyxt9QeaB3AtA0bM6yGQHaHljwPzAxTpoG\r
+YL5smF7BGwSfbHNV9kRLLtJB4GT0p6RQrlNuJP8AZ4IoEJLcSg4Q5I+8OmR9aaqy7i4VkK/exNnI\r
+9v8A69TGJ2O0BS3XJX+eKPOUN80Z5/hznFAyCSVTC5B+ZRyOpqaVAeIlZJAo5bg8deDxT2gCZcYM\r
+gP3SelQOksrsZi7AnjACgfr0pAMhjBkOPMYg8srEA/8A16liDAsJJDnngjn9TUAD5wXcg9ACDUuf\r
+LjwDkHqepouAOjsA+8bl5Ulc1KFMsazF1YnOQqBh+dVo02lsBQH6fPz/AIVPBK0yFWmnEgJUqyjB\r
+H1AxQAea0SHNyvr8yBV/If0NNMczKW8wxoV27UJB/HNN33EJaMRmeI/dYArtPpnHP4UpDzACSZFO\r
+fmjaNmGPz60AEjJCyxtMrkr86qu7A9/SoorgnHkRSH5uGdCFH4gdavQG0tozHbybWDZO1c5J/Dp9\r
+KilublMeVllxnA5xQG5EsTRz4mjcebkkNyGPU/WpWjhCoUjdjITztK7cYzmonhNykbNIXlZRuduQ\r
+rD29KkS4jgWQmIqWUlSuGj9889fzxQFjmNVvRcXEpXCRRloWdTwvBwfqTtH4VRjMDFJiszW6FliQ\r
+c+Zjtj68fh71GySyZghaOQrIu7aSQ2Np3H2A49ya0YVukjmleUfallaKMhMCPDNuK++cHPbFZyZo\r
+lYopppmuXSYGNlQM65+VThflbuTk5x3OBVyWyjj/AHrGRnjTKqcfKo/TJOAMValkstP82IOypDLH\r
+CZGB+YBTIzde7AjP0FZB1pL0hllZsEPKyjgDsvv0yfSobbKsWRZBnfFskvlqCcEsV45AA461NIr6\r
+Yiq0Ucasdxk4xj9fyrjLzxLNdOJPKjMfIjRgdqrnjgcEnqSas2c1/rF1Db2o8vaAzIpO1TnGQCfc\r
+Cq5NLtiudFJqkbKWmcFCcb5GZlyOo2rxnp1rNvNXeVhAVjkyv3liVWHvjPpmnppUjO63DM4iIRio\r
+4dxnO0dT25PFa8dnZWqgIgkLdcgZH0PapuugzDtlvpipNvIATlF27cD1xitGG2ncfNab8EcqcdOg\r
+Ofwq8Hil2krLIWyNhl3ZHrnqBTDJDLKEgDb1PzKXzn8cn2pXZVkWU2RqBNIbdyvAIU4p6CCH5kaV\r
+JH54Pyn6AdzWablrcyxRwM7E/Msu1wp9cipIrgp8xi3YHygr0P4cVKTKNOFJRuCy7wpwPmPU9jmp\r
+tOnhdXsyYhJEC29sABM4A/Cs+N4lYqYBGx5YKw5PtSWotvta+VG6xk7MEAFR9OvPtVwlYmUbo3I5\r
+4YYsPcH1DJuJPtgDpUy3SmM4nlxngrEeB6DIqtK7MeZFZQCSrD1pkF3HiSPy1c5GGbcCuPYGt7nO\r
+0JPdywyxtFHHg8ndEdze4APFSxztAD5q+WGyWeOPzBn8TkVMPIdPMPlEliCAcZP86QXqoCiwSBgc\r
+A7gwP580XYFmCRJFXAndP4C0ZVR7Z9Kinn2zhfs7RsnBLNlT7ZH9aqEG5mG+KZiMtg8YHqSACM/j\r
+1qVGlO5MFY1GQXcsAenJJ4/AUXAejyiHcI/KDdcnOfqRxj3qMFUh8xOXGThFDjP14/SkS1RAECLG\r
+o4BjyefXA4qdoZXQ/v1IAwMHkH6UDKf2jLeY0h57Ic/XcKsK7lg7E+UQf3hC7V+mDzTDbBULzbQp\r
+O0Iwxz9e1NCxCMiMkMRt+T5tv48DNFxWLMySOpRTtKY6E4J9TUbiMZRQ806fwDJA9cn+nWlYy/Zn\r
+AuHBI+YRhd3vzjg/So1Ty8lFGw4xlSCT9elAE6/MdzNye2MY9qa4CJhUXYDkj0PvTF3AbZN7PjK8\r
+9KY8zJgSRjpkZ4NMTGfZoS3mMNjBeH9/b0FXbG8ayRxAzB2Od5RSR9M8D61RMgO7auVHTNOBb5cF\r
+mPUYzQInaWV38t2kZWADMz84H07VUlQyyERpH97aAmemecU+f5piW3GTqAq/oefxqeNXXcHh2sUB\r
+YjIPPY0PUY0wnyishZmjH9/JNLJEpQGRGZgobIGcfXmgLDyViCsTnI4xRLGd2WLsMg4YkjIoArTX\r
+fnQvGkBH91p24P4d/oa0LbS1ktVuLzUFggfBBypZjnGMZzgevSq7SbVxs3ZJJduefxqSKXzQQxAY\r
+DjCjHtQIZHbW9tDKFX7Q0gYxBAQPdiKojcoMczYOcAuueKs7yWmUSM7sSQCcZz05pqxJGN8nmbsH\r
+EYHzN3zij0KJIiLcGIOpJIzuT5SPr2+tNlXzJzHsEcee6Nn2/wA4p6XEbiIzF4F++Xl53D2NRy3g\r
+lUfYpdx5IYRHaufc45/A0CG3caxxqFRd2QXZsqoH19aY0wV921OF3Affb8jipVtJ3mhNwzS7WBDO\r
+4AwRz8v861Lieyiga3gsothBLTTFS+eOmBnAwePeiwGSx/0dZCGQAgFtmQD1/D6UyeVQhOS7suFV\r
+f4iemDVi7lSazEZk2268pGoJ7dT71Tt7WaW4QRlSYfmVsZII5AYe/NIYqRvDIPKJAB5xg845zVmZ\r
+XI8zLEkdBwAPWpReP8yNapby4BDSEsp55BwMjjpn86V90qmN+QfmUJEOfT5ulMRViR2zI+FUYwRj\r
+n8+lSlPMYCOSRGBO+KPbkD3BzxUcv2qGAiNUZW4KyLweepIORj05+lOmjWRQFZPmG5vnxn6gUDGB\r
+ZEXcgV7Yk53jIHuOmPpU9vbJcpvRk2noEkyD6jHb8aqpIYTtBjGeflAyaU2luJRJ5GxyOCBjtjg0\r
+IC08ZeVVLsoHyj5SR+dVSUG9GVlwcZYDH1qSXVWiORCJFVeoJGP8ab5ofAlBCt9wEg/jnsPwoEKT\r
+DjzJC+QMbl6VFbX/AJVnNdsy3VumAEIIkV/TpgipY7USXCblkTJwrLkqamvRYW9sYLwjy2bcAUzu\r
+Y/TvQh7GSNQvdWYM6tb24/gR+T9fary7VQKwXj0p0D5l3xQqYwPmMo3En/d6AYpkq7n3qE2rn/Z/\r
+T0pagW4bpplaJJGicjahyPl46n1qESzqpinuVnjYcrKgIP5YqsiGWIShSPTIwfrTwyunMYRgeWKn\r
+5vcU7iBxGylWLqrHLbW+X609ME+WJ4JlXkKWGR+FQjGA2WPIAyuAas+RhDJIeMYBoASTYwK4idj1\r
+2yAf/rpnPG1gB7fN+tILEszNIqsxGVZs8CnrfRWy+UtquF4H73H9KNwuW1WMt90gEdCRiog2yQjJ\r
+jHruP9BUrLGhGQ2MZOQf60nl+a3y8AYzkkfypDHxujjZE87yLwWGdv69acWKLllbKnBLrx+lQSo6\r
+KMsS3ZRk4+lBnkwqryeQS45/Ki4E8kyzpFgMMc8KcH6ZOMfnTbkeZDsDpG3UYFRbUVsog3HgDAU5\r
++lSfM0RzhQcHOev4UD2I0upIoytxGjJ2ZEyB+Aq281tEoZhxjnAGSfYd6pujA/fOex3U6NW2Aoq7\r
+gSSVAJP1oTEPE2CXIMQbjGSBipym0fdXI7HOahMjMrAKTz/e61Uj2LIqiRPvZ2g9KALyuOT5vGcM\r
+F7fjihJUbO64iDEnAXBB/Gqk7ElnVkBUdN2D+VVlu5DktCpYHrgjP40XA1lEYBG8477Wzn8M0qSx\r
+wBlUyyOOm6M5qGK9SKPy9jIOu6P1/SpBfRvJgzeXnqxXGPbPamAwTryXhYdGABDfnxTfthLbVkQP\r
+1EbJg/hTnRJgGSSOVR1ZSQR6emaZHDKYvLiklZieCR75PtQA6N5Jt2F+X1CqVB9OcUJcrCQjxiJj\r
+wNnI/HnireWUbG2lj0CjGKrSwSgBo1RmPDb1IP5g0CJjLBkAtEueSdwyR+NVJFSSUmIA4+8S25QP\r
+YZxT5bB3hYyBDuOCFXPB9yakgUW8LrGmUTC7c8gf1pDRAsFvliyQb8/fIKkfjnFOVlQAJcRg+gkJ\r
+/TNStMdgjiiwjc9yak3WifMYnLkgkKnf/doAg+1wgqFdpHXl2VSB/hTXuHVwyRMSemxcEj2zT5Ut\r
+55pJVaSPcMMMEMD/ACqK3xbiQSLNjoX3FlPvgHilcdiSSeWWDEkTIcZO58Z/Ks3U5UttEnjM9wS3\r
+8DkbQfYitVFMgL7TcI4ypTbyB75rn/GarHpEKQo2ZWy4YZPYAcfWk5WY4q5k+HZ5RfWsmQqTRrtT\r
+b0b74H02jNW/Ed7HYRTLErBpRNImQPlEjnJ/EZI9N4qjoEE1rYtdsj7I0IGQVy7cDJPH90ewFYep\r
+3st3dvPNkPMG8xVBAG0lQPwH5ZFZ3TZpay1JL27luftEMrqJbh1uGlY8A7fm4/TH0rGEMsjqluXR\r
+CcICcZ7nj8R+ddJpliHnvLydcm3QQxxL2+Xpn29at6dpa28EUzqJPNAAzGSSc8gH1P8AKlzWY+W6\r
+M+28HoyxNJM8AaMuwUZ57ADPJPb2FdDa21jpcLWtvCRkjzJZZPmcEdDt5A71Jeq1rtWVSrvu3IjE\r
+jB7A+3QDIrJe6nVvLiR4o0P+pkmHHpwfmzj3pJ3HZpF2KLzPs7tdxKF+6sEgBPHqe/4U+fzTHHIz\r
+bVyAH3bjn0PFUP7SaaZFW1jnkD7djj5UPcg9fxq5BJhVTdhwTuRgADn2HsaZI0fZxP8AvJCEb7ox\r
+hT6Z7ke1X4onuIyoWOQEcG3YRADv7/iaqKlz57BlVEUfKme3YD0qZJ5MHybZxGeG2MFz7D0qC0K9\r
+jHBG8XmozKAVVVJw3+0etEMiuFjyoMbHpjBx1461LG8TsZkdUABDqwO76fXNNSMQ3LtHGrIcgFU5\r
+P1/vU/ULEd7hcMsR8p/vAtjb7+3Y1TjmPnJ5bMjqygMfvNhgcc89uvtWldGWC2LzzRMythlVcZQ1\r
+jxpsvY02A7XV1Zm+ULnv+f6ULcGtDsZ7ZHEtw2V+b7wA+YfhVWMJLxEVOO5Ug/nU2oahp8UrOsto\r
+7ZyPLt5WH4kuOKk0e5ivy4a1smjGSG+0srH6IMkVtzaXMeVkKwDyiohU5PLB8H8KnV3yynfJxyd3\r
+zD1FU726t4AwuIL21jHAYx70H4/KcfU1c06bQ7os/wDa8HnsMBTCYyPzYj9afNpcORj5XW5jDqDJ\r
+gAfu3zjH0qqtxdIXEZO4DI3nOM+xoudsEgMkFxLAhz50cauPx2ZOPrSo1rclZrc/KchE54HpTuiX\r
+FiB3kSQyy4LcbFTHHpn0qWLZu3yHZHg8qmcYpClxGWVTuz0AbnH0pjyZkjQM8bY+YK3X/PWmIl2h\r
+1bE04DL93ccfU1WRZ40VcFR2YGiaR1c/NIvvuyT71ZhYyAsXnIbO4k5AwOOew9qAM+ZZIZSzSyOw\r
+PGBkH3BpRctz5sj5bnJORn8OtXHf90GV1kIbhXGR6kZ9vqaZLbtLHwghPrGpP6GgCDznyrsyDcBw\r
+Biru7eqs3zA9Sxz+tVYbdDLgl2ZTwScfpV64eRBvfYRjhSef5UIRCnlzYGHj5Py5BBPTinSkKpQY\r
+Ung45z9B1qKSSdmUqqqjckr/ABfpQd4QYdeDxu6imAgRVAk3OeRjgjNXVEbwZ/i69e9VyivL8oGS\r
+Mk7vanKrYwB+GaQx8jSTgJPOFAGVJGcD045qsyzRsdhLKPft64psjvv+ZcEHoFwac0knkOYd+7HU\r
+NyPf0piaGKjblQHeRjjNSFQmHduD0AFSrKrQlpGXJxngKQT6gfTrTZFZpSGVScZDNlgR+FAFUL5z\r
+Ku9UReeI8nHpx1pyi4hjIaWQuTlAAG2Z9KWSVvl2BsYwQAVJ+tDfac7kBTuSecDv+FIaHo8scpdz\r
+5gwB8zn5T7f57UhlEW0Mnl7jlAo3Z757UWdzGNsgfepUnmLcoOODgg9/aplnldN7IoQDIIIAGe9A\r
+EbRSzKrK7sp5AxgD157/AI09Z9yCFkHOfmIwMYx0qJ/JtoRNFNI0zEk9ePr9c0xbhC25t20rkq6D\r
+rn1HNMBsg85RE6hACOnO4+4qOezlkVmjL7nTYxj+VnUdjzzUctzl8IXJYkkY6Z9KmhvZLZSY4Azn\r
++JnyT/hUjHQw3SxksjBFGML1p1oVtSyMTCB/qg0h2sp9vWovtkzZMzEf7Cn5R7VI16s6/OrtnqCF\r
+/WmhC3dvP5qy582MD5QZdwye+PWmgEN8p8ps42/MuaIYkMuFjikLHvGDj36VdFpqG1tiqB3O2gNi\r
+v8+Dhg57nAyMVH9odSqSRSOD2VMHGfyxSNaXdq5O1wp77c0wxSSP8oJf1INAEkjCCRVETEMQRjjH\r
+PvUkohZxsuIEHqZR8o+lIfNhAeOVRtx5iyDKH0Iz0NNtlhnnliRQr7d2UzgnuBTAZFFJeoJLJ5rb\r
+k/vAdjt/9Y9elK+ixaesEtz5U5k+cYmDlvXPcVaCBI9rSMzerAfKP8+tLtYkA/dZflGByKBXIInM\r
+jERg7GfO3o30OB0qKVIor1rYxIrAbmJft24x3qyySMhcyBRyADJg/mADVb7IThPnGenzbufU+tAD\r
+1RIolfzFP1OM+gFaGm2VrduUubqOBGTgsM81k+e1i6sMTTK3yluNpHccUsNws8xHJYcHb0zRoMt6\r
+raLYXZiWYTAgEMMMG98g8fjVWJC0fnRrLk5LYmyBzjG3HtmpAFbKgqCQQRg5ApsFxb2dxueKZ9pw\r
+Wj5/MUBYsQbnYl2mCgcxN8wI/pT/ALLG5JSWZR6FSKgbV7FQ1ytvdCINgyGMqufrSjxDbEZ2HHbA\r
+J/pVaE/Il3h2Z9y7umAcn8TT/MCybUbjrypJGPbH60kkaKGO4AMMn5eSarRvLIy7MoR1I6Ee9QUL\r
+guwjJcbm6gd/rU8cIxyUYdACvNKvmLCd6MSDweOfaozcXLzruiwcfM2xWx6d6ALMsBe35Ugf7Kbu\r
+nfiqygTSKEYSADHJAIx+GadHE7uSixM4GBlgpI9sdPzNJMkikt5EjjIBDEOPwPUH3pgOMflrjYzg\r
+nhnTgVLHCViDEkseQoTgc+1RCYBj5TKsmdrxscbT7g1JA0iowmkYk9dy4B/pQAx/NjbMTKRycbxx\r
++BFMCxyTFikbv/EGTafw6A1IbiMDacH6jt6VFcssgw8khj3A7M8H6AdRSASZXmBFqFVlOCq/5x+t\r
+QxxyBtpgZsD5g7jr7Yp1uiqZNsK88/OhBP071aS4X+GKViORhRx9MnJNAyaO1Lbv3ce3AK4HOfeo\r
+XWWKQNFGrEcbsEnP40LfQzjAjuGJ5XzI+v0BOcfSiYSyRgR26RA4+Yg5A9eOc/hQIekuLaaS4CIu\r
+CW+TFBRJBHJHG8sJGAGwMZ7nBqJJZ7cqwvUmi4XZgNIfxyDmnR3EEfyeY0O4n/WEc/QjimJXEY3d\r
+uQqW5eLrskuBkfTnP605pyg81rSfdxhmO4c+uM/pUpWSaZGWMTqpB+ZvlP5c81Z1GYSGNhZQ2uFx\r
+shyoP1zQMz1TLr/pcsrNndu4Qg/7PBx6VIkG59oyB0wBjjt+FEcjzu2YSV/vqwwD+HP6VG08hjEZ\r
+RlDE/MhOce+RmkBYZWX5Xc56bVJx/wDrphZ4LclvNcA9DwR9DUXnNztaRQuATEmWJ9yeB+VC3FzG\r
+VE3kSlujRy4P5EfyoAkingxgLKh64xwKd9pgbH78b84APy5/EipQwmUMscjg/LhT909+e9JIIXGx\r
+SxZO2Pm+tAEc0zQQyG3MkQcYMYiBRm9z/UVWnmti3+mmNkByiuoJBxj8KguJEEgkRsqmcMQMnNc1\r
+freXUgkceXFuAG44NZVYxauzWDaehq+ILpLjR3S1wojZGCqOMKwJGB9K5a0sJ57maSYq0u4MCQCC\r
+7/N+CgncfXAFaS3MYleDf8xyOvNWrO0O3d5QKkgMe2B3P6cV52HnyXh8ztqxTsyxYQomm+TEPkeU\r
+ySuy5LgYAUE989T0ycVPJfTRXIZJYJnhyI42iCJH/s7jjJ9xxUV1KLf/AFkhAAAUHjA579vzrn9Q\r
+v4sY80MMbcR/OFH4jj6V1x1MHoaF5d/ZJhLLZQRzE7gV/eb2I9QeO3WsstPdTsjJF578sZTvJHXC\r
+r2+tUIo3uZNiKr5Gd4UnjoCQMDPHv9K0Y4IowsgIAQglYnC5OemcDHI698Yq9ERqyW3il4fy4w5Y\r
+gIq48sew/KrShI4lkV9zsAqO3J45AFU45DGxcqY5SMCSQ/MD6AZ5FVZZZPMMjozsThnC5OaEDRuB\r
+o1jMxZFkYZ+blX78envThqcsiR4gAf8AiA43euPwrMjuIjEjrLhwPukdeP0+hpUlAmRTLuAb70R4\r
+z6EVPUaNmKdnt3SMRO7ICDIu3ccdM/56VaQmJNskeHK7yidj6DHFZkc5iCvJdGVlJA3EYwBzjAqX\r
+7REoK7p8ghuRw3c8j8elN7B6j7q8LyQpGAVKkHeORz3rPnaPO4KMgbdu35oyckfhTvOBcM8ThA2U\r
+LYDcDv8AnT0tN3l54jbgEDPB5APtn8s0Ab2j6KPsi3zy3M8smHWK2J6ZPDHp+FQ6teHTrqa7nis4\r
+XYgR24Ad8YwSSvT8a0NMjvzawwLNK0caY2xoCAeuenH41amFzCPnvZlx1UxwkfluFTzNS1KSTRyd\r
+lbW2qRyS2t/cQMoy0TozJjv8yjIH1FX3Wz06OIadpy/ayoH2tZw0Yb6EHH6VPda4LfcEuh5mP4Y2\r
+hdvoVJB/OssawNUuFSGCS4mIxkAb/wAwBn8c1pq9WS7bIk/sK6tQbyTX4obndubytxA/EY59hWs/\r
+jSTTLO3imne/3Z3SMcHjjjvVG3t9amZobSBYVQZeG4jaJefpkH68VPdaBaMok1DTrlpCNzvbylgP\r
+p7Ur99Qt0JoPE2g3x/0q61GBjzyyug/DbmrpfSpYyYdXt5gQB+9/dn8WGcfiK5yTTfDKIxSK+x/e\r
+eVlH0+7V21srKKBjpaWJmkBXM87MU46niqUvUTimbUjRQ2Y3YBDYDBg4Ix1DDIptu9tex4Dqc9mP\r
+Ofcdq5MeGvE1mPNtvKkXpiG6U5/AkVct4/ENqubnRrnb1LxAZ/Q1aqx7mbpPodAIm+ZWllbsegA+\r
+mOlRRMXa527VMRVCJHI4x161Fb3q3LRKqyWs/eKaJkyfYkYP51LcWUnzXEsS4UAltm7v1q7roQ01\r
+uSN5YaJ2kV3GCRGcgemfen/arVnykwVwclXyoJ9OlUxdpEpyCG52kLx+NLuKvvR8SDocZDexHcfr\r
+QTYu+ZBJkvPGCecCTGOP1+tQMCDu2BozkqwfsO9OkR54YmhVY4xu81QuGBHoT271AIxxsw5PzH1H\r
++NA7DiI4PvKXYkY3P933Apklzv2naqc/eB7U2RZCdzggHocfpQsBYI29cscAP2oAf9pkKgKMJjAY\r
+DcTz3PaoWK4InuC2B03nGfpU8FvIdybtpIOeOPr7inyCxL4kRlYcMWQ4H07UxEImSNWKHHyBQQit\r
+k/U8mohdWsbxvIsqXDAsgIChuxwxOParPlgSAKYghziRFHTt1qOOKNpPOmWSRyAQGIUlfYH+VAE0\r
+FuLn59+GzwqyBzUWpQXE1q9q8jxxOQCBHlnXIPJPSqUdpavLMzWzOUOWldcHucA5OcDA/Cru5bKJ\r
+2lWVbcYDZfKrnvjrQFhixxW8TBXKgcA9SefSpIyskWfmxt45yevb0p08UCxI/mL5UnKFATnHvVc5\r
+EkjMzSqx3EknnNIYMVjcKRuVjgkgZJxx361IbaNnzGhJB+bafuf72aropM8MyHadrZVnHXHXkYOP\r
+ep5/M37luZTllJwdqgY6ZHU/SgCqRP57vBAHj6Nlev5c0vnmUS232eOO4GMxFJHJHHORjA5q2btJ\r
+QVYTxsFByHyrewp0bSNcJ+6CjkLLtGcY6dxTAg2yLFhrqRcZ27Id/TqMf0qS1MzAq3mOCowBEI2B\r
+75IPH5cVPcN5OHcLGD2VdxPtj/64qBtWiXcGtHgjbIEgkUsPfA/xoAmnjmTKMrY27uJmYn8gDVby\r
+kaIebGocckKM8/ic4/HNXRHDdwRXUe6Uui4fnlffvSf2dK7bS/yH7oxzQIrwwRu+2PzhMQcBXYE/\r
+h0pY5naVon3gg45PbHrnOaJf9E34SVZFbaHlZVX+ecVWju719mLZYyW5kh+bK+oBzmgZpfYC8ISW\r
+VyDjlmxz+NVZY7awmjEcizz53AAqQnOBwDyaYtlaTOnnyS+bLxmRdp59M96u3crWyW1rDbmVJMgz\r
+Fc4UYHOAASc0CKIZrgmVp4W6EB48fjxVoSW1x5vN0ZNoEbxNjn0II/XPanm28q1kbaAQ3RT8v1A7\r
+VSQxiUs4Zu2N2MH3oAfm5jJ+cEd/MA4/TNIbib7pCSg88btw+hAx+dT+QzDcZmHfG7O6pttksSpK\r
+reY3IEOWA+ozj8KAuUMiVWPlkHHUnLY9qqtKomZUkAx935OP/wBddPFa6XIB5jKnTMrSMpA7/Ltr\r
+I1CzgSaT7HJJOoJKGT+IfT6UWYXIGv5pLeO3lYMqNlV2/wBaZP5ZjMjqWIX5lYZ3e1PhBZFkjgRD\r
+jDYfOPqO1MmkG4ERl17bXpALYmxtZPOJnRcH90IsqD7Y6fhT21LR5GLGVs9wTjH4E0yKZUUcYLHB\r
+7gD61E9tFO5clD/vRZp/IdjQjQzBCqNjuSuRinACIkFXyeCExj8eKqvIqIoSNyO5GRzUiyrKRzIG\r
+Ufd35pDLMbvkqiIFHbJyaa67JmLO4yM/Lk8VC8MUi7thbH8JYcU6IyLJ88Lqv+yuRTEIHjf/AJYg\r
+k55fGRjvn1oF75G1R5km9tg3tkZ/nS3MJaIYDbmOdo+XH51FbQo0O0FlbPMbLn9aWox7pGIhGscC\r
+Dq4Ld/y4qCKBo1/czgKeQBMX2Efpj2xVzymBICFz2wvH41KvmfKFf5x1y2f6UAQrPdMxjEsLRYH7\r
+tVKhjnqCP/rVNJFO5VlgCI2FHyEt+NRTWoLkZK7jzuxwfani3fIG+b0AfnH5mgQ6S2lU74EKcY5x\r
+/Kh1u5WRVAdh/Gr+WV+vXI+lTRxPHEdpLbjwx/zimmIh/wB5PKepA3bQB9QB+tADJTd2rgeejAnD\r
+AyBdo9c4zTCXkdQjRkDs2Tn3yeaj3QKAPMTGccj+frUkbCIvjG5h2cg/nQBGXEkuJYVWQc7UcEn+\r
+tObarq8iRpv4DGLfj6nqKk+0tbxCSSPrx5iNlvYHjpUa3BLbo5rmMFuMEEfl/hQAG3kQkpJ5YI6o\r
+uAfo1RCRrQqZI5pFbIBUhiT/ALWTU0rSnCkrvbn5VKn8t1U5RAl2zbCZO6qMfmaALMt2iR+WtncJ\r
+vxluOPyb/PvUytKivHutTk7RgMSfrjvVNZrh+I8RoTztPT6E96s5dSVBZ1bPzFc/rnmgLEhGxdx8\r
+shRhjtK4/DNQygxBWgVH5zhhyR6cdKHDyEYUgA55XIxS+V5pCFgwJA2KCSPwoGSwxRp5jRQuRKNr\r
+KOnvUFwkiB/MchMc84GPpWgkKae7mYDecbgWyuPf39qxL+48/cNxZSeSe9NoFoYutXl5b6Y1za2x\r
+llZgI4/RTn5j7cVzaSanKRPe3XmbDu2qfkRsYCj1x3PSt+7t4rmUG4QSkdN54FUb7DR7FACr04/l\r
+U8ra1Luuhgq0kdwkwJ3Kc9etdQZplhH2dirldyHrg49O/pWVY2DXtyVQHy15Y1u3EkFrFnIO3oR3\r
+9h7e9eVj5xUo8nxI7cJCTu3sYbz304YStGNoydqYUj39agtbGW5jSVnWNcgvg89emD+HNO1XVJZ3\r
+ZXjyuemdvA7fSs9PEISNY4NLt2aPIyzM2c+ta0pVJK70KrRpxdo6nVw29mi5jRN5O7cQM5+oFRzR\r
+FgXJwoyAdnzke5HNcfJ4j1WUARNHEp4AjjHB/HNPi1vUreVEnmMm8cCTrn8K0UJLqYXXY3ZoniIZ\r
+H2FVxjaCQPYnOaz1WKTO4gY5LIAPqO2Pap1u0vkG+YRqMgpIcf8A66ZHakNwA8bKRweMdhj1Bqo7\r
+aidr6FhGMkHlF95XafmASQ+hz3q1G32d3iDRmMjk98+v16VnosxRAq7XUjPJzjpUiwvLl2XZIGO5\r
+zxx70XFZmhDcjzFDrET90Z6Y9/rRDJcTxiEhVCk7ME569PepLOwEse9wrFeWIBCrn371cY2qIm35\r
+nYMVVFzuA9+1G+wWIjAszxRlyfLy2GPLDHI/kfwrSsLco3+kSeWm3G3rkY/zxWV5770kt2EMUhPD\r
+ff6AYz2yOn4VJCjyJIV3M6qdzNk89Mj0PSrVkTZs3dQmVrZQIGMec5EIlGfz4rFuNP09nK/2gLaY\r
+87Gt8qB9QTipbSO5uJhL9rDqifPCJDGQB1JB60twi6ggNna2kkK4BdG8tkHqST096L9h2sWoGbQL\r
+NZZpbO9jkO0eVEcEHrl+oNXDfa1LCh0bTVhtMfMYtm1f+BelZNjFYWbPDfXM82Vy8cBDRkejEdT9\r
+KjbU2u7uOHQYbmNQCNq9+eOF/qaGlv8AiNXNpLaOdt+o66ba6UZMUcoyfxOR+VQ6tr8ukeVFCbiT\r
+/augkisP9kgf1rl9as9RtrgNcQ7TJyQgPX3HY1a0S2l1Rv7PBdMqSw+9keoVvT2oukr3BxbNFPEm\r
+nX67Lm2MTHglCZEP1Rjn8mp0F3oYfyrixUEj5ZImP9RuH0zVoaD4c0fm6nlll7LI20fkvNH/AAme\r
+kWhFumjwyQqeN20/iCRmkpX+GOgNKL1ZD5Ph8SNGLrUrJj/y0jYSof5HHtitGKxvhaudJ1eO7GQT\r
+P5+5kHoUYAjPrzWbqJ0fXv8ASLC+FtPj/j2mVQPwIrmori7tblhEzeZGedhO4Y+lPcWp1tvrXiSK\r
+UILq3uFzjZJtUH25wP1q6lzZxyJ9vtbrSJWz94GS2fPXHPy/gawYb7UNTiLPbu8g/wCW6pyf97sf\r
+r1qKHxBeWRMaEbDwyfwt9VPBqlboJrujrZNLklzPGyGI/caB96N6c0+SKTy/3YwcY+ZR19xiuds/\r
+EFqjl4FfT5z1aD/Vuf8AajPH5Yq/H4ggmIF1F5bNkCW3GVP/AAH8e1UpPqZuHYvo91G2NqOSMB/u\r
+nHXHFMIz8xgPIzkIMZ5yOfTiiF7W7XFvdCU5zlOeP6VFMpinZommcHs59u2a0Myfz3XLERtxjA4p\r
+8ZhlBPlqxHVcHcp91/qKqGWc7QqsuP4yBk/lSKJWjXdGCyt1Izn3zRcGi+iSRnZ9nQxtkEoSCeOf\r
+aoRaoGbbEqezDP0zg1FHEvKBFVhzxGEJ7dd1PVbkgHzp/vYCgKOPfk0CsTtHtcyySbEVQCWOR6fh\r
+UElrvlMySlnPOSc8VHcXF7DCqRxWzbicecGJb8c0yFJ3hDuyhy3KxNtHX0FMZaaP9wy42A5DbwCD\r
+xzn0qukBbhjuCDCtncPwqK3e4ilCh0lHzHczv19MdD6Z9KuJF9rtnUXESNuBcwD7vtg/dOe/pSAq\r
+TanaWcZUWEnlAkn5lXLey84pzM5gLTRKu4f8s8nA4IAJ6+n1p6WqblUxBSrYEijIPqaasTrH5saS\r
+jJPCtj8xyKYES4lglga4DLKAHMisCB6dOKkEEkDFRHHEu0BMKcuB7dD9aZEI7tFfK7/7m4g59xx/\r
+Kp5bGKLO6N0J5KoOMfWgRXFy4bY0TBgMZDZDEf7IBxSm8vYVZoobZ2LfLEExx6Zzkn3xUiwpu2rE\r
+jIf+WoJJppgaH522FlPBjYqSfxpBogbWY3VPtMM0BB5Hlb0b8RQ13a+aTIR5QHI8ktj8gainBcIw\r
+iSQKMlw5cofTsB+FTI0KRghGDH0HX+lFx2Gyava28fl29rMsQYsz+Syjrzx1qC4njvmRYZniQkbs\r
+JKHf29AD9c1YZ1Kbwwz0wxJI96WWKDO7zA3TaV56U7sLIjgtIY9m0Qo45O7kjnuNxJ+makjDyp5M\r
+siLjlise1TnsM0GOAoWeNSxwuWGOKRI4CM79ydiozn6c0ALq2mefZFLZlSTjKq+0PjsQep/KmW2l\r
+OEZwCh28ES/Kh/2VyalDRZESLIB2PUD8KDGUAO4r3yByTSAuvtIEYkjaYffUKcE+wJ/lVef7MqAz\r
+Kob/AGgQfy61WkR7hwJZJJRnICPtYe3uKt/ZUt5AAr7egJ5OfqaYrFY3GCEt0jDkdJCQB79RUkH2\r
+hV/evYAjOMPkn/PpUj6faTQ+UYBnOQ7L3/rVEmKJxFKI0RD1aE/4UXCyJneeW5UBjFgFs7gVyeg4\r
+yOg71OxMMHzW67nOW2jBz9RkU5NksWyNAVX+JAPzxxVeVpolDKLmULkeWjhRQO4jI7TDZCiA/Mpb\r
+jn3IFVy3RGtZY3zkmAh1z9c1IL65SL95bnJH3ZZDgD609bpntx5Kq0gwTHtOPwNAhisWnU/OD0y1\r
+JIYg5BEjH1FW/tylSnlTMcfN0x+GKgbU3DHbaNj/AKaMFP5YoAmBbyyXdiCBgsCRUTRoxLAI6gY3\r
+IcnP07UqzOGIEZ2+pJOP6Uk6LNEFO9uQcsvHFIoikgmjUbPujt/ntUkSqIww8xSTyoY4/D2pY/Mj\r
+4VE8vttfbj6jFWBDKVyzZHsR/hQAQLDJHgRNGVPTbg5pZBhCVkjJz1lUH9aDGA/Qrg9kPP4jBH50\r
+wzAvjl2A+6qkN+uaBEkby5+WNHx0ZWIA/TgU6NiJ/KMW1W/iVv8A62ajWS5ZQSq7W6h3wR+VN8pD\r
+IAJnPPKh92fz7fhQMuXEX7rIaUbBj5ACT+B61QdJWhCrLN83oeM/TJwaVSxYqs0wGeFJ4H0APSpk\r
+s3lkRpHkTBztycH8KBFNmuECuk4TYuXmwxX6EZIP5VLD5kwZjJLOwBO8oML7+1E6RxM7SlgFPBGf\r
+0Galyq7lLYOB8zc5+tGoESwspCrtyBk7Oo+tSqgQsRGeTzuPFIUl+4sZdT3GOaDGIk2t/rHyRhCS\r
+B9ASP5UwHkbYWVEIRh8xDcVTt7d5JF8xJEj3YAZ9w/IGrC3GMKtwVDYB/dcH8eakmimhdWhuWizy\r
+FeNSCPxpAE4QTMGBd+DgcN7GiKJJMu0cpLEjcQCQR6/5NVoUeyfFxMZS7FskDfIf/rfkKsTS7bVJ\r
+ZoA0u75lIOFX8jzQMYyKGG0K4bgl2AH6f1pQIwcER7/Tb/WovO8zDLAUQjALkFQfQU5LaWRiBACc\r
+98qPwIzQBMy7e5bnj5ske1RvMNjA/In8TYGWx6en1rRg0tYkJkGSccdcVnataNu/dHCD+GsVXhex\r
+r7GTWhny3JlwFG1B0WqckyrlcjNV5Eu3kKqPkx1zUkunGG3M8snAGR7/AP1quVaCerHGhOWyKUsh\r
+JbgknsPSoUsmuF82ZwkOOFHVj6VFavLqF8DBC0mBgICfm9z6VtPbNbuizFTMfl6fKn0FclfEyk+S\r
+mdFPDKK5pkSIscQjRVhiYZ255f3NZmpS72MMSPk8M+a0pw5cKqs3+2ahSF2nORhRx161hCkovmer\r
+NZTbVlsc/e2+GWIBnLck4yaG05bO0+4BK/8AAeK6WKzLJ5ZfaSOCBniq/wBnSIvHIhkaQ7AW649v\r
+atG9LCSu7mDDpMUCRzRqzqwP4+h5qumniWVHmkVmUFVCHBJB710lxaSQwyWsYEhkTEaMQAnrVe3s\r
+WS3RvJkkdo8FjhQvQn9alTdmxuC2Mr7A8ryqwSJJPlRW6j1/DpUumWUSTGIxsqqflJ/r9T/Or5hS\r
+SV3VjKQ2x1HVVGAf8+1WjazRO4RSVbPzk5yv17HOf0qoydrEyXUybOOezu2SZ1dANxBXJXPQ8inB\r
+ruAvL+7J55WMYVB6ewOPzq7dxrJdRoyfvjGA7Anj0FDWjW2mxgh2Qsc+ipxx7Y21fM0ZcqYyE3N5\r
+Y4Z3Z3zsYklRxjp6dRUsjNFpsRdiQyBQg7MDjcD2+nvTvsxWzidZxb3K5Y5+6eTtGPz/ADqW4jgt\r
+7aK3W44uEEhRl3DP8RHpzjp70+ZsbikiuEknso0sY8kHkfxbgOeP8960ZftMtq0TMIZ7hDKrKMDc\r
+OT+NM0t4ftiW8mwMY9yMpJ3EdM++OAasXt0Lbbf2uJDHIRJGcYQdxjt0qle5LtYqaYb3WdPkgmc7\r
+gPkmK5ZT9eOOtSW+g3FnJjaZpBz5ORhl/Okm1+6uxJFHbiJd2Y/LXYR7nHWrX2C5+xi6e4+1ODvV\r
+Yzwp+vp6iqba6k9BRrUWl35itNOiSEACRSmSeORk+9aUmvRX8Jj02c2koGfLKBMH29acqXmoWCyW\r
+2nW/2nHEmQwP4f8A16w7fSL6wuJJdTskmUtl8ON31GKhuD16l8rLOm+NdRsL1rXUiLhM4YkDevuD\r
+3qPxTql9OiXdu6tag8Oo+ZCf1H4VpN4Y0XVLf7dbTTg4wy7x8pHrkVjQazFpV6dP1K3FxB0YgjKg\r
+9wf6VSabvFaicfMSw1qz1mJrXWky5+7cgfN/wId/r1rN1LwnqEM5azhe5gblGjIOR+ddc+g+HLi2\r
+drINFJjcHViSo9cHgisGx8QXOiXxtZ1LWROFA6D/AGlyTj6Zpc0nfl37DtHrqV9G8MamblHlsgqg\r
+5xKRz+Ga72Im0gVTaxqVH8KHA/GsmXxLHBPEJ4xNYTLnzE6j3H09Kmubq4sYxe2bi80+QZxnOB7H\r
++hrNpy+Iq62iWZtUjnQx3Esyp3EbbSPyrGa28JoSZEkc55/eNk1bCad4jgY2koScDmNvlIrlrrw1\r
+rsd0UjhMqjodwx+tO0Nm7CtLodfpWl+Dr+TEFvvl/wCeMsrKx+gJ5/CovEC6aIorWxa1tJLdshJG\r
+KsB6Bvr3rm4vDOu7N0ttGuOQfNAYGpJL57hBp2vQsxTiO5/5aR+mSPvCnHlT92Q5qXVEN1fTzzIB\r
+qM0c0TEqJCrDJ6kMOT+tbVh4gumjEWoW2/a3/HxDkj/gQAyPyrjL3TL+zkYG2kkhHKzRrlWHY8Ut\r
+jrM1rICshyp43dRW8Z9jCVPuj0kiK5LOkj7H/wCeQ6cfz9yBRDbJDHiGYM2e6ksR9T0/CuZg1mG5\r
+dZN4t7nIG9Put9V7fUY+laUuqX1vt8+0t7iIHLZby2+oPIP41opIycH0NNyrnIBcjg7lXH6nNI8R\r
+BBAUKvLqc8e/tTItQs5x+8usbsZHmgY+vFWVReuZ3UH5XVM4HoTnkfhVENWIo2SR2Hmu2Txzkc01\r
+4UjZiU3Z+6IxuLAVOwJVfLuFJznLqST9DxULeZvIW4fzGHzRyYAX6KBgUwGITjIjeJuu11XHJ7et\r
+QJC8Nx9ot1MMgO2QsARIPTFXTbypGUdQ+MHpj+dR4EjKBNEoT7oJBI/HpSAjaaJcbmiUdTsboT+P\r
+H4mlWVRxFIxx/CF/z/OmtFDE7GdjtkBRmliKjnt0xT4pBGu1C21RkKqZU+wJx3pghNpAKmOMOfnV\r
+ZgWB/IfpzQkaRsN1ou37xMStgfVT/ShPtEirlfJdxnYg4P1PtS/v0I3SRhMcYZj+Q7mgCWSN0PDy\r
+FeybuAPYcVCkSOXVNxkTlkAIOP60OdjKEmcEjIQoRnj1OcdaRohKFLqhIORtYluewNIRI+Io8Krq\r
+xH3nBB/A0nzrGjO4MrAjDngjtzUgjzEWPCjnBPT8aikX5mEU8YbGQE+Yr9R0pjsJIjS/J5ycDlMf\r
+ieneolyeVaNcDoV5/lU6fIxcyK/fjGT70Ebf4gVJyMjmkBBbW7u7hnlbJ3eYT/n0pP3IUBJWKjqQ\r
+P1q0ZVMZXaVJ4I28EVXmQhR5TbY1+8FXp9KAJPszrIHT5T0BIPOfbj9ailu4SSsk7ZQ/L8hA9OmK\r
+IiV+WJ5RuOF3xArn0z/+qpfPvjtjuWjiyecDDY6Z5yB9aAK8kSCEvKQe4UEK34ZotrMosbxJIQxz\r
+ktuAJ+nT8KdEkNs5Mk5Mm7ligYEepJ6/hVpbhInK+QrBvvSRttX8qAIHtL2FgVviAD86OdwH0yKk\r
+FxeuD5TxsmMZCY+bv1NB+yMxYiQnvtlJz+RqGWSXzoxG0kMPYRgPu+pNMQRLqCje1zcSE9W3Aj8B\r
+SPdal5hVVhkA/vRlT9OM/nQXnc4iuJVXq/AXFKDd8hGZgP4t2TQ2Friw27zyl7pFV2HQSZz+YGKf\r
+cWxiceXCMY7AnH4097OSW2E12zbFI+XeA38uKYUjKFYw+0HHzYJx6e9K9x2Iz9pRcvHIyE43bc4/\r
+EUqtEwztYnuWUD+po+bGNzBTgDt+HvUy+SR1bPegBFWM5JGH6gChmwMk7eOjE8VCblQxDJKrDgkE\r
+DHvUzeYCsi7XUkEOG6//AF6AEZUChnfBI6kdf0pq/IR5cieWehCYFOmkbKoY/lz99s8f40k8pKbF\r
++fH3fUflQMfM+zblSxyd2DndSZeQj9223HHJBFVI479H3xySRQnnywQwB78dh+NWY43aMsQXkPLK\r
+3OD7g0AI7vu3EhR0+9inqzLHzLGIyRyTn8iabKqKFZwoHVsdFqxtikjzGyuwGABgmgBjsRJh8467\r
+VHJ/GlhW4Vy0ICRsAcyEsc/nxU0MAjTP7xnPJiyOfwAH50s7skZ3MEUDtJ1J9vWmIhjGSTNtRi27\r
+aDwfz5pAXkyvnxqc9Rw30HNIs6PGTsMoPysdhOPzGTTVz5jusAAB+Uthd35UgGNdXVsyjzI3jbqS\r
+Pu/jSSXqO6faQ6xtja8Tbkz78VJJvOFKnco56MD9cioZF3bUYuqkjcN+0fkMUXCxbjhtJZQIbuNp\r
+B/CsgJ/KpRYKJQ0jjczZG7qT7dzWc8lwsilbhCR9xmhVn/PFK897LiK6JlRz92RApU9unanoFma0\r
+sKqo8wnA9uazJpjM4TaSgP3R3piDU7dRFBcQmHPAdd+32BP6VNLFetGuZSrE/MoAX8eKTArzumxf\r
+OKwiMYy/Qf8AAhVe+12LQbaGWIwPNM4iWRDlUTgs3uau/aJI8whYpoTkMHG3P0x/WsHxPo76xpqR\r
+QMsdzG37tSRtfPGN3r0696TSe5UXZnZ6ZM8lh58zbmmO5BnOF7H8aiulaYFVTAPc8Vg6Nf6pFpcU\r
+E9mYnhQRHJB6DHGPpVkPe6jIIhcLHk9B1968+tCcptpHfRnCMVdjpWs7AFppFd/7o6VQmsL/AF2R\r
+TNm0sfVl+dx14X/GugsrCxtJRIsO+fPEsp3N+GelFzcTojREqZCSwwPug9M1jGnd3Z0Sq2VkZaQR\r
+6fZCPTofs6hgXZvmdh/9eqFyFNw87Sg7VwT6etXZQ32do1Y7s/M/vWY9uTCYY/ljxyx71uktkYN6\r
+lW2BuA6pvfPc+9Xnh+yBXI3EjBHvnoP0q7pyIiLHGvygctipJLeS7QbVHySZOeOBxVbuxPQbFbLJ\r
+ErljEo6+/wDnmq5s0R2lmUAFQFY9ea1ryGI2SKBhVbGeny96Yy+ZZs0ykqTnGOg6Vny6FqWpjm1M\r
+kqmd1ZQ43NjoKLy3a5t3jV9qHHzDsO9WrNMzTBQfLI/i/iPH+FI00bkwsu1Av6Ec0+S0tAU7rUpL\r
+bIttujwjOSu739f0p+mFzD5Mkf3VyHPOT3BpJI1ihj2N+6jfkkEnGcHNTWko+0G3LgKyklh6+1KU\r
+dHYIys1cx70JY3xBKGNiflBwwOOK0Z7UppbvbrI8RGSOCVyoOf8APWmXWnrKVlAjlcJgkn72Mgj9\r
+alshPb2txl3eB0HlxOfQEbc/jVqzSId02MspI7212GBiit5Z+XoOoyPY/wAqzZLWOHUCYI1cEnCO\r
+Scfh2q/pSTW8RPmtDOBhj97f6ED1HQiqD6xNBqQuDKskY4cMowQPwzmr5bPQm4w211Lqge3hHykY\r
+WPO78TVyHR4fPe3uGeN5wxAZgze/HU1l6zrV/JfGCBUijkXcnlYJIPTkfSrNlY6nqE8N3ceaHjUK\r
+H6Mee/8AjVWa3ZC12NJIZdMRWt8XcQHzKGIBBHTFV7O7ijZ5jMIZR96ExkLj2xU1xqceh3VtGIA0\r
+RBWRCck+hDf0qxqEVpqFmJrKaOPf8rFl+YA9RSeg15mHa+JprHUd9kvlwfxxM2VY55PtXSnxBZa7\r
+GYPuSlM7M4JB9DWRH4b2WzyGeGePb93b1+lc9ZWcS6j5Ny7Q4+62Mj8f/rUnJS1sO3ma9lqZ8O6m\r
+0GXe0kOGVzytS6pYfb8XMFokiScpLBKR1PcEf1qprreRbrC0Rdj8v2gYPB7UzQLy5jjMUT7h3UH8\r
+mx/UUOWnMhpXepM9trel2sdzGrgRtlCh3Mg7gj0qaW3g8S2BuLaJI79RlowcbvceoP51iSeJdS+0\r
+SIZSAGwUIxjHaiK7ujKtzbIwZcs4Rdwx34pe8t2h6PZG/pmmwzWf2K9untJ/vKhweenT+eKYkuqe\r
+FLr+C4s5TggH5JPb2aqpm/4SPSG5A1G0OVYH7w7H6H+dY0PiK8hjktLwGeI8MknUYoSlff5DvHqj\r
+odVhQqmtaTI8KkbmToyHvWtofjH7eFtbwrFeYwj/AMMn+BrI8O61Y2xeN53CyYxHKcqfwPf3qPX7\r
+XRZv39rLHazE5wh+Un6dvqKTab5ZILdUzZ1fxXdaW5Sa1YqeAwbg1x82vXN5eCTaGy3CYzn2rWsN\r
+Qj1C1Sw1dPNLYCS9z6Zx/MfjW5a+H9Kt2DpaDeDkMwPBqOaEOhVpS6jrfxHaabbR213F9lcjOxjk\r
+D/61SG50HU3DNDbTyH0ALH8qjvtEttUuY3u97JGCFRTj9akiXS9FVvJSGAnqFxvP9ayvB/CtTRRl\r
+1Zp2mn6Fp7pIbCKN2BwSpJAqzd6rCsLJpkUUM7k5uZoTK4/3R91f1rlD4ljubrEiiJeiZOQR7+la\r
+KXityABXXTTgtdzkqPmZV/su5kEgmeC5Vzkl1YHPqOCQaLWO60+ZcgzwrxsVmDKPpkZHtWit8Me9\r
+Ne7HU8+x6VqpMzaTLtte2t0TFDcI2zqr7sqPfJ4qQXMrS+TFHC6qcCUHIJ9APbp1rAuXgeQSBFWQ\r
+ZAYdRmmWus3FksgubpZ41XCB4dz/AEyPvfj+daKaZm6b6HQSRG4UIJIkmiP38Esv1zkfrUEikuUm\r
+lMxQElVX5T9cYz9KSK9S6h3pOBLjCwuWU/8AfJA4+mallIkVgRiQjDk/LuH0A6fhVehFrFdbaKQb\r
+lEhRuc+XsXn2NWXVGhCTyKyL8gViCPw6c0yKOSHaqKjx9SjMDn6en4UbtkYMjYkYZ2oOBz055OPW\r
+gCRZoBbsm0lQfnKDA/MUxpY4izJBJt6Blc5J9MdaFkj/AIjNt7oGGKJhKqq8HlISpJ3gkj0p3EIj\r
+TTbmkCrt+7GpOMfj0NIZI3Lj7wBxhh0NMc3LRhZrgSc8hBtX/wCvTgTHggFPUNyT+dIEEfkhmMhO\r
+/wDhCkj+lKAghkCQiNnOd24H8aSV5kYsUWOPoSBwR6n1NNhV5juU7h6oKLjHRQLCAWz6ks2Wb8am\r
+3xt93OQOwyKZ5MZUcSZJyQB0pheWMlEQlW5APf8AKkwLQAC8LjPX2qvNkD92hPHytikjSRznoDwQ\r
+RmpFCqpLS8DoAQMmmBWQmP78TbuvGQP/AK9WEmcoF2RAZz8/XHqKaLlWIEQ3ZJHXAX296ZJMVBXz\r
+ScE5AQDNADTEskoLyRMPRecUrQxso23DbT6DI/So2upHykh3x/3Tzj8RikWVpWKhpFjXsnA/+vQM\r
+tLHCj+TJ5Y43cnv2460STxqWSGJiR1YFcD8z1/CqrlUXlRt7hl5Poc04NbB2LyeW+AeOTn8jQIe7\r
++cm1+E6ksc/z/oKVwjqBGche55FMZoA2UYP3BK8n602JI3GXKkhu5NAXHCaeOEwm5kEQPMQbIJp6\r
+PtOQjgjjBGBUTAM5CF1IPGORQv7xgCZGYf3Wyv60wHTzJJMFIYOBg5GB/wDXpvmMvHkB/wDa25zU\r
+8bfON23b/trk/mKSWWDfw0n0RSQPyoEWntEdASAD60CJIZGYqo3Dl8c0wCXllxweAQG49jxQbmIY\r
+icZPq4wKBibkRwJDEIl6ZyMfgadEsJfzIirBuOmAfpmo2e2kABMZYdtwNMKRE/LC3BzlASfzz/Kk\r
+MshRFNtEB3H+7xgf41CkSK+VaVWXO07cH+fNSjgb0Zyo4Cb85/OkiA3MTFnPynGRkH0xTENWE5DN\r
+EeBy7cZ/Ad6a0LKSwdzkcbM/1qaWWPu7rs4z1B9vUVBJdxTjKbSAMAlSP60gBioiYO2WYjPXj8aF\r
+8mIhY1QMOwXB/Wkw5OEdc9hjr+dEpKgKhJ3HBBAwfXFAydJgkZWaU/NyAVI4+tMfyyAqSYHtzkUq\r
+KjRKpDKsfy4I4/CqzoxJUTLt6hUGM+55yTQKxKywqvKrsAz83JqBpyFPloCB0AOKeUcxHduJx1Y/\r
+lmnRRkwqpiYZ6lXxg+xxSGELOF3MgLfU1PbktdRyyLlRnKF9qn6+1SQPbquAxfHUsCefSqzoryEs\r
+6mEc4VsH1+tMRc26eLnZfCVIWJysYyOv3Rzx9eahvpoJrl3tYktosYRN5J+pJ7n2qjdTrc3Be3Lr\r
+G5OI2JfJ7knv9eKij8wN8xEiHjavT680X0GXlDFPkWbcw7N8oP4ii2t5vMZspIYzySuM/THOfwqO\r
+32/IYXMCOeN20gH88j8qsSTCCExgneXGTtOWPrkGgQ6VIppk2vIpwfusy/0waZaJcpI3n+UcZAdU\r
+25HqearHUpLN4zcrFLA/BdOGU+/ar5dZ8bSPJK53Adc//qrKu7Q0NaKvMBcEgNGMu4O0N2HvTHCW\r
+1t9olyzOSFGeSR1NRySkjbGMvICVHoOx+lWPKc2NqJgZJI+revPJrkgtDrk3cyrtZEhVHO1nxu9q\r
+b5KqEgVSVbgkjrVi623Fw0j5wxBA9PSpnR/OiGNq85P+fwq2ib9xPJEH3vuE9u1WEBSFmGNzN0pz\r
+R7VRTyPf1AyKRVEUgctndjA7ZPNTa6KGkpcoscgK5IyB29qZKyr+5PA6AD9KkmTcpmiYBiMY9fSo\r
+PtKMYhsYOqg7j245/WiwXsVAsiRM8ZBEgVt3pxk1BckeT5lyoBTG9gOozz/PNWxAPtDqG/dBugP4\r
+4rO1XdAWRstEeQ2eh54/I01ZysPVK5dazP2ZWhIYLlgp/iB7VhT3IWVuWiIYAIB93PvWtZ35luo7\r
+aNT5LRghvQgVlau8guVE6OmOQyjhj/hSjdSswlZxuiwdpsrdjLjymDHj1PWrF2ly+nFk2SKT6Yx6\r
+8jrVFr+CXczq4jOAj7fXgg598Vp2t/NGIwlsksYXB2nnPrTs0TozFtr77VADcmRGhJKuo+QHpk+h\r
+qtKLafaI4vtMgYKzLgA+4rW1DQLu+vJZRKEtXbO0joPTAq0lhqFlpkk1tZRfZ4+Q/Bcj1wKpyQlF\r
+ooR6fP8AJJJobGGPH70p0HrXZm40O90+MzL+7KgeYpIx9SOn41gaL4nuJwYbiQCXqhPRh6fWtCBr\r
+HWknS2CQXgyJoc4yfX8fWpatqxbsq614bWayP9nzFlAyu45/WuF1ayv7GPzGmZBkMyq3Q9M1vQ32\r
+qeFr37PeRyG0PG08491P9K272G01W1EsLoRIuV4yKLuDutUVa+jOC0/Wb1H2ifdxypPBpb660mf9\r
+7u2z4O4KeQf61PeeHJzIxUxRhSflXjNY50O6Rt0nlhScZLU1OD1uLlktEjoLPUbPUrFoLhSjqnIB\r
+6j2rHFzBpOoQz2UxnOfmU9lPUH3psmgyKgaO7VGPHPT6ZqsNDuYnJ8xWZSCQB2PelFw1swlzm1f3\r
+1nHex3LQq0FwM7tvIb39qS18afZ5Sj20ZCnCvFwQP68VJEsAiWMoWTGTgZA9eKrto+k3W5kdkK8/\r
+KMfhUJR2lEptvWLK1vqsI137dbR+TGx+eMdCD97/AB+tdNNYafqAErLG2eVfrWFHpmmQLvjllPOM\r
+ntViPU4oy3mWkcjYyWQmNiPXI/rVShzWcdAVRx0ZPf8Ah2Ke38u08uI9ty5xWSvhDVNw2GJvUBuR\r
+Wv8AbrcAvHe6jGAu7aWVx06Amnz3nkWaXVtc3F2HG1/Nk/1RPqox+fSiMai0uS5QfQjTw6ulwedc\r
+zu0gGUjHGTVRNVu2zG93OD2IfrSsqlMAkOwDZbkn8aqPG0iHH+sHYfxf/Xq1otdSG+xqWt8MuZZp\r
+XIXgMTTXkikUnK89D0rLDyqiyKMlhyOhFKj+c2CpVs9v8Kq2l0LW+pZe0Mg+U7ua1dHIiQwXiz5H\r
+3GUZBHoc1JouiXl/OqIMjPJIxXS+J7a20WytrcENcyHJweAo/wDr0R5gdtupSjjsSf8AXEf7ymrQ\r
+tIZRiOaD9P61z6XqkZJx61ZjvEJ6g/UUKQWNh9JuSp8uX5cfwgf0FU5NInVwZbWOdBwV8sAn8QOt\r
+MS82nKMVOf4TitC31e4A2tL5inqsgz+vWmmIx7mNjbT2scs7s4AWMxAhB3wRwD71ZS11OztVksL7\r
+5VGXhvG8xQe4J6ge4Naktza3KFbmABW4OwZH5darJp6WaGXS1huEHP2eZjtz7HqD9QRS99O8WWnF\r
+q0kZk3iKXSRG2r2BtY5AQs8CrcQsPZlOR681p2Or22oxCWz1CCfttAXK/wDAapW0Wn+Ion0q5spL\r
+CeL5xGXG9f8AaXAwy/mK4HxPoA8O3cZi1BTuJw0S8rjuR1H5mtYVbvlktTKpSS1ieo77jzfLSSMh\r
+VLHMfbuc4xUqzxupkFxDkjAywI6eleUad481PT3WGd4NQiBBG8HP9D+ea7LTvHGjakVjmVbZ2A3L\r
+KQP14z+VbW7GDR0NsS37wuJU9UTv+VSNcqHQEu4ILBnTA/PtTWlhnPm8qjDKtvBXHscfypr/AL4u\r
+3zupxhEI4x3IPXJ/CkA6KSCSZl8sCQAOxLAkfnzUxbYxaMqMnhmUnP4g1TaSJmiM0ByhLR8jPPfr\r
+Un2rKszlRHnkCJlI/XmgCw6SZ3rku3UKD0+p6VCBIykB42C9VGcCo5bnvEMsScl16+/t+NSxyqqA\r
+TXEahlwDwDn6jigCI27AE+aoHqG6D6UhiQHEzuxOCpA9fc8VY2W5j3xskjdNwcZx36YprwoiEmQI\r
+GPGW5/A5oAQ2yFiu50/3mXB/AU1mlglCPIXTqJDyWFElrH5pD7pDIAcEDDD34/U07ymVztiGTgAL\r
+JgZH4cUWAjeTJYGGIYPDYPIp0SsT8qgsRxh8D/61PuC8JLBzIpPRhuAFMzCAXWQo3owoF0IpYZi4\r
+ZoSQOu9uPwNQL5bL8kT7842kd/rV5HDoVTG0nqO9EkJyAjDPXknj9KBlVIzEXCunmYwQYydvOeD2\r
+NRlSxbZIOcksuT+XFXgrbiwkzjnlf8aYJZWRQXUIOo8sAfhijQCtG6IoBmEh/ugHP9KeML+8jQ7s\r
+52MwP5nFOLCOXaUBLf3UGB+NIuQflx14GMimIsQQ2Ulu88l9JFclv9THHk4/w96ja5dDtikwg7sc\r
+E+5phGHJVTn1ppjkJypGPcUXHYsKXTedqwOT8xYgke4Aprr5iAE+bEeNxQkk1LuG5iGaVsbcsoIH\r
+5Cnq79EYBAM/KvXP1pAQ7ljYFzGDx8iDGfc04xl13whYzntx/KntDlhnJz0JQHNIsUgYlJ2B7oDg\r
+fWgCJIXQgkfO3U9AR706N1JKeTIRjOIzwPw4p4QqwPnlm7BWx+lOEyIAZFCseG7Y9jQBE+chPKCp\r
+64J/z+FRRwGRBIVx1yACKsS3CPtKiQ46OAdoNQNjKtMzFG43FuQfX6UNDCZCAoaLjIwJHABP1qxK\r
+ZOXkVSBz8oHH45pht3bcIt0pAHygbuDT3g+x26GSHcXJzyCUx6ihdgIEYGTbuBUNnkEbT79asttX\r
+J6OeyHj61SkRDMrCY4x0U5A/CpYYFikDqo2kHO4YzQBYkZ9q7wWBznC9ajRf3hEW5M9Xyf5GmMyq\r
+5z3GSR0BpV2/Z/K2OBnJIGaAJAhwCWaRlOdzE/0qu8MrMWYkSA/KRg4HuSOalRAueGYnqvXP0pJ4\r
+5E38bxjkdFx9aAIFt3ihO9T5ROcZyAT34qBn2s0cecg8MV7VoW+508iUtlST8pXBHseCPpVZ4po0\r
+LDMo3Y3dCPwpMCNQ8pGWA9FHaobp51dQC+5eVAOCD7VehdVO7q3b5SAKdMI5dxGDxk46j65oAzEZ\r
+fkjbJwN4DLnB/rXQQYSyiV1A2oHPb3/rVF7NYk8xCTt+Zi393HNWpHLW7En7ykLj+7j/APVWFfZG\r
+1DcjtJHm1dn4EOMKD1245/pU9zOz3skEAKxRqpZu2T2H4Y/OqdvctHJqI8sAwwxKp/3ic/oBVvUi\r
+DY2RQld4Esp6cKM4/P8AlWaTsbN+9YqInlQyK3JUgLn8f8DVuFN0Qkl4KnJHoc5qpcsBukAOFbaT\r
+2PP/ANc1PLN5cEkkhHLVLGOSRrgvgkKDwaWOdHAVcEDv6UyFtnUgBgM/XiolDMoEY2gnnH0paMeq\r
+HSIIpWZnxHG2fxJ/+vUl3GJEMSkCQjrVXVEjltvLLMMzKxwcZzVfTo7lgZpiQVXbg07Jq9wu07AI\r
+rmE4Zl25Az9SP8aZq7zCBoBArOWGC3SpLyaa58uONcZZS34HpTb2eSXamArr94+tFndNjvpZFGOb\r
+yXtkEYViyo3bb9KuajbzXMJRV3YwQPWq96HgkgeYBow4YEjpj/J/Kuhiuo5IRG6KVPQ45B+tZzur\r
+NFwtqmcgEnQ/ZpIlEWck88f40+PUxb3MUQh2yM2DMeF2d8Y/rRrt9caXqML7A9sWGWHb1H5VBrCw\r
+y2xuYnB2kPt3cEf41pHo2tzKS1san22YXU9tHcyZf5o9w6HvjI6Vn6ZrE667cWt2zKjuVI/uN06e\r
+lNUHVEtZdPeUPD93cnT2Jplx4YvnuZbsygSyHdhcnB+veqXLazFZ7mx/ZUdjcs5iSSFznaBnr6Vz\r
+995dlqP27S7srIjZKNkEe3uKnt9Q1mzfybuF7m3HGUHIqS60y1uwLqGWVCR8y7Rx9VqNYvc0vc6G\r
+21i217TCkyq0gHzo3UH2rmDHc2fn28IIRuVXPKnPBGKg0/8A4l+oqVnRy3Hy9COvIq5rIeKZL6OJ\r
+JYjwytDtIz/tLjn3oSSemgavfUZb6bd640kkN55NyQBJC54YDjcvv6ij/hHr2GQCWV5mXlo0XkVu\r
+eGJ9OunDxh4Lgfws2efx6iuivbi6gO+ALKf7u3rS5nezE0uhyMWmXtxGI7WweHGd2Rwfzp7+HNWl\r
+QiZECDoN2M/gBVm48c6pZS7LjT4lXOBhxn8qkHjK5nIDWvkg9HJDKfr6VVp9LCsuqMN/DuoQszBB\r
+g8bRWVe2b2X3mw+e9d2NWnaHzJI4z3+U5B+lVJ9S0+WVUuoUViPvmPcB9aFzE2T2OQZle4Vgqrhc\r
+OuOOnWqYtQsrtJIFXp8vORXeQ6Fpd64lgnj5zzHgk1XvPBccqf6NcFSOQWIx+lPnS0YKDOOuLpT5\r
+UQs441JGSq/6wdOtNitVikdgWaIrhlJ+YDPT3rqE8LfKltJfW5ZP4QMnP55qrq2kTaXbpJ5iyAnn\r
+GFA/M0Ka2QnFowruRicqoK9sDio08y6liaNP3qnLY7gc5qe2U3DsrMqqT144rs/C/hgalPsiZhb8\r
+b9wxv9fwrWMbkN23Oa0fR7rWtQSCOFlUHB44Ar1B/COhWGliS/t4sRLueYnaVx3zW5cSaT4S0eS8\r
+uzHbwwL8zAct6AepPpXg3jL4l6p4nSS2hjW2sNxxChyzjPG89z9K6YUdLvYxdRv4Tp7v4g2+nXDR\r
+6ParJFjAknBB/Idq5G/1y51S9a6upC0rdewHsB2FcxDqe/CXOSegcfe/H1q4PmXdGwZfVaxm3ay2\r
+Lha9+prretj2qxHenPX9awFmwMVKsxHfmseU2udIL8jGTmp4dRIbrXMrcnOc8VLHcnmpSYaM7FNQ\r
+3L1qeK+wQQefY1ycV0wAGavQ3DMuB17VSkJo3Lu5ScIZAd8Z3RyKcOh9QR0NRTanbziI6jarcKDx\r
+MUwwYd8f4f8A1qbZWE162GTYyjcytwFH95j2Ht1NZF/Bf3t2ciOJI8iNC4XC59Cc8+9Wo82+xPM4\r
+7EXiQabdWhFlZx+avOfLAx/jXF27fZpjHc26SxE8o4/keorvrLRLu6cALvQEbm3YUf8AAjx+Wal/\r
+4QWweRpb6+A3Sfcgxt55xuNXCPLojOcnJ3bMHSrWaGVJdK1Gezjc52lt0efccjH1BrtI9Z1PTmA1\r
+qyYRYwbqyG5R7lMnj/dP4U618IaXZpmBboEnILTZ6+gAxW2iJDDFG0roirgLnbux+ea0TfUi6M6K\r
+5W5xNDdxzQt8yOv3T759R0q3FJJuVmIk3c5U9fyqNdPgheV4xI7SEMxAzz/n1FN8i4J+WJiPVqBF\r
+4xnJ8xECHr83Q1FlXDowaYcdtufyqhOzrMiNOFYkAIhHB96dKsjMVZpDjrsYkfoeKYFhrdI0AWHb\r
+8oGNw/njmmxiOKQnfLHxxtORn1IIrO862+bDy47kjOPzpi3CI+Y7npxhwe/SlcEjYW9icGKbEhH8\r
+aocn6jtUi3EUw8tFmGCQBsYc/U9KprFMFJYAlsZ9/wAqnEbglwqgkYwSf8eKaEWDiIBXJ9DvkySa\r
+Y1vG/CwqWxuO1sf0xUELXkYIllRh0/ekAD8sGrBebaG8wHHXZgfnTArm3SORSQ8bHoP/AK4qy0Mu\r
+wZydvPzc/rTJDcqM+c/zDIxGpqGO1coXaSRpGJJ8zg/hSAsQ6hHHaTQCKF2c537jv+memKrtKAWV\r
+cEHnA7UrWzeXlOD3BHJ/WiO2ZQu0Yx0zwf1oBCsJTAjRxlW5DEnIPOQfaguY48uH8wdAOMVI8hwA\r
+wZ8fgDUBjkZv9Yy5/hAzn2oAEuyBt8ornryDQ0QJ3Mv3uRuWiMSRg/Ic9AaSQzs2WkcH0XGBTAtG\r
+YKoBQhc8njp+NPEuAGVJWBHGVwKlAWRjGUbJX+IEZ+nFNlixGUjiCA9sAlvyP86AGvcGPcWLA4GF\r
+4OajE8jkyGM7hwfn4FRjMTMuVbnn1HuTUizIx+YoMdMnr9KAHCTzEbDorE4PPBH0ppRiobehCjG5\r
+Tj9DVc+W5dkBBz/FjOanE20lZWjYEcKFOf8AAUgGOXKD51L5746dqaq3MqY3dR0yOfpUksaYXLN0\r
+ydv+FRRt5oxDEzDOWL9f0oGOjIgGEQ574OTmpDJOyhkB4GcEZBqM3ES/6wYBPK5IJ/8ArVPFPHLL\r
+5i/IgHIBzQBUhhJPm+RhgeQucZq2FjK5ZORwBn8uKtNKu3CDk9z2qO1EYnYAqGbnA6kUWBshWCUS\r
+LkbVI5xg4pxt4pGZXlcsR0J/lz1q7K0UbBG2nPOT0/GqM0SJHmOY3Dt99HXbt+h70WC4yVcAKjsd\r
+vA3c/nUZZIVBCgMDzt54/HNTqyopEbgbhz3qC5MYK4+fedo2gAg+/tU6gSK0sx+aVdnbauOe1Amd\r
+WBAdz3B6Cq1nmF5Gk2xbTgAN19/erQltmTJcgtxkbhmmmA8u5LkRPg9MN0qCaZIXXcm2IgK4JLt0\r
+69vyqdH2EbZlI6byvGO2eajdJS2/7QmzHOVAIP1oAcEV7d7PJDqMqAxO4ds+3tRfPJbaXLOqAeXE\r
+Qq+vHX9CKhLIJBI0zk/dKuBuP44/rViaVZLZgUcIgO4MuO2f8aiqro0pO0hGdLeHU7hlLxlUYcck\r
+Bcj/AD71VMxudChdgQZAQwI+7zjFX1XfYTgLlVdA/H+fWs+ZC8ctspAXflCPSudvQ6ESXDgQiBQP\r
+mYj8OaVmHk7ZRnnP49KjL7Ytzr8/B+p9fzzTmUzThudowRj8DUFDmRmweQoGP1p8LkXUiL90KAT7\r
+j/8AX+lHnjzVhwd5ycdsZ/8Ar0yW6WGVgEO48H3PShDvcaUW4mlDniOT+lNuJJlbao+U8g5ptsp3\r
+zPuwGzke/vVe8klAIjXcoA5xTW9gtoT+bI6KAvzE43AdR6U2/wDPEGIVViejHt7VF9vaDDOh2Pxw\r
+OVPb8D/Og3/7tBhiWPTH6UWa1QrrZlLUpZLyzSF12FCp545FTxXZ+x8N8ytg/wBKtXdpFcoFJw3U\r
+H0rKW2msrho2cPGQe3SlzJqw7Nak2oRx3bSK6swYA4xwT7UkOlpLpjWysWUj5ecFT2qGG5LXioDu\r
+typBbqc9qqf2tcWGrlTMotQR98bsevI5H60+V9Bc3cbZCPQbjNzK6HPzfLgfWumu725ltRPZukik\r
+ZAPGRWF4juoNTsMkxnHKsELEfQ5/nVPwzqqwzrYTPiOT7uedpp8rav1C66bGjYeIYZpjFeRiCQf3\r
++hro0h0+6tj5vl7W64rmfEXh95ws8Uq4xzkc1l2ljqcNpi3mYo2Rszkf/WqWoS1vYa5lsb2peG7I\r
+o1xbOyuOQ6NnH4ZqGPXJFtRDeQs5j+UupyCPWsH7Hq9vJmOJtp6gMOa29L1C2uVNneAQ3IOMEYz6\r
+UuWy01Ku+uhganJbpKLiyYBc8gHH/wCquksPFRGlGRp3Yx/KfNxn2BPT8ayNc0eCzD3KSkqD8ynm\r
+sSGNHnjQTeXFKQHySF/GrVmtSJXb0Nu48SC+Z2mis2jB4yh3n6EcfrVd9Quo0LRs6Rnoqyggfhmu\r
+lsodMtIlWK5twcdM4B/OriWysxdYIip6FV6/iKlyXRD1OIgvJpgzLHM0in70QI/PFSm7uftQlSG5\r
+3EAsMH5vrXZ/2aXYpHEkaEc4PB/Cp1sYVj8ueOMoCD8rHt+VDnfYdjirSwvbi+d7W2kjG7Psvtmt\r
+CXw1q6hiLtgo5++wro7zxRZ2A8pImKoOwwPpWM/iqLUZ0hWGZi7AKmMD6n1qv3rFeBn3um3kFojz\r
+XEc2B/dAcH2PWo7IXc+nTSoyo1sc4AySK19bs47a2ExXMzjqWAAx0A4JNZqRSWOjStcKyyXDBigP\r
+IX0NUm7akaX0Lun6/Y3tgft+n75IiBK0MYU7ezcYr07wzq+jTabH9inQADpggg+h96848K6Uh0+5\r
+urhABKNoD8cetYkFydJv5oIZ5djnAeJtopxmk3yoJ0+ZasvfFbxDP4g1+LRrXetpaZ+Yg7XkPVvo\r
+Bx+dcoNItzCsckKuQMeYODXTHXJ5IGTU7AX1vGxUzEFXA9c+tWLLQbTWAZtN1FYxnHk3Awy/XB6e\r
+9ehQxNK37wydFrRHCz+HkIzFMwPo4z+o5qk2lahaEsgJx3Q5r0y68GarbruQwzeoRsH9awr3T7+z\r
+OZoJYx/tLxWtsNV+GRLpyW6OMN2ysVmiKt6jirCTQt92QD/eGKm1S4Q4XyUZyeprf0z4e3N14Y/4\r
+SC4uoYLVwwijAJkdwcAAdMHnnPauSrRUXoJSZzyBSMiWP/vqrUEYP/LRT+NTx+GLhm+QMOe+D/Kt\r
+ay0C0g+a5vHLD+CGPcfzziuey6F81iG1sRKyhA7tjkAV19loC2diL+/dbWDHys2Nzey5qOyvINNg\r
+32dgisOl1fMG2n2UfL+prKv74XFybu7ma6kY48+5yF+ir1P0AAq1BLVilJvYt3eopcI0VqjraKck\r
+bykefV26ufYYHpRpsdo94sdy6qrAsqbSitj0H9TyaWytBc+XLLIZMHKllAVf91eg/nU2tWkSwJNE\r
+wWRDlWz37dOah1UnZFKnobBW2ztQyYUf3RgA04WwBGJTtzyQpPv2yK5yw8U2zKtldQOJW+Ubcqc/\r
+3W54P4EGtlr10iBfTb1IjyJIl3qQPdT/ADGa2TRjySJvNDOHATaOkhDEj9AKsRb3w4bc2OOBtx6D\r
+rWXbatbTMIxdwtjgpcZ3A/jV54kdAy28bgnIOefwPf8AOqJasWjdZLJNFhegyRz9feqtzbRCIkmQ\r
+D1XO0Anvg5/Kms8fyohVCD0aMjB/l/OntF5JDfaJefXnOfUUCIoLKOGISCOCUE4JK8/macLIuzup\r
+UF+uQMY7AYpZJJDiOKWB2AJwFGAfTBpwt5pFTdMynqUAG1ffgUWGyAQmOU7mTj5W+baPoelKjRxv\r
+IscckjDl2ij4P41KrXitsmVZgGOGEWCR2PWpEUxPmNVUYyQw+bk89aLCuMS7ihAkMNxkjG8xj+dI\r
+93bTDlFBz1Zhz+tSoJHjcPEGGeTjGR7ioY9MCOxI/ctzgvnH6UwEc27Ebv3YPTJ3A/iKeJsARxiE\r
+sem1gSfw6037FCV8u2C5J3MwIJP4EmgWs0O3gNjOSx4/xoAXbuOTLyo5AycH0z0qJ2haUf6Whkz8\r
+oZeT/WnjeUBSIv8A3ShBC+owelTKkkihmGQc5LKD06UAQwlZHz5yOSfuIwx+tTEGAGVzuUnkhc81\r
+WktDMBG4ULnKBTjPrnHUUvkT2nzhoUjPBHzfpmgCdismG27fTgHP4U2RA2QHyB0OKrrfCVm3ptVT\r
+jg4H16ZqSJwJW3lVB6ndkmjQAOTF8m1ivfPSnpE4XGzP0NPlVWRSmA2DgYz/ACqNbV8cySD6JQBN\r
+HdhceYOh4wOlMN3K4PyFc8HLEkUz7O0JZvnx03MduTU8W9nOcA9jn73/ANegQ6AqAf3fPoowKJLS\r
+NmL8gBewzinMsBcliA3QlyRilE6+YAkithex60DKhtkgPzMWHsMU+GWFXLR/O3TG3pUzQmc70kyO\r
+mc/4GmR27QHbzISMDJxSsO5GkiSqfOYISMYDEHPbtQ0UypkyeZGOjDr/AC5qVITu+Yc9PvHBP0pX\r
+lkywQEbfUZz9KSArsIZyqnduPfFWooSysoiVl6YFKkRuE48wAYyRlfwx6U3Z5MvyyFGwQ3Uj6cdK\r
+YhzWZKEbTgjBySCPpUC2jRqu08L36n9etTwvNcSAIyKXYLljkAe5NTyusUTI0qyupxtIyD9MCgCk\r
+88wbA2Hs2SDTvOjUDcfn6cA4NVQl0zM6+XFGRwnC4P8AWrMAKqOWll9W60ASSSruQFF3duP0phia\r
+TGQWRTxkZwae8UgZZihyRjaD37Z7U6GFyjhyT/eBbp+IoApPb7nygK85O1ajS3eRiFJCnBx9D2Pa\r
+tHzIwSpy3OSBkc1MqReWW28dwef5danlHcoCNxLuOAc54AwDT03quxpFd2GSScH+VPkcCQxxqST0\r
+6gCmoCpLuwJz129eaYEfll5f3iIW7cZP+FSQkxsYwxcOPusQPcgAe2aUyLLGxQYwfugfNj3Hao38\r
+4Oh3H5PRcZFJq6BMtW5Mf2jyWzHvKkN6dv0/lWOZZkLvtyOqgduc4rTkjkME7wDLbfMVT/Fjn+Wa\r
+z9skTOcb4pAHX2xXPLQ6Yu5V8+WTTRMyZKLkj6dv1q9HcBYEliH+sAYfTFNXymtfKAIMoOD2zUMN\r
+oyT+WDtxnGfrUMssyOBEXVvnB4I6g9aicrcXkkhXG7DY9KBG0E8rYLgKMrn8j+jCo55AsqmEbuOv\r
+qKXKUnqLMsn2z92cI64YVWvbtbaMxsSN2AG7A+/4fyp32oh9zenzUfu7mGQtgqwI+opeYCieJYhG\r
++AzdM/3h2/P+dJLGfkKqSQQ2PUH/APXVYRxzKhlB/dEHjqcDH8uPwp1tqMTsyI4Pl+ncf5x+dPpd\r
+BfuVre51AXuZQqqBtyRkE9qnSQ3V00k0YWMptZM9PWpLq6V90fQ7cg0y1d5bNiyfMMjPc+9J3e6D\r
+RbAwtbIIE4Q8AE5/I1BqdvZSWhlDqsjHgHox9OeKrQIZLJ4HfcwJAV+pB/qKnglSDTylyNzxjnIG\r
+HH+NHLZ6BfQpWklpYQFLiJSrc4255qheS2c9wjWsQQochlBANdnZz2stkssIVkIyAV/oe9QPK0oH\r
+kWyuD1DKMUKT3sN2Zm/bZ7rTjEoLMF4DDdg0/RkuGsjLOwiXqHJ4/HtVq5/0KDz/ACwij7w7D6Go\r
+NN1lFuC8Kgxty+OOfcU3drREqyKd/wCJ0smaFvJukORmNsEe/pXNvdpqN/vOVzgAt1/MdTXd6jp+\r
+m6mm+S2hyecoNrVzkui6ZYzLIGdQDkEPwKcZRtsFmne50Ftp1pqmnx/acSOowGIyf/r1FL4XtioE\r
+cJRR3RjzWVfale2JjuYnUxZ+4UKn8+hrStfEqXkG6NY/OA5R8q34EVnyvdMvm6NDE0AxXCF5VMXu\r
+MGumgktIIgiupUcYUj+lcp/wkEGoFreRjaT9NsgyD/L+lZl0L23DiaGF4T0miGDj2/8A10OH8zBT\r
+b2R6N9qt9nysij3NRmFZxkOpB9OleWLfXsV55bSyMnRWcDcvuCc1bfUNQR1RppwgHyOjgMfxHBp+\r
+ytsxc7e6O6vPD9pK4eViTjpmsqZtI0O5WYY85QVWIcn6n0rlxrN2pKme8cd2MoBx+tWtH0KTV7sz\r
+yrIlrnPzNkt7Zq+RLVsSk3pY6jTBHrdyL10Z3QfLu+6v+7WmNA+13AkumDIpyseOPqfWs2TUbXQ/\r
+3NnaSuU5dRjIwPrn88VCvjy0lTIWWOT+6cVLhUbuhqUUbuoaaJFWGOZU2jgnoD24qna+DrZ7xJ7l\r
+2ljTs3Rj71zlzfHXEaaEzLNHyFLdavaNrt/abbechlJwpkb5hRytK1wT6nXXNhZTw+RhVjHZVGKx\r
+W0bTbOB1to5JJT0WPqx/oPc9Kj1KW2nQy/a7gucIsVuwyzf41zbWepWExkBnViOu/cR7E+tJU0tR\r
+c8nsak03i6Da0UhZMc7lG1T6DPX61H/wlOqWrpFrFpC0bnaJE6Z98VpaU2rXFq8lw28HhRI3X1NU\r
+4dIutZv5PtEim0ifDOFwCe4Ud/rVN9XawLsc5LpWl+K72E6Z/ol68m14WJKEdz7fUV2et3sQhtdI\r
+tCwsLCMRRBlwXPdyPUnNYWoCOy1wvbYCsu3CHaoHTkip10W7kCfMYrd8lC4JwP6Cto1bRsZyp3d0\r
+VXePP7xyR6df06U1Zn3KkSKhb7pYbmP0H/663IfDFuYS0t63AySvGB7elVD4JFtcJc2N/M8ZfeVZ\r
+8np1z1qfaxD2T7nO6lfT6dqEYngaZeC0sjEnHfaOgxVu0n03XriW1AdJU5ViRlx6j0+lbUuiMLWS\r
+XU3URiPDAnJ9+nX2rg72ybTNR+3WlwBCvzxODzkfwkdalTU9HuVy8h6cttFaWSBF3ADiuF1+6iuL\r
+nNrNJFco2yW3cEBlP04om8T6iywNA8UsUow8W7lT9R0roPDegyaiFur8NLcN90MOg7ZqUvZrmY/j\r
+djO8JeHJ764a8uVZpGIEe4ZP1r07SotQsI/s8+j3h5yssTIVx/30KuaHY3GkhlaCNYyMB1bkGqeo\r
+z+KzdMLN7RoD03Kdwqoq/vSJlK75Ylm50U6mC13pVrMvbeylv05Fc9qehadpQ3mC7slbvbzMV/LB\r
+rUgg8YSKQ+pRwg90iU/0qldeEru+fzNS8RyuR1VcY/IU049PwuKzW7M+0msCT/xMmcdt8OT9Mjj9\r
+KnljeOPeYpGQHK4UBG59W6VueHvCdhpV158bXFw/rIMKPz/wqPxVrcc10LaJy4i4c8lM9wPpW9Nt\r
+mNRJGAZE3vmCIIF6ZDBj/So4wrykABP9oMRipEZjIMTQjPJ2xgZH1NOfzQMmZwnUYT/CtDMq4Zp2\r
+Ls7joq5zj8e/41MsKEbFJZj0Rm4H09Kf5ylBsWX0LKoBP1yc1AqCNgfKcAcjBBxQBK95MAMKoUcY\r
+UncPxI5qOO8V/kWOVj/eL49up/lTjJEzF3LHHbYP55pZZmhIARkHrkHH0yOKdxWJUKrIB9riDr3M\r
+YyD3/GmXP2xoEb7UgiJxJ8igkexB71X+1JLIWVm3L0dAVb3B5AP5UC9YTLE7rKB837wYI9xjjP1o\r
+TCxYgheFmYs2xxhlxkH0II6VOJxNtSExsD1GWB/lVdiFZlj+zMD0Uydf8+tT/K0WzySjNx/rcA/R\r
+gf8AChAPMhSQiTAIXJORge3PP6VHM28JKojCnuQM5/z2pkzpBbmWVXCrwQdz/TqcH9aoTRLkM0cC\r
+HqNowefU96A3NCNYJQ6FVygyVI7GoUhjDbooTgH5Rxj8BUEdvJLlU+UZ6qf0qdU+zQOjuQfV1OF/\r
+HFIASNHldmSRSOu4Bf5dabJ5UrlpFG7pwy/1INSKZ8nzXLR45PBx70gkz/q41dP4SCKYESRMqCRl\r
+VsjbySxPtlu1TtE9z8kymZRyBu2lOKWKIXEWyYBxnJUnOKsPD5gUHf8AKAoO3sKQEYikUKvLKuPk\r
+bGMe/rT7j964bBVgBwvQ/XBFOClVAV3f+8pYdKFtzK/7mVSg6gkswP54oAgMMQZXmjYqT90DOKmU\r
+oGAjiZF6fNnJHrjNRoZRemI7PLPGGT5vrkdqllaVU+5scN94cqFpgJI0zJjJyG6nCYH4Hmo/Okwu\r
+SGwcc/40SGNWPJRx935hz/hTY/tDRubhgy9AqcD86AJ8iRpCQ3THyHOfaqzLLI21XztHRfTNNjmR\r
+ZdoBC+uDipS0UbhuDng7e/5UgGEGMYzgnqpFNLuTjjHfipXQyE/fCY3K2MEfgefwp0MaMCoHTsy8\r
+0hkYXgnCgHqGFEsfmMH8wxyKeSj8/lUqRMs2Ao6cDOTVlQBjKFe2SucUwKLXLxxKJHacckcA/hRA\r
+8juWMGBjI2nOB71d2RoSWVNp54UCkjiUIRHGoz/tHpRqBHsRFLLDGcnDM2eD1o8wxqCrgAf3Y85/\r
+KpYodwIbAIP1p+3aNoA9M5wTR6CBXJDgg9uxz7VDIhjixngnO7HSpFcK/wDGOnBH8qc8nmRldx56\r
+nuKQFAK8bqFBCjOad5pK7AQBn+Jq0YIUuCUERkfHOxST+lVJbJFbeULMnoPyyKVh3JLeVlyFYF1O\r
+Vz3GeR+WarTIYtRCYCwuOM9CelTx4QZKHOeMD9aq36zNZssC+btOQp4J+lTOPUuL1sNkK2sSKqgj\r
+zMLnsfT+YqK48ye480RlQBng+vFR20imEJcKSTyPf/69TXFysbDy+YyorO3Y1TMnUDM13HJEWDYw\r
+cH7y9/8AH61ZgLGA7Rgr8w46VKqwwtmSUHecjJ/z6inckkIAA3Ax61DTe5akraFaONWGZABnrUSp\r
+5ZKIflPAqa/YxQogGGJxkelQlCsSEnpyCaztYq4t2hiiVgfqB3qlZWkRuXnxhm5I9/Wr1wTLbqMH\r
+INQbTbnLY+bvS8hra5MDBLJtIAI7Hpnv/T86i/tKKC9W0kXaxGVO3gj/ABqr9mkjkaYSExMcgZ6H\r
+/OfzpLjMvlOMF4umfT0ppJsV2X3tbeWUyLjcR3NZF9HIJGheB3gI+9jJHsfUVWluLl7yKW2kKxjh\r
+l7da3vtLrCCVGcZIPSnqgvcp6UgawktVc4HKnHK1nW+tTaNqDW1wxliLZ3AcgH2rWgmJujIAEJ7e\r
+tZep2gk1BZGhHJyNo6/WqS3uTfsbWvQTX+nD7OBngjbxu9jWJZ6dNFZSC5glXnOUPT34rb0y4K2z\r
+IFYoo7c7aS21YS3MlqgDMO3fH9aXvbId4oxdO1xLO6+zXT74ScLIwwR9a6C+02xvIhKjAEjOQQQa\r
+524062fVSShAccqegPrViNLS1voIJZMMw3xAtw3PQH+lDtfRBd23My5uLm3ke3P2hoBwARj9OlVm\r
+mMJEsKbv9oL/ADrtGvLbyjMhVgOOnf0qmNd0cRb5lSJt3IZeT+Qqfee0SnOK6nKlXu7kNFbyhmAP\r
+y8foauG31CGHaY5EJ5G4gbq6j7fprKJUMJDfdPAzU1hqUF3JJbypHjPyBhyfz/pReXYaavocUbXU\r
+7lMNA/A+UMwGfYZqxZWsqjZd3cUQA4iJ3N+QrvUtIEUmOMZ9Dz/OoEktTcnckayn/ZAJo5m1og66\r
+s5m20ch45DEGhBzlyc/XGK6CFpbhTb28bKo4MmeF+gHJ/StJ7WOUDPKnnAOKq6hdSWNky20I6EcN\r
+g0J8zFLRGFqNlpMMeJr1nJOdo6Z+g/rWGsVk00ht4pZB/CoGfx4qe10i91q8Lz7oYc85JJ/WukWJ\r
+dOg+y6XHG74wX3cZ9TjvVtLoyebTY53TUlfUBEgQFBlmB3BR/jV7T9Nn1fUZ5ZxIttESrMT6fwit\r
+Gz0nyR5CSOpkOZXRQufxx/KtbUNSh0DSRBbxIMfdBPf+dO99IhtqzlNYtFsJ82sJjG7PyMxJPueB\r
++VWJvEd0trGkcSE7OZG5I+grKu9VvNWnWMquWOAka9a6m08KEwwx3if7btuwFH90Af1odvtjTtsZ\r
++mTakLCS9Zd9srceYepz2HSumguYb22SMk428x4xjt/OsDXNQjEq2sChkhGFxwoP9apR/wBqzW+6\r
+2nEcXJdzx+HTJ/OhxuTeyOmh0C1kv47lz8sZzszgHHTiq+p+NIrHUzayWbNCON4/wrlLfWdXabZ9\r
+tZl3bQMDn8K3bmztr2zU3DebMi8tEOlJxSeuo02yS7XRvEKNJb3BjnC8FQQw/CrWk6w66cLe4Yyy\r
+wfK2cq+3s2DXH29vA940MEExk3fId2T+QrWvrO7s44Z4XTzdojfeNw/PNDS+ENTeS9iuNTeyjuFn\r
+V4ixQuDt9K5+48OXEh+3O6t5h+UY2oh6VoweG5rdVls/9e6EnPCgnrXW2D6TBaWemX7K020KQBwD\r
+/wDroik9Iilpucf4d8IQmUGOHzDnLSHt9B0r1LTtOs9OiAj3K+OWfvU0dnDawAWixsg7LisbUPEu\r
+n226CaVUlPAQnBNOMHfUmdRNaF3U5ZpPkjWGaJuCC2CKr2NpHFIC6xqOwyTXP2upWnnb1ur2TJ+4\r
+7LitKXXfKT93aM2PbJrRxk9EjO6S3Ok+026qBuX/AL5NQzXyopYooUD70hCjFcsNclnbaJoYcjIB\r
++VseuDg1SuJJZghlm81A3zHGc59AKqNPuS5djT1HxA90zW9vP5UPQsvBf1564rFeQnaMK6r054H5\r
+VJcR+UMxbxn09fWoQhIAaPOerLn09x/WtelkZjTcYUvgJkjC5yKnWXeNzPjngcn9aqW8cSNJhXUs\r
+2WOW59xwasxvEy+YyOQe4U/1ABo1Ac2CvBwR1yR0+tRMCzgLMMYyFweDTXmhZcgSBvQL/jTSqsq5\r
+Ur7dMUDJVgzgO2STjJB/p/WhoghBXnjlt+KQRQwE4z83JO45z7AUpluYB/qTKp5DFiGx7g0WEI6H\r
+Idc/8C5P/wBeoSm1xJO8McbHhR3+nepwZyiyHKqG5jbkH6Hbx+FLbsUlJ/fRqDygO5W/OiwCb4pF\r
+VPszKVHGemPrUIUzv+5DRqrfMBgE/l1FTuFlmZkkMeD8uXGf6VAzz2shj++oPJdAS35UwAxQ20oZ\r
+d7v0PlsG/P0/KmyM5cBbX0yzydB9AOtTfaYSgNzDcRrnrBjGfUg4496kJE21klLqOQYyCPxwaAFX\r
+ySm1wC2MBdvFN+zoiMVQ4I6BWI/IVEVeNsSNEFboxNTLGJVCkZ29Pmz+RBoERQwRcpgqUXcpjQ5P\r
+rT3vI0O37TCmByrRnP6VCY54rqMQlgJMghZSuT+o/SrYHGXtPLY9lIP8hQMeYZWJHm7PpiopmurZ\r
+ArXKlG+6+0kg+nFDOWcl03huRtcAge44qZGUj5cDH984K0AMXUAh+efcV6qY8HP1xUq3CSA+W8cb\r
+Oc89/eke1Dk7lBZsZA/nkUHS4s4Cuqkgkeo9MntQGhZlRVQbBIx6Er1FUZJRGhjmLSyOcKAMYx9D\r
+T30+OLcWQ4xwU4I985pscKxhzGjEkYAIAJ9ueaAI4wrbTLImOpTPP8qUoHKPywB75JprBQTuDfLy\r
+crjA96enkyENvKBvu474pDHMkSoQrkMuQAV60WlsyuS4cEcDbxxUxmjiQCAFpAOjDj8TT4r0lB5s\r
+Soc9VyRQK5BdiNcP5SvIT6j9ahQbkCtCo+ozirqxCYEo+VJ/h9frinPAqIWKsdvTaefrQFwjiuIo\r
+kfKlQemOn5UrSkthpMN2/hzT1kmWP5FT1+Y1FKqyqDNJtc8Yi6H6DrTF6k8SO7HzMDA9ciholiYF\r
+gXUHnb2qohERCgPg55Y9/wAKdIwIHzKnrwWJP07UDASkFzJKqhTjPRcdqYzLOCXIZTgAMvy/XNEi\r
+oiD523KRlW4yfpSGdJAehz2PGKQDUSSNQrjBz1IA3fiKk8ww3CoQCCBjngZpHaKOPHy7cc4471FM\r
+0MkSpI37sEcE8H3/AAoGWEnJlDbipUfeVsUiTZDAMm3ODluapvdSW6rLCNzBiCHwQB9PQ1DbyqDJ\r
+K4JkO7AOAiZ7gdyOcfhRcLGwrNsIUgexqIsFyx6jqPWo5pfKjFwpGzf0JI3L/n1qO7RJ4lMSs4c9\r
+A2G9sH09zSYiO4WNMyMuVB3Z7g96Y0kborxRgqeDj+dWobUoq5jIXo3zbmB/lUBUwowRMAtnjsaz\r
+cbFpmXc6XEZftAc5B+57UsjZVY0znqBVhmaaTy3Dxkcq+ODUUzeWjAMhlQbhjv7VnbsaqXcpXmoC\r
+0gaW6X7uMnrSw3NvcW5aJgwI4Gf0qu3l6iT9pQpx8qnvRHaxWn+qYbe2O1S0i7gk0pXauSg/MVJI\r
+jyxYU/KT0NVlkmNwzFFUHI47+9GZ0nzyUPPWofqUvQf5rxxmM+nQ1FbhoV/eHBPODVW7llE3GSOo\r
+2joasxlbuHZOQCfSlcaFtp4ftLhl4zwcVoukpINqFfj/AFbf0rLbTjGN8TkseCG5B9xU8N41phJQ\r
+M+oppJ7EttbiiSSG58ySHah/nWnFNHdx7kYHHfrUUq/a7cgYG4d6zgTpBJLDnkjpn/GmlcG7F4pd\r
+wy74WK+mO9QvaSGY3ErAE9zxj8auQ3f2uAMuFbGcVFM9y8Zj2qVIp+ovQtyQrcwblb96q8H1Poa4\r
+XURdtL5d3GFO7OQOCex+vuOtdCTf6XGPLVZVJzgcVK8rzRbpoSCe4HINCdloDVzK0bT5C0jmV239\r
+drcZ9ao6hpk4u9sqN5ecKwHauh06Ca0d5SocP6CtNXhuAN0Tpj1HFF3e4bGNa6M8NkNgDRNzwMVk\r
+3Ru7G4+zMGjfIMb46/UHr+Brr4tRh+0G2KBlX+JeMGi+02O6gAEh2g7grc4+npQk1qwckzFs/Egj\r
+QQ36rHIoxksRz/n3qjqc93I4limtmiP3WWQhh+ZGf1rVm0yxmZVuJHDDsy/rkf1qR/D8Cr5sMgkT\r
+GNoGRii9nsPdXuZNr4o1DTgI7pEuAehztNblp4o0+72iaFo3bja4GK5q7hS3uESaE7c8MnGR+PFV\r
+5oVmmRfk2k5AxyD70NJ7odz0ObyGXBkCpj7qLgVQn1zS9OQRGRF9lFZVpp0csSiTByOqORms640O\r
+FLliY3SMng7c5/WkoRe4uZo1bnxjZwqogRpC47ADFYt09xrdxHJbrIWfht38P41oyaNZxW8UZj3y\r
+nlVUdvete3WOwss7Nu3sB0qlaPwoTu9xdI0yLRYFlVFlvG6b2x9ccGtF74zO9sLlDLt3OoOT/wDq\r
+rkZNclmuWjRGCk43b8HHp9KvWWoabpIeWedFd8AKASfyptdOob6stjRbjUL0bhtj7kAcCrOu31jp\r
+VkLC2VS+MYHI/Gsy58YJMpj06J5G9SNoqxBpdvMI7vUW3SYyVPTn1oWnxCeuxz9jY3eoTZhQKmfm\r
+kPAFazak9pe22m2pJDPiRiO1TahraoPsOmRKzkYwi5K07TtPXS42vLoq94/Kg9qt+ZJe1DSrC2tJ\r
+ittHc3DnfhnKjOOhwentWbpuuyiD7CLNIynXn5R9Papku5RKVcJl/mZmIz+AqveWC3FyrWpKSOPm\r
+Kk5NZeTNNS1/wkl7Y3CwLE87ODhlAAHsBVmKeNfOmuJ0RpG2vKeTn+6P/rUscVvYReWxQXco6/xD\r
+tVi1tI7do/KiSXaOJJG4iHsP69zWkF1SM5PQfa3dzCdtvcywwgYVG6nPQ4659KY9lJdTmeQMzHI+\r
+Zec++cfpU4c7SWgkeNm2kxAE/wAzj68UktxBAQR5sIXGS5YN+qkH863sYNj4xMAV8h4Qe6ZIHPbm\r
+nTfZ1IkIfcckAqcsfx6VDEv2ksY8yg4Y7kII/EcfpT1QROAGnhRv4VfP1wP8KYhvnZUMkMhLcmUx\r
+rtf6k/0pqtLKrLKj7B0ZXAVfpVpryNOBIvJyCZAxb/CohdJLIArlFb+CVRgn8Tx+FAFZmuLuFA6t\r
+bR5B2nq2P7x4xUm+KNdgxEcc7gWz7cCpZJvKAWWLcvQiEbgPxzyP1qON/l86IsIsY2s5x+mePrTA\r
+eBI4wrhBj7ypgj9cigtI8YHmbx6zrgn6YxURKud67S4AIMZ3AenG7mpI2lkY+aZMjn5lCAfkTz+N\r
+AEaiUhwbeOTnqMKV/AnmpjGpAzEsRY8HIYH9aSSCVEJJLAcnJJI/EH+lOSMyRSq0XIOSWZWUfTkY\r
+/SkA1zKh2zGPZjrtb+nWmZkkjAgkiaJedsYK/nk4FPV7kylCUiQDiRVyc/nj8smiV4AVEt7GsgPI\r
+cjJ98H+dMCHCxHcolbIwCjDIPuAf1pzSCMbllnZRz+8cEL9fSlD/ADFFV5YmHLIqhT/WnGBVUo4C\r
+hhw5GB+eaAK5e3LkKAzsM7QADj19DUu4RRhYUz6h8hQPoDTYWgBBW5QsOmxt2fwoADEsh6d8E/0o\r
+AOXSRQincOeen0JHFNisbF13zLcLIoOChULnt29fpUo4GS8W7uMHd+VRNBDuJdmLYzjY3SkASwSK\r
+h8qeSLP+2TiiBzCfvDJXDuqgfp/hTvs6qwdIXfP91Rn8jzSiPJJeFkHqTigBjQw3fyrK0gJz8qng\r
++tLHDLECkkl05B6k5/mKlSKdVITep6rhhj8KjKXJPzXUin0D0AV471B8rW2Ix1+bB/Or0H2ebDJF\r
+GcYGd38zipZrXYwLkSfNwWUNn646VntcW4mUvH5R6YC5H0o1H6Gi2mjeXEhRwflKr92rqRtDEMOW\r
+Y9d2Tn9az/OZsEOVt5ONyPkj9OBUjQxxSrGs0gkPIPmHn6dqYixJMxQhRsYd6oFpS37xmx1A2k/r\r
+Usx+zsSkweRuu7jj6d6CJWKZ+UnkOvPHpQBFtin3szsMHkEED9akj+z4eOMo+AOhAP8A9aiMh2be\r
+pDZ4B6GnyRQou5YvnYf3un0+tFgEbOCEDEdOBmoBl24bJ9s0XkLIqsIy/QMocjHvnpSxNuw0sYCj\r
+G0KecfWkMWFJLeY/M43clAePrUhnd22MDn/bY8/lTWCq7P8AdBHBPJqM5kY5DHIyGPGPpimInQyI\r
+rqFCArjrz+vPSiS3CKDjLryvrUCNGzbgQ5A2nK0ryGEguMSMMDccEjtxSAuxW4WGNyfm6/eP5U5S\r
+gc4G0djio47knG5hyOARQbhWUAhd3QhaYBclQmSUZ+g44+pqKKDcRlEftl8gY/Cq8zLE33W2n7zD\r
+nb9alWWYA+TIgjH8IYEikA+S3ghfeFdWHZZCAKh2EjK8DOcsdxqwzSHDSEDjJJHIoKtJn5QV9Xba\r
+G9sUDK6QYV/kZj0BdeCPaqht7gtyPk6gkYx9AavLOwkYxBV7+Xj/ACaZLcESbtmWx36ClYCdbgtA\r
+sLwM0eNucgn8uKr2txcQRPCtu8iqSVfPbtkd/wA6mYq+2RS6qAcnHGTSbpFiLeb8oHIOMimBOtxJ\r
+n5kDr67NpH4VI86vbjCEk9flxVMibhQ6lj/E36ipUbc5HysQPu460MRWu4Jgu5eV7e1Z01mJRulJ\r
+Df3gcEVrGSQsfMjPHTb3B/nVe4IWLcy8E4x6VnKPYtMyZnRE8hienyuRxVJbaSKbzQ4YE5welajL\r
+lSBynqKikjRk27vwFZNGiloQlHYqyYx3FULu9FvdKindn7ykYwavowjXj72OjVS/s9pJfPeMkk9c\r
+VLRUXqMAYOHxwe9OmtjJIZkbbuOSq8A1IX2kxZ2nGM02RHhUFSTk9+1Ryl8wyK5kjfaw4HerZjgu\r
+WV2ALDnpUQBaMh8YPWljQBfk4x3p2FceGlilAQkLz34pZVhvF2uA2Ox9aFYAYkYE0bY2G8DB+mDT\r
+sxXRHHB5cuEbaMdM5FWRJcLIFwjJ65IpkcSklmZs/Wp4grZA59jTQmxXuEOFKE/QUSzjaAq5qEW7\r
+CUfOwUduKkICsN+friiyuBYS4XywAMcenFLuO0YVgW4wDkf/AFqjZl+XYM5Gcg5/OkkkiIUEbX92\r
+wD9KaXQV7j0s05Ynk1LHbIgzlgD05qrJdGJA6qGXcBtPXPt61MsxlUKVZR125pWHe5SubIKxkXkD\r
+ozE8ex9PqKXSZzD5m6IKhPPzBv1H860REpXHY9eaoXcIgi2iJkbqCo4I9vWjcLlhrG2vJFdYY5AD\r
+0cdPxFVL7Q4hiYIiMP7uf0qjYJcwsZi7BiT0OBj6Vqu95JHwQRjqetKyvuVd2MXTdSuracQyxl9p\r
+xxWtea1AkakQy5zzwMD3zUMFkcs7t+8/vDg/jSQ6Rb73kdoycZ3soBX8yQaL3BpE8euQxwBpkWMd\r
+N5Ix+dOTUINTUxxzRy5OMA8VzupW1y92YluILiPu0aIcD8OhqaCQ6XGBbwFpT0cIcfzp2SDctSaY\r
+2m3TzQyLLcrgrb4IJB9PX6/ypuo5u7Ty7xFjfOQituYf4fnSRWl5qEiNdSEOTzu+bH4GpbmaPSYS\r
+tjYSzzYP7514B9s1SsydUhNJsorUDbCQOoaTrWnLarc58yR2XuoOK4tNQ1+5uTtJyT02Cuh0/wC2\r
+xw5ug3m9gWz/ACpO6ejHe61J7y+t9KhMdlbRCTGcMcE+/FYbajeW9wbm8jlkY8qyHcMeh9BV66lb\r
+zAbmLco7gnOKatxYXo+zxfKV+8GXpTVrWJ8yNZ5dUUTRxOnsXwv41o29xdbPItWR7lhglOQg9T2/\r
+Cs60tFml8pbkyKGPyRLkD2yeK6jSNFNi7TCQqP4YtuRntk9z9KcI3dhylZEdjpKBw92WklJLHeSQ\r
+x7E/4VqQIGdmW2RSOfMTJz+Yz+FRKJ4wzytLnOAUxn9c8Ux2kY+XJKFPXJ6+1bJWMG7lpWkkG5kV\r
+R/0zcrn8CKd9rDJhEZxj5hsP6g1V8mGT5nIkfIO7n8sZxinbjxs4kB5VQRz6kZ6VQh01sI1EkcRh\r
+cN2xk/j6ewp26RQrNHIw7bChI98ECqktxJFK/mYyRwVGGJqQKWVWII74cAn8+tAEj3EDOzOpdsch\r
+ip475A706TfLD+5KxBhgqh5X6dP601fLVVAVSrH07/zpzNE0J3ThxjkY5zQILRgIljNyqFcgxquD\r
+n1yc4/AVN5COC80Ubcf6xm+bHvwOKhSYSKFZUzkHDrx9aQB2XbLFbNknhVK7fqc5pgSJZxmYkbcK\r
+fmVCKT+zraK5LJE6ofvDzvl+m2mbntoyIEjCjgID8g/9m/WmyyyGM+cGbcBjygy4P4mjQNSea2s1\r
+LEqySdSWmfAH0HSobeNQ5ljs0cjOJDLncPY4/mKt20wCDy2wP7uT/Kq13JNIohdlAP8AdB6enWgS\r
+uOu1At8s4Vl6R/Ln8OagSAsu6O4jLY4DLz+IP9KaLbZIGzjGQV2bgR+PNPRYPuSoqkn+LJB/WkPY\r
+e8xgBDw7D/fDfyU037VDONrSRbR94v8AKQfcdBU0cNvBB+5UDJwfm3H881VNuSZHtp2jboykfjj3\r
+pgWC1sY/3TxorEYZkOG+hPGaGidsMXdivTKEY9yOKZHOzRGF0DE8kljgjuCO1SxEQKJEkcLg8mX5\r
+fpzQBEHb5cLFIrfxINpU/gaDCJHbyruUrj5o42yB/wDWqzHOs7gqwSQHOHYEke1PlLGNpMj6lun4\r
+0CKQSJB+6ufMPQIzMefY/wCRSlbokNHNApk65iNOLGZGJkLY6CJmGfbrTWidGQKZF3HPDMP15xQM\r
+WUXSoNjx7gP4WP8ALmkRJnXcZXP/AAEGngzwNg28W5uMhh/PHP41C1wY2Ks+1h1Hkt/QEUAaV0kc\r
+RwJX5yAoORUMRV12XCQksCA3c/nTJ9NH2dXZ1CjJAPNZapuBKKyFW+QLyB6kihgbMTQWsnleY53N\r
+nG7pUMhRpdguZMEnKueCPSobiF4lykz4OCWXg4+lNN5NsdwvmBefuYBoGX3ihS2wFUx9flINLiN4\r
+tsK4yei9jisd9QliYN9nVYmwcxgkrVqDUEm+VXLFzgAA8fhQI0orWwmSLzLlklb7zKOKyp1uYLlk\r
+RYyvQE8k88Z9KuRTtLKy7mYx8EgfdqV41WItHtJ9M0rDuVbdy1u27AYZ5znP+FNSMu2WO0I3pnP0\r
+p0YffuVAx7/N0zSCKKNlIXAyAfm60AOkjdpMlSBgn5hjNJsCSYXn/e/+tQIzIw+d5MY2r7e9WpC0\r
+bB2jiKYOccn+VAEKxyukm540x8w5xn6Y71HIZW/dl8rngceucevWpQ5kfywFTPY8k/4UyURW2cuT\r
+J2XA4oEJFKsbOJk/eHgAZPHuasMIRbnooIz16VTWb92Sx27j0zUzSTBdpxjoTwT+FFxgEMO0SPGo\r
+AzkkjNOkcK3EsTZHygYNRAr1EQOcg7uc/nQJGQ79u0Y4HTAoAcgkDSZZsHkhP4fzpP3jkfuyWHA5\r
+/WgFZSGZXXJp5LoAyK2CONo7fWkIY6BPvxEEc/NwRTHUlhnITGcdMVY37kJLANgkqV/r3qCEJczk\r
+MY8YyGckZ9sCmMVrhYjks0pBwvTKj+tM+0DzyoQbeuc8ZqZYIEl/eFopByynipA8Qcq0wZc8KFBP\r
+0oENjeRsscMc/dHpTpAqg8Yb1GePriopJGQs4aBcA7QytyfTrUe4vsIJ3kDdjkZ/wpgTh3lKqso2\r
+BcAKpUCmywRtHmfDc5DE8D/CkViGKKSCR1D9PanRneGBPmJn7oOePfNIBq28JycBFOOlU7rTVkO6\r
+F8kH7vtV2eQGHhQvz/Nu6ke2KZBCq/vNrE4yT3NJxQ02ZDxOp8to+R6iolDRkheAfU5x9K30mVWQ\r
+xKjsw4G3H50+S1M5LTxpkZwE6Y+tQ4FcxzJhVzl0GR0JpwyDsZMoe4Na0mnBhtQkNngGqptygYY5\r
+HQYqHFormuUnjUnaOCP0pUQxNtyGz61NtAbO3DZ9aU7X4wQ2etTYdyOSBQwbGfpUvlKYxt59QeKa\r
+x8tgsgznuKjJBOFJUk9M07BcnQYXlQtNWIEsQ4Hp70jSYTDn8SetOQgx4BFKwrgqOpOWGB60oOWz\r
+jPtSj5V+8M/WkY7E6A560x3Dk5OAq5zgUzYhBO0mnHZjAwufegnCAB8gdqVtQvYRI4ov+WeGzz/+\r
+qhpCnzLGeeeKa00nAXB9c1FJLcHauY9v0o0Q9WOTUpGYq0GeMA7sYPrUEmo8kSI6KvUgbgPypr+a\r
+6gb0x7CmPK6/LtVht+83GPai4WK11rBIC243E8Bk5H1q5bXVwYQGK7u9VA8YJKNGD/u043aqm0or\r
+k9160vkVYjvpLt2Bj2jng0kF2Io/KmWSV8csF4//AFVG9xNnKKxUHC7zwv5Uss7NGc+WW9FPFMWh\r
+FLfzoFfyQGX+GHlX/HHH0NOXXb+5hcx2yRHHHIz+dMCAgKDtB7KMCpI4FUZVWOOwOKTa7DsQWL6i\r
+ZN899hyeI0Xj8TV1dLeaUmSQvuPJeQ/yFPztXIyCO27FOZ1XBG4N1yDRqJsmjsY7VshBj+8SeKV4\r
+I7iYFLk7gfu7+B9RUJnmkChZGf1GzP8AWp7WyubmXEUMykfeJAT86pIVyvmaR2iltlJHQI2c/j2q\r
+1Y6GRD532IRxF9hbBIzjOC3c1rW+mi2QmVWlYnquOMdq1RLbLbIqwOH/ANp+F/CrjT7kuZl20SQX\r
+CKsKlAGyAMDpxgVclVVCPsYLnaQG7+n/AOqq0k0YLJMyKr4wQ2GJ9hViGFEGJZRISmVJJJPrwK0S\r
+sZttu4jSER7HEyxj1ABP1yaqzF5TtRd2SCCO1WjGTG8bMELYYAnIP4mhIWMewvGCeuCD+frTtcDP\r
+J2S4MyhecEjr9D0qSNbi8uUTz0wp4w3Iz64rQbT7d5lYMSVH3d2QPf60ptXTDxIsnb6j60rBdAkc\r
+cWU8p2ZRyW9frUzjegAUrnr8opnzhGLQSE46AnrUbzzuyKqNvxznkj2p2Fcqyo8cgMW1+csPT3qU\r
+K0oP7gIf7wXr+BqIXMiygiJd564XaMe9O2vLuEgcY6beh/HuaNBlV5o2YrNlMf3xj8iKsBsICghY\r
+HoWbmntEjwbGYjcCuWIyaTc7oGIUlcjcWAB/LAoEIJT8pAhQ5wxUE/zpks4bcPOUDHZiAPqDmrE3\r
+lRqpeNHjbp5auSPyBA+hprERoEEOwA8eYeD+GOvtQBFhigQnD9VkjYbh71LG00CneTIMYPG79fWg\r
+20TR7GXBxkjBBPtUSKnmFYlIHZ8Z/LHNAEpZo/8AnuA3qtSIDAeCVLcnchb+XSqkQuPNDx3R2HsS\r
+MH8+asreSN8hYl8kZSPp+JIH4UIBDAFA+8qt/wA8/wCo4qGS38s+ZHPKhPBzyTjpn6VJKZogzG4b\r
+B6Hdg/l0qAXM3mKThlPUliM+9FwJ1gkljz5swYYzyEz9GGalhilLnczuinpv/wD1VAV3YMTFZQQc\r
+7ucfQ1YS4kjYiRTN0zsYAD86YC/ZjlhiPb1yyZJ+nSq7xY+/DGVByHwc5/PpUjX6eeQq4lU4IduO\r
+fQjIpgnaSVsNCef4sgr9R3oAkERK7yQO42pkfrUgnhG3fks3fbt/HmqxmZVInlEY6A7toP6foTSx\r
+3MLuEW5GAMHDBsD6UC9S0GKAh0MgP3cDtSBYlHMWSeehP8qTzohGBHMjbR8uz5v0pi3YQYAiH4EZ\r
+/DNAGpgS4ZiNvofSmGFIipjRducnA61S+0yQvzgjNWReIyDAyxIAAoGTRQ+bu3lQo/hPJNV5IsMV\r
+XYijhQFJNSBmXPPX9KrzNMxADjPY560APeJSh3AE4x1qDyEjAkEoGAAcjH4E9xTPMnX5WUnHQmoZ\r
+GdsFivB6mloNFuWSTfuUEA8HYcim+e0Ue1kYhs4ZugpFlVdyjYVPByvP5VE6xSfM/O7j8KGIXzXk\r
+zsjU4BHXOaaYnco2AcdMqAFpzJC6KUASRemBjikaV8KnzHr9KBl2MsyYVBvPXB4oEMu7BBVQOw/x\r
+ql5zImZjMDwcKealF2ACSjKo9H6/WmIkkEUeGJcpnJJOCfyqltjnmZhkRcbTjgH6mpJp3k2lG+Uj\r
+JFVJnkZUh28Fsg5J5+lSxmla2DXPnsHi2RAYdnwCT1x9KPIMkYyOQPuk1SMz2ttGpc+WrE4Hc/5F\r
+Qx30z3W/aWGRxjoKNBamj9l22+TOd45wvIU1G0cpC5jU4Gd4JbJ+napXdtgKr5eTwc/eNRHzY9o8\r
+2NRjO7HBqrAO80yO3mWqFlGMg01BLBL+5tVCnPHpTUxvy8mSeocZzUu5VjKuzbDxn+mKQxJLyUFU\r
+WIBu5JxgHvUN3LDLO32Ysh3n5e4HbmpgC+xVzt6MwA49qjEYRstbgttwWU/lQJEEpkbAeUtnruOD\r
+9KtxNwPMhUgnG4NnBHqO1SiNGt0ZYwCRliR/jSJGwyzLiIDqef1FADEntiT8jDPRiP5fSphsZw6Q\r
+ZK5DHG0n86SJ4dx2xvuKjnkjFTmUGN2UH90cMSMYPpQBFJGhiPlRYPBweF69frUK+ajkLtBP3iBy\r
+KsSXoG07VPGcBsmqq3El3MwyiRAcNtwT9M02g1JJZoyURSGk9x0/pStuDZeRsHgBSBVfywjkl239\r
+M46VLJsuIh5eSwOCTxSAdFEWl3pKTu6g8bfrVu31W10/e1zb72HKlmAxgZqi9sSdysUUjBXqRUcs\r
+VsYCs8atGgyvHzD1oAl1G4gG26t7uGUTKHcJwYiecbev54qAXsp3oYQwOOQO3tQunWk8HnoAd3zA\r
+kckVbMe1cAAkr0H+etA9DN3RSyENFyR1AIP1pr2jbSVJAPIDdcVda2Ny6RlZQMcnsPrT47aRIzCP\r
+uk/Jnkfp2qHG47mMYZFUMy5Q9Djj86aVw20jBHqOldKsDtEiyBQGO7a3OB6c1xHiS/lGqTPHIVyc\r
+AjpiuavVVJpPqduFwzrp2drGi4VuCAaQ4UjC8Vyo1u9iYZkVx/tLmuk0ecalZGUlI3DbdpbAP0px\r
+kp7Cq4aVNXexMSCcFOnvS7ug2/mame0cTFN657ZIGage3uAGyg+U4OD0/wDrVfKzn0Bm3HlRxTXc\r
+AdfoM0ySC58nftO3HYCmrY3MnRSx7ds0tR2Q2SdScc5HeoGuef4j74q4mlvvxKSg7kc0f2RHJGV+\r
+0OGBwyn5f8afLJjvHuUuHXO4VBNKkQbcenWrWraR9g0lruCaZX8xQAWyNpzwc/hzWMlxv2eehIIw\r
+dvRvqKzk1F+8b06MqivArz6oN8axWiOSf4+35VPFHJJhpcsx/hUcD6CqzoqsAFxj+VdloDs9rEj/\r
+AHAWPAzjPrj+dFOXPsOvR9lFPqc+bdohloZEz0JUj+dTx6fdOpkWCXaP4mGM/T1rtZ5bdEYXGyUE\r
+HhumR9apJf25uEXzNkmMZUDbj0wa29mjk5znRY3W0s3lqo7nP8qVNLnnUEupUnsv/wBeugjtbW68\r
+2SK/mlmBxygIx9D296cNPaL94/lRKhJwp4wevAp+zFzmPDpMNuCbhpgM4CqmKuw2+mjpHGGHG2Ri\r
+wz9elSpLD9nTbJECMjcjkFT9DSQxO7bhcTkrnhkABzxn/IquWwm2yT7KnyCARoyMGGOob0zVp5Xl\r
+VVRVy+d0u8YzVMG42yRLdIHfGRIuM+g4P9KgvRJZKS8zTO4+UCMhPfp1PWq0RJewZA6KpZxyCx4P\r
+0/8ArU6PzIWCMmSw3M0jcCs62vRGWaaOaBXXcPl7+uf07UsV9IjNJbQySKowC6HDD1Deoz0/KmFj\r
+Qfz4WQyBVVsYP8JH86kMzNE0YgVgBkEPt4rP8ia5njeclNowoZwFI/xq1EqQKO65JK+YHz/u+lCE\r
+yu1zc28XmxR7oz0BB3D8+1VTqUc53CJnYjGxuTn6Cro+eBkVRuOWPmHc0f8A9f8AxqOOZFQhjKvI\r
+wS+f/r0tR6ENrcyCVC0RiQdHRCu36E/yrUVSXLF1bHI3j/Cs5rudXRI5QwL7VIXAcfXqPzpTqN2W\r
+AaxkxjBxETn8aadgNj7SFOMOSDyN3T8zTmvYZEO/Krjkrnn6VjRTytKqMGJPZiBz9OTTktcF0kY5\r
+ZiRjkfSi4rD7i+jVWVD8q9pOfxpsV0rW+7y2d3POwnH1xTFSOFOI3C9OU+UfjzirO1DDhiY+MBom\r
+yfrzxQARIzRD5WBxyu7oKVYU6eWmTycjBNM+1EyLOhd93AwAF+oAqdVaWVg3Bb5gTnA49M0DEESR\r
+yb5ASPRXIyPwxSQB4RsV2dM8L5hOB+NOC7twm2tx9N34UixBWzEXGOgCkn8qBEk8RcIfK8wqcqGw\r
+cfqKRCIuZomweg3df6VWnn2SmNkZifvAhhg/j/KoVu5RMSqMsfZTlv8AD8qLgaTXKspKyBTn7r4P\r
+8qrpnvErnkllBB/Sq9vC97fJEzpGXO0GYkKD2Ge2TxV4pNZf6PJKTxnDL0HtQAj7yoG5dvUhlx/P\r
+nNRSJH97ecDrik3ME2kx56YdOMU4JIWCxOTu6FBtA9aBieSFIfIbIyMnFKq4OxWAGfUEfrUgihmH\r
+lyM29SOQc/rTz5ca7ECv7MBj9KBFcTNGfnnC9tkgGCPb0pVjtpJg63GxsHOcN/MUm5QdpMQz2D9a\r
+GhLtsDcjseCKALKgxAlPL2nqYo+vvgGozPHICVYxuvBOOfyPT9arC2EeVaeVm6KjkqPwx1+tStDb\r
+xupdSCR94MWwPx5p6CJ1i3/OxLjHAKgfngYqNo4pDucybv8AZIx/KontsfvId0i9cNkKfririTuE\r
+A+zyqMdFZSP50AShYZRy4dvUGpoBbgkKw44OTjmkW0jU5HBPYdKmCKiMPmbJphcdhH4QIex5zVNr\r
+JY5HZQQWOSAelTmAb946gegGKgkl+dlYvz6ChggkjPkMocq3Y5yRVWWRIWVQNxxycHNPeXKgqfkH\r
+GMZNKkp3MCDtYdxjFSMbDJHKrfLtPcE8UsqxwuCdrAYyFIOKIWSIZXBT0PenO8SjcBGqf7WOtACr\r
+bxvyUZeM5PQ1H5bycfKCP4c9KljvVZWBdP8AgJpJLhHO3lQVByw7+lOwDVtcry+H64PNNaO7kXyn\r
+RQnI6f8A16DNslznJI6seDTxeONwCKW4wAwNKwajvJjgRS6KWAAOMCs+8uPLk3IpPGcAAn9KvhIZ\r
+n3zsC/pJ/D7UXUNq5LtIqyEf8suTRYaM+3dbhSphlz1GBgnmrNzbbVX928b44KvnH58U+CJklVgj\r
+E5xlumPX2q+SDuT5W2/wgY5osK5mR2qGNleSSUnOGYU6OzZZSXfcMYChcH86vTERqF24Y89P61Uk\r
+mAh3fMc/xDnFAAtkDlg+9h0QjAHuTRNAySlgA8m3g9Bn0Gf60sFyIVZQuXb5uRjP41aNyqgHcmD2\r
+9KLBcz45QivE4MW3k44bNSJPhFUAsp9TyaWRoVBOAxPXr/Wm7zK4eFMAHjeecelCAsBGmVSyhM84\r
+75pTHFsKlzleoz1HanJC2997ghR3Jz9ABVSUIpMgjCgthfMJXOOv60xEu5WBJlZQD933qMoiS4Mi\r
+lGIJwc4Pv6UxGb55CwG4HJi3Mv4jHNNLsXjKCNycAFDnP1HUGgZJJDHEzzbSFGAwBwvpmpCm0sNg\r
+IyAN3+IpPMfyirrIoxltwxTRck4UFcg9QMjI6ZpAPVPJUnIOeucjA/GoAIpHAVJV/wBxs8ikWVWD\r
+iQ4UDJJ6HNSW7FvlWPe5XomQent3obGk3sRSyNCx+SU7cYJbg+nT+tNlluREW8kOWOCFGfxzUzJd\r
+woGZ4o8jIE6BT+pzmkF0UUiXUbLawwUVXYj8VArOVaEd2bww1WW0SNmdWBZ49xHAz8vPHejy2SEh\r
+49smScjBOaj+36fGCgurgKf7iAgH23GnHVdNVeUu5fQMEH4dKyeLpLqbxy+u+hHJqkccqxnzN3X5\r
+mJ4z7CrqyeZiSNFCbsbeevrzWW2tWYkHl6YWxyAzMce+OK1bK9vZ1MzJFY2gOXkAAJ74HcmsZY+F\r
+9DZZVUSvJ2LT3Twea80XlxhTsY9X4wT06e9eZ6wwaUuhyCeCnQ102u+LFaOS1sFYRHIaVjlnrj4C\r
+HnI2ZMpwqDo7dq4qtSVWfMz08Lh1RhZFNgdrNg4xmtnwvqENtdKJsmGQYLf3CRjP07GpJNKKXMcG\r
+PNO8bjjhuhP4dap61bR6fq7mzI+zTfOqY+4e649v5V0U3Ll54mdT2bk6MuqPR1tgrEEq8DdB5Ywp\r
+/nn6Ul3+4O7zEVS2Fywwa5fw7rX2m1aCXLTQ8k7Tlx2zjv259q1IpnRi0wMaMOEYBiCfX0r0otNX\r
+PnqkHCTj2LMTK0hTcqnfnrncP8KkFuodizMJCcq2T8v/ANaqRvWWceSUlXBBKncv1wOtVrjULiYN\r
+tDqq8livU/57VWnUnU1JfPaRlVnLsQEzgj/JqCazuXVVlaTeOSEwoxn6HmoLWa4d1hdhgEEbuAw/\r
+LmrRhaaUsrn5F3eWBgkfWjcNjP1G2X+z7geXKTw2WDngHkkkYHWuUkDLIB6Hjmuz1K5kjsZot+4P\r
+8hz17H+VcfP8zkA5Nedi5LmSPbyyL5G2RvHuCnJznoK9GsJXtLO2t0ZUAhXoeeByTXA6bayXd9BC\r
+SRlxz1wBz0runaV1S4Y+cvIdZFHP+T6VrhF7pzZlL3lEZPMlyrGS5GGXbuLjP4cVFLpShWHlgKwL\r
+bgNxI/Dt61LbSsVbMCwjOVI/wHWs29ugGAzGbg4JkXPA68k812WR5ty3JpdsuBFaNyF3GNiVI9uR\r
+x70sQtbe4CpK0bqMeSQ2xh34NZ58SR23zSovyrjdG2MD2B4z0p6a4biNJI45kZYydudwY9+ep6+l\r
+Fl0DV7m7A9rIAI2Mb5w3kr39OlEnl5kRgWYdjnJHsO9YH9q3kg8yGCWMn/WZGS/vz/hUkV3dvEcT\r
+TW8qKSzyICo5HHP6Ci6CzLNxt84JHFtcgDDZJIx64OPxpJXuIpfLcFYFB2NI3XH68evSlJtNTRZJ\r
+55SD8vTaAR2OP61Y3KZZYQwlWNSyg7XB47YOQaBDFM7QvKdvk9d2Qd3v7ihp1wEZQg5JCnbyOuc/\r
+yrPmv1glEi3yIgH+rMTAn6dPyqyLuwSbzJNPM+7BbYQ208/wE9celA7FlPPUDyYWUf7w+XP8uKbE\r
+0anIYbsn94TyT/Won1ZVXbaxs0TAgiQnOfYZ5qpLNLbOqtbspZcgFufy9aTYEzG6Du6WzSxPxvPP\r
+Sraw288clwkI3AcvJH/jwaoC6a6mSNFSWT7oG45UeuRytTSSS7H8+bcjL8u3goR0+99PxoAss5iU\r
+L5zkjqY1Cg++OmKWLy3AL3DkdgCapQyNMv2YMzN0BJxn6Gq8RurO8BFzHHJxtkVyMjHP0yKAsaiX\r
+iRklZtyqSHypzmrkXlTIXG0gjg+tY6/bbSRWRjLF0xkFh6/Wr8VzHcjiQD1jOQf/AK1O4Fz5Bnch\r
+wB97jj86pQW7veNcF96DkM2BnHp7U/zch43f5ccEknPqAaV5ZAvlhcR9mHOf/rUCGCYRt5Ue3nJO\r
+7AAqJpC8uPMxt+7g8Gp/JhdFO9MMPuscU02YI3buBxwRj8aTuMdHLtVlZht9cdKeqgLjzM8cEcVU\r
+ZQr/ACp8vYFzikiV97bJskjovT/69GoFplR33yH5j1Zic1Xk2wNtTc24ZAPI/OpbtPLhI81FOeuM\r
+5qks4bKhv++QTQBI/mSLhCIzjqfm5qUSSbQrzFguOp6f4U23ea4ZxDGrKo5Gc4p4tQLlXcLGwHAi\r
+Xg/XNCAVo9xLoxGenOVb60gEZCiVFxnGcZxUu0AkBSNucHB//VSKjISCAc+nGPegBFiVSTH5bj1Z\r
+eR+FKs5RhuCLzyMNj/8AXUiqHyVwgHBGScmopY7liFQoAPQ5JpiLSTpKhXAY5wDjn8qDiEFmJ2gc\r
+7l4HvVAxeW5DoxZv7vUfjUqSyLGPLIx0ZXfLD+lMLFhZfOXdG64B5O4gflTJvNbAV2XgYzgoajMs\r
+zoMFVXuSOPrxUaG4CBZPLAPUA5Vvwb+hpiFIRnCvEVkznAJwfzIBpsumRzuX27T0I3bf0qx50bcP\r
+sQ4wflOKa00+fllj29sjNIZqoQhAcqp9Sc1J50cjKqOu4nAHc1WMju4AXaM/3etOfEJXDsCeEHWm\r
+ItOFVscgn2qpJIqE5UNnsO9PMk4A3HPqSc1Bhoi0mTjvkYH4UgGmDBLZCjsPSmMY2bYq7mHOWYhf\r
+wqQ3JZDtBIB5GO1NaESquWbb97FAxz23lIkkrAHH3Rzg/Wqcix4aHzhtbhiYwSfz/pUrRM42iEjn\r
+APp9aPsREnGCB3PWpAZb2c2HWSbMYX5HIwMDpTkg85nIC888NzUDiQttbcyrwBnOPw7VZRmXaCdu\r
+R1UdaBi4KF45Dxkc4zn2pqxRRvuWEE99wpZHjYGQjDYAJIJyPX60jSK53bwV25x0P1pgTFC2CUHP\r
+3VPWlWAr8yYIAy3PT2qAzKZ0MceVAwQoHIPP+FWUnj80xltq8c5A/KmIY1zGYt+8kevYVEt6pZkE\r
+pXafvFScih8TS+TI+6MtgKx3bj271baxRSQyqqjgoFouBVE8WdwmA+rdamF1AFxJLGrdCpbpUF1p\r
+dsYf3YkUZyUV8A/n0qG2hgjugDbswPAYtvA+v+NICecRx3MbMBs/vA8Ulw8cu5YEywHLjt9KlaxV\r
+gxS4kXIzhWG0fh6VBHp8yxri7V2HRjGD/n8aABodtsBKoXHG9mwM+9S20SrG7EZJIwQ3FNSBkuvN\r
+eYs2NuNoGPxq550Ux8vcu4ckelNAyIzvl8FQM5K4/rTjcRgjO3ng8k1MLZSAUZWB701oIdhJALdg\r
+D1piGCQoNgxjsetZc/mIGjLtKxOSz8Zq1IREMpGy57E81TuI5J3C9VADMT6elJjRJG8q7sxgLtOQ\r
+Tj8aV2it1G+cKjckAdTinKVRNjbjgcDtRcxw3NkrBF3AemKQyhdDUftMTW0tuImUHbIpYn29KmS2\r
+1coFlvSoI6R/KorFlv5dJujbMSYgoKg9/etvTtatLgbWcq3QAnIP0NcdSjUqOzloejRxFOmrqOok\r
+WkQtJumlklYHt3qaDTbZvmFu5543ydfyrQhKgsVyc9DUqQTSleCfcis/qlKKvNmn1ytN+6Vf7HtH\r
+IyI1x6ZNSJotqxwiZx3C81NNNY6ZFunlVn/ug8/lWBqPi+R42hs08le57n6msKnsYr3Ub0lWk9WX\r
+72PStHG+cKX6hM5Y/X0rk9Z8RS6iwRQEhUYWNOAKo3Vw8xaSRyW9zms0LLO22JCc+grm0lsjtilD\r
+WTuyKa5ZjxxW/wCEtIlub3+0ZwRHbjdGpH32PSotK8PtNOrTDP8As4rsXiktNOKW2QwbIVec4q+W\r
+2i6le25tjLvkFrcCUEb0bcxJ4FQXdzYXdtsuLeOQt0b+IHt8w5FRarciO2ZZSTLJhcYySTVGztL5\r
+ZFSW0myzYUhccjqM9B25r0MKvcatoeLj5XqJrc0Laa3s9r2tqY2YLGT94bASSB75q5C6Xszs9tE7\r
+hvuScOB6e4qzpNvcLKRNHCOclA5DDPTjoKz9Sv7gX5gZozbO5BRA3mKB3z611aRRwpSm9Ny1cu01\r
+usTxEqGIMcTgYxwM4/pTvtDFt0ixhIcD94csDwcZxjHuKS1s90O2FfLIO9XkJYZ9yOfp9avzWt0b\r
+cwMkVzEp3pICTk98g9PpUqrB9TR4eolexUZ4FUySGMYYASOCUVs9PXkd6jjIn+VXkjJc58uUBTk8\r
+Y5LU+SYTmKMwmObklVj4Hvg9PrWak7pqYU2pMMkZG4IzgMOmewrS6Wpiou9hdZcbm+VVbODgY4HA\r
+rmyGMje1a2oTNJM2DkDis1gQpPevBqVPaVHI+nw9P2dJRNfQbRbiZ5GLDywG2r1PtXSwzgxyQxZi\r
+IUbQ/JBPOCv+Fc/pMFuYDJJclJFf5YcH95+XTFaUcsKD96XErPndtwfxH9a9fCK1NHhY53rM1PtE\r
+f2VUUiPgH5uM9z/WqU9lp9yyylI0LgEsdzq34evFRfaElc43TsBsA7AZ5GOMZqSSG9uXUraRxD+6\r
+ARkD3Ga6Dk16CpCxEiw+T5wHURgD8eKgeJ5lLXEMcjoeipkL7j3q29paWdssd27zz7fm5J3HHGex\r
+/H0quhtrw7ILa5TPLBMbumQw5/8ArUWBMc37shpWWOZk27WO3gcgfWnQFbksgUM2Nw3EqCR/TtTI\r
+9PS2gkMJ3XDfd+0xrjPtjpQvmeSgeF5GGcNEpjIP0OTigCe5KPAIZbFlmlHzLD8+MdDn9KltL+2W\r
+BIpYjbyFRlDJ39iDx+lUZDK6iNlyDt3CSH5s9Dz3NIIJJFSOSNHhc53qAhA9eep9qBbmhO0JgkjA\r
+hL4yqSHep9c4PFUoLSyiK3Mdr5e1gfLMp2BunykfyIq4qwWY8h7eXJOQYkJ49SeMUS6bHDA/2VI+\r
+RuBnJck+gJ/zmnYLlSe9mSVhbaaHd32+cNrEj3x0+hqMtm3ImtGZt/zmQjaG6YHvxSC8aOPhJk/h\r
+bfGr4P5VJcxm6WBXhxCy4DLlec9QDwR7UgCaWW1jJjhSIYwHYDgegA6nk9abFBDcAxtGzqOTHk4+\r
+pPakuYhJFEy+bcKGKsE3LtI9F6fnUw1K3ijSGKC6RM5fKHke49KBlGe4nEZimtECgkDEm4IfwNKs\r
+6Mf3Me6PGHBBYA+lbCXNrOsaCHfEQAuFHyc/d9aiuNCcXXnq0jxyNl1Bxt9+Tz9KWoXKN1Pb2wSS\r
+L73QorFTj8/51ekvo5Ikh8zY5wGLrwPZsdP/AK1HlzIyrHsAJIARh07ErnjPt0pgsv3kkk8JRudw\r
+bhWPqSDn8qAH+XcSKBAqPtJLKM5PoRnginSQzSxFoVmUZ5jQf41FlSwOZGTb8u3cqj35HzCrPmgK\r
+2CJOgBkLHFMCnI8zW6O1qgRThsKA3HrViIL9/DYbkZXio0lfzG8xuducx9D+BqcTRKy5AUueh5B9\r
+qEBBFJBLcNGqyY/iZvlFXkh2gQPtG7kBRn9aUSxRkkkqT0wcg1H5kAleQCbeMZyBj9aYiaeCFCIy\r
+iknsRkD3qu1rGI3kZIxls7kHB/wqNrq5uj5bPHFzhWCkZ/PrTYreZmInlklUcFABtx+VJhqMSRI5\r
+MgEKRjnIH51P5ieZlcFc+/8AOlNomP3ZjRR/CxPH50xWiT5Iz5h7hcnmmBMZgfmbcqj1wAaru9q5\r
+3b1BHI4/pUq20s2d0TD0Zj0pTaZBOWGOfmGKBEcYVvusxYc5I/x60KJHJ2hSRzkVKFeXGUbI6MVB\r
+z+IxUfltvQ7niAOBlSAD9aEA3ZKJMsBnuAaa5ViocMXGcrsGAO2DnmrsjwFQOhHUgdaosrSMRtJ9\r
+CeuKBiKfK+4SMnJUrwT/AEpzuk24tIVznjHy5pqwhVIGTzkk9f1p4EYjAdce7HrQgGRKbaMmHDSE\r
+dQpOPwpUd3XdIoDH0FOjCrkeZz7NTzGVONhoAmys6SSvdNCQ2UiBPI+vt79arLe3Cyrv2sOmSKkl\r
+tp1mZI3JXb3A4Pt61VuraaAZO1wR27Um2CVy+tzI0JePawU4KHr+dWFberKdjox6dao2LyfZ1+UA\r
+dwRTmljhdiuWJIGAMAYpgWGnWDAKkK3dRTkmVgPL+YgZA9aijmVmdSWXJ+6w4/A01kUtwyrKOzCg\r
+Cyu/bkk8jOMcinR7+A6j8/6VVtWlWYpJt2EnBz1P0rQUHZu6DOOaZJBIGjQssYY9MCq6RSyp5sgd\r
+Rn7vtVuWVUUsQzcdFHNUZb2YgMkewZ6YzSKAAZ2hgQ3G3PWoTiKUJJKRu6JnrSh2x8xKDoMcUG2w\r
+7FiHY/560mAr2xYlo5ML3A4zSm2DfvQUYr1Z3yfpUSW6RB2Jclu7HIH49qULEuXk2Orcc5JOPagZ\r
+JEk+3dhAxwcgZ/8A1VLDFKiFJrh2P8OH+7jtTlmmaDMMe7tgDGPrUKm625lEW7sKBFwbCoB+f+8G\r
+JNR5jgbeAq8cknGKria6xt8mONezA5z+GasokbzBXKN8gwW5Of5UxMje1S5fzVVD/C2OaktVaFWT\r
+yDHGOVwetRy28cfEjKcnI8xuPypfsqON9tNtGcvtOVb2I7UDJmlid8OSpx0YYpgubdlOJAM9PQ1l\r
+Txh2U5MDBsBjI3+RU9vdXC7oowLgAZ8zPyg/Si4WNGO5OG2xs+OeDgH8ajM0zsybEjHZi2f/ANdU\r
+WiYQPJJIiK3UICcE/wAqZ9miltvJkDrIp6g4B96LhYvnyRGVluI2JHZqo3UHmIqwzxoOPnxkj8B1\r
+qxHGVEYWAq3ALgdhVhQsRIUMCecGjcNitCQLYAvJPu+UuI8Fj04pHhuNxSMtGQAcFcYqzMxEe4Ha\r
+2RnABxVRvOVw5LM7YwwbgZ9u2aQBc6cbhdxWKRz/AHlAOO/zVyd/4dmtXka1Mio2fkTLY9ienpzX\r
+ZNMBDMPnDv3UZyelU48xv5aWMokYE7oZyN34HpwKTQ4yaKuiakNC0iQajciSYNiLcDk8fd564pv9\r
+s6pqBcqT5Z/hQdq5rW5rh9SRLmA+XascRM/Unrk1q23imxhgjjMUkHbCrmuWvCU9Indh6ihrIlkt\r
+nkJM0oUnn5s1XFgXf5GLL3wKtHxPaFtvmMF64EHP86aPFVorkLb3Eh9Sqr/Wso4NfaZvPGy6Ea6M\r
+GxuyfXPStG00xI8AJg57VkS+MCQxFkcH7uZOn5DmqLeMNRMn7uKKPjqMn+tXHDxjsZ/WZS3Ouvrm\r
+LTLByrhZTwgI5J9qy7nXGsLcJI375h83rn0rlNY1y41SS1MkhN0pwQqk4GeCB61vwafZ3Egm8m6u\r
+pTguZ+gOOm0cVNWklFNs0p1224pGek897dNJBkuYyHbqOT93/HvnNSLZNDIklzdmIoMrGGJC856V\r
+0cESJCY3jCA9dgwfzqtJpmns+9kdj6M/H8qiGMpr3UOWEk/eerK8erpJPmC3kmlPBYHH+Rya07Yv\r
+Mv8ApkcZHUEDJFJBBapwMKPRWAqfMUY4Of8Agf8A9aqeLp7MlYSf2dBAjJzExKg+uCanjnmQHA+b\r
+segqqblAcYwfrUi3i4IUqT9Ca5qk6Td4s6qUayVpIswzmaX/AEqFCjApluCPxHNULyCDTwTFOxXD\r
+AL0IYnvjr+NStLI7ABsHrwlZ88MkpO9t5WRdwA5C85I/SoeIko8qe5t9XjJ8zWxlSRsSee/61TuF\r
+IZMHGTk1pKr7juG9FOCyfeX6ilezWRkIZcdCxPSsKMW5nROajC7FtIzLahbe4WK5X5gG/iB9+1aM\r
+2j3MdiJE3C6PyyeZgBB04PSs2HwzcW8xvLnzpYgdqRQ4yRjuM5A9uv0p9ot7JBLHK0aRzqUZp0Ix\r
+znPHJ6en417dCDhG0j57F1Y1J80BsV0bCc210gaXAzsUbjn/AGu/bvWvb30s0Q8uaV4wCGSPYCoH\r
+Y8ZHesuW3W0t2lu2t7mSN9sbtcnBXGcBcE569aqRanYq0e03cIk+WXy2HA9A3JI9q3i2jkaudGtx\r
+bPHNdqyi2KHduDyFx9Tx7HFMtdW08gG3QI9vlxDEdqn1IGMn6VmwWMWpSbra7kuIA+/bPldxPB+Z\r
+cH9KtkraOyQ2ccZVzujG4AdgdwIOfwp3CxqMHvbkK0t3AjR7tqnj/vrGBWfNP5TbLWRonR/mGfML\r
+HuWx1q2ZrmaeN4rkqFPyxbM54wQTkZ9c9aWeyWS6RTbvKdux3VdpQ9mB7/nTYkQXOoTWjhrkQyTf\r
+wuqHC8diR+lOfVILuzWNL5TK43Mq4OR6bRnn/Crf9mx2YTy4YHAG4sE+cjPbjGR9c1QnubQSbjCb\r
+YpkbnVQck9d35ijUNCvDrB3eTJNcxht2CzDnHQ4JyP0qbzYpQ6vdySMThiIwN2PQkn/CiRoLxw7T\r
+F02gF5EVxn6+nFX4ZRFHHtECuqEKwTIOD03Z6/40rvYLLcoSFEjUeTNK2PuxqF57cg1CGkjhYPbC\r
+335A81jtDHnO0fjWjfXa+QQVXzCfMGW2nBHTA4/KqNtL5sRURBAvOB60DLMc8bDZIUGTghHJXPqM\r
+81dW9eBOhBxhee31rNFqqFD5jSLJklFXpk+1Sx24gbaN0eePLK5A/rQBOb5RLE0u2QjuF6fjjmpo\r
+2uzAWS6hRDnJjTcR78niqj27eXkyEAn7qD/PFQiIQxlSY5OflOOfoc07isWFslY7xdmfcSDMrKMk\r
+fnipg+pQsu60EsOD8yfPu+pHAqBLy4AQecdv8QEYwp+g6ilX7S0yyq3kFv4kXaD+XFAENvdSTSN5\r
+rhdmQQCZB7YA5/Cr0v2dLdJvM+bPUqQDntjqKsWkXnD99dSGTbkZPyj8e9Qsywv82RxgM2SP8/Sk\r
+F+xA9uzNHKsu7kkbmHynHTjtSylWCJIyEqc4A5B9jTyZEt+ZVk39wQQP0/nSxxMsYYIzjPUZGKAE\r
+EUksIZUAXngnP6VKQAqq/J7FeakU+UA5bbuHQnocVIIkdAFXDnk44/nxTAoP5so3vbn5ejck06F3\r
+DozYck4TcpH6U+5mnyRG8n7vqQuCB/JhRHFJcKwYBxnpjG78qQFppFlRlktyCBnkDafoarPs80LF\r
+LlupUYyfyqFo5/mVFmjGeikZz7kYqNNPiSQtIZxMOoDdPcY6j3pgXY9yOWYSJjr/APqpXkH3o2Ab\r
+pkrn+R4qMTrFhDGzIBnzA+dv1B5/nUc0rsGaMKAcbCCDTENeIhzLhgx6MGOM/Q0jLIZB5+47+Mj/\r
+AA6GmW8kkm+NgxwckYpzmMfIVI7gjv757UhkotH3kKVdlPGTjH6UrQzrGcqHfOQFUgYqKK8BbDu2\r
+9TgHZuP5nA/SpTOzn/WyBumdoUfoaA1GIzucRoAR1DLnFOURynYwZX7gHI/+tTDbliXMxlJHOe/4\r
+g01mKRlRFI2ePkO3P45zRoAya22kK0fHqD0pw81RgFGA6En/AOvTIr2HOwLIrDquc1PvB5zIPbik\r
+BcfzJR5cMARcY3t1NRN8myOU7mBwcHJp775gxHmbSAQFbjmmRQeUCc9cEjGTTADLEqjZK6jOBgZy\r
+aas/mSlTG4/2yop6RwSKxMbLg8E96clq4AZGZQfXrSDQuTWFqum/aILje7/6xNu0AD696yJl2qPJ\r
+kDMP4X5Bqf8AeK5BUhQCCxoJjiXZhST95hwfrTYDVu1MLnbtJ4GeSM+wqC181JATc7Ih94E5Lnvg\r
+flUsMTFnKvvLc/N2+lRSRkDbJ8yg5Ynt7ikBekEpUEPnI4XGOPfNNlKbQEmUN0xnmoZ4hJax+QW2\r
+jA+vpzRDbzwg5jDyMDy56UANckMeW5HJzx9aie7hiVT5jEt0UDk/T1rThgMs8YnIRCw35OcDvVjU\r
+rGyW8QWUjuhUbGbAPXpjtTDQyYXWSIRGKRY3O45TnJ757VqRQJCFjCdP4jz+tU1dYhIu4bR1B69c\r
+VcS4iCDa/mSHqTwoH0oQNj3jJkU7nAHPXg0r+WCp4JJ6EVFNqSFI4GgCkMcOp6jHTH1pkl2gX5o2\r
+Un05x707IRLdQxyxjdu/4D1FU3062MLxxgI7jlupNLMsdxaswZpCoOPmIIz7Cq1rM9suzylOV+Ur\r
+1P1paBrYtW1pDZRct8wzmRjziqslxCGPmSQgLzjGT7EmnyzI9uFmI3HG7I4HriqctrbSyP54baMb\r
+Ru/nQ2NE0gguY0LbTG2Cc8ce1PsrS2VpjCzOScn5v0odIRtVNzKeAARUk1mvlqqWxTywMNnJP+fe\r
+lawXENkGn3+Y6EDG1T2qZki3BA7mTHU8mqgkYsvLZ6FmHK9vwqVLmSItHNGxbGFIJzTDUUpPI6pJ\r
+NtTtgck+57U24smdCC8pJP3hwc/4U6KeKH55JWdTznlvxpH1ItMFKiNB1brn0+lADTaXLRKBPNhS\r
+ARIA3Qdc1W+zNFAS8bblx8mBknPqKuR3UF1I/kvG0nTcHOR7GoLq0mmtgskjPJuG/wAodvQ8+nFF\r
+gJWlt7bLKjh2528j8KVYlkaYSJD5a8b42IZT7H+tVoreXgMiptG5gVLHrxj/AOvT7XdLOyxtGHCb\r
+dzNyxz020gM1NAsLi5aUSPdbs7t75I9+Oc1Un8KxujzWtwWjIOxXXr7ZHeult4ktVGwMz/fYbM8/\r
+WnfaLaSQyCSJQcgK+VwPQdvbihxuVzs4SOwitpXAkSRDgB+gU45BB5zTn0uSSJpooyzY28Dof5e1\r
+dg9pbNM9z9sjcoGIDgYTI496yre4JhliIgbLA4cEA888/lUOI+ZlGHw95IiGoLIjEkAEZT25BqWX\r
+RLCB54v7PnlcD5CjEjcQcfhWuNRdVKSEJuHJ3k4796nW8UWAQ/NDkq5B5wT1569afIhc7OCKXFip\r
+tzGAeCR9768/WtDTNRutPiZ2iaaAMA6LyVzzx/h0ro5NSRI40W2gK4/124KgXnjpwfbmsLVJ11C6\r
+ha0kdML+8ULx1xwe/H8qmVO61LjNp3RrLdpNEksZBSQZUjuKjMrBvu5FRRnfKYIwP3ajBPH6VLEd\r
+0e11+cdTXL9UpOWx2/WaqiIZMD7wH4U15HI6q3FJ5Du5wxOOyirEenvJg8L65rGphaS62N6eJrPo\r
+UvNbI4zj0NPWXBxtPPpWk1lHb8uuT7mrMcVsqhyo98DH61xzoxT91nbTqTfxGXFaPO2FeRD7Oc1f\r
+W0gs4GLyl2PJ3tkmnS3EKJkSKij+6awtQ16GDKxHc3qBThQb0Wo54mMd2RatPDAVlAkSQnapJ6j+\r
+ZpdOlvJXUWcbuV5JA6A9+a5Wa4vLqcyySsxzwc4IFXbGWSGTcWLBj82TkV6NGjGFm9zysRip1Lpb\r
+HRX2pSwvOzIg1BvlLJHtMSjsCTnNYz3N3EBI0zhkI2qeQavJ9nvrt3ldxGBtD7sHpj/IqGewTg7g\r
+xPeME/pXW5NnAkkrGlHPY39rJC9uJM456bTjqG9KoNLp1o4C2NwMMclzwD2x61XtbS4/ePGJYgG2\r
+lsFRz61qQnUf7SVXCMkYUtuXjbxzSvcBAk9/byH7UltGzjEZmGXI6HHX0/yKY8DLIIru/f7QcCSJ\r
+vmB545PWtC8l00SzCGztN+7fuCbSOh4//VVO9hsr0/aDHPPMy8qhwAe3zEA4+lXqLQ2LC5giO2RQ\r
+PLJyx7noRz0qebUGknYWwQSOuU85QcY9weK5pZ8RsZfMWQfcUt82Qcck9RVOKS9gnY+eoXaVZH+Y\r
+Nz0/SjnSFy3Ogk3PIgu5EiVfSXLs3Xgg8fWqVzZ24cFo3jiY45bJx15yOmarRXCsjB4SXycbUwAe\r
+o5PQe1T2piljLySkS/wMGJwfQjrSvcdrFiztxbhNo2yPkAq4wF9+MGpWtJ97L9pGCflVlwfz7Yqs\r
+IJ7YrGs7bSMjt1oMksUoB2SN13gfMD6Z70CNBIJWISWcMi/NuRQWU+x6UltJ5JaOIq6ZyN+TgdeM\r
+VEouImWQtuHptx+dW45hHtQgLk5UZ25pgRNIsbMxbrk/ITnH8jVi2ltxJhsO5HJX7v506KdBvTYA\r
+QcbGGFOP0FRzM0xIjscIOfkGT+YpiJZbpd3kIoSIZDLGDuYHtUL3SlPLitnfHQMuD/jU1ksUrgG3\r
+kCAkk7eAfU96S5W3QnEuW7YGKLgUdPkZ5H6FXbcApyVJ9c8itFZso+0EBRtO7qf/AK1VeIpAiYLY\r
+yGjxx/jTiH5Z5cqOgGN2fcZpAWhMZIdkYYMFGQx6+vbpQrOhKh8Be+Nwz7VnCaFSW3zhicFgcfof\r
+8anVomwsqhyBnO9gf0NO4WNNJYiqSs5EfdlAAP1p8QjBDLJIwf8Ag38+xqtbJbRAEGOFTzlXO1j6\r
+inNBAgd1KupHCE5H4UwJXDyyeQAwH8eSOR2OAf5Ukk7k+RDkuMqQMgofxplvCktuWkt8KxwoX0q1\r
+AICmIidy9QScj60C9RitN5mzM23b0Y5GfahlZuMjGPepwJFwCSRnjPWo5RMP3iBSc8rvxke4pgVx\r
+IFkKMWDD0Gaa7l2G1mU9Q2Pu/Q1KwJkBaPDEdVyCKhcR+Zub5s+uf5UhiS3CwSeUwlkcjO4AMR+F\r
+V0bYfMjjTnljtBb8hzU8621yzFGk80Drg4/lkU2XTIwEIKtIp4Dnr+PWh3ERxXkLSkZj80HsGU/l\r
+ioppkSVnaXHHzR5/X1qywuFKqZolH3cFNwHtk80y6aOEKbqRWf8AhGcEj0oGNLLNiRe/X3qR/lwT\r
+091qJGYnKx4ixzk1JyDmMjb/AHSaQCFCcHHXoc03zDkqV2+hHBH408g7MyKR6MozijLFAww6+6jm\r
+gBP3ZfPlnd/ePzU4MgA3IpPqrcfqKN8R4UEMewyKUxFuec98GnYCSXzEz5RYKoH50ga5Kg78464p\r
++5JQCzlcHGMUMnyMQ52j+HFAELyBX2vIwUjOMfrVhL9LYhyPMTJG1uR0quY0bLs2+R/lCA8j8KBH\r
+GI283zVA4JHBo1DQjluGuZiIgxUjnJ4FQsZVICmMlcjB7e1aVvNaRIVPmDd91nU4P44pXg019zEI\r
+xJLMMnkn2pNNhcoxPJHDwiIpPUCpY/KA+ZnLerfdqaaGOLTUEaBBF9xCfeltvLVw2CMjnnIP4UWC\r
++gATzZMO0Kx5JbP6Ul1Olom5neRz0wMgVNKxhQYI8tzj5eD+lU7jzfIaNWygGcDpQA6O8Nwu5Wwc\r
+8KoIJpytMhZ2+XIHLDJ/D0qKCNlYMjEE9C/OR7VaCzS8ybFXjH8RNO7DQqSEyI0j7jI5OGc5L+/v\r
+TITMsjBz14Ufz4qzLEGuFdmZ1XO0Dsaa0e5HIAGcnceq0tR7ldpAZ283gY5FJbM012I0kby1Bb8j\r
+0qaDTxLErSSlgecY4zUlnataSMTtZm/lSQCNKRM3H5UxkEyn51G1cE4K5NXGZ3i5XZk44HIqGVEg\r
+BkaQK5G3b1z9B60xFRrXc6nczYbJHU57Un2UsCwLhgTwec0mZxu5fdng91FNLTbSJGYgDhduc+wo\r
+C5LYo6q2Qo3YKMRgj86see0d0Ink+UAfKR94mqc89zblQI03ZGFbjA/Wr0bRvIjlfMfsVOcD1o2B\r
+lxYobyHzVZCCpAwM5/Gqj2zwkPDKPl/gkOc1bMxhONqLzkZPDf4VXkV7iKco4iYAFTkMSfQ4qrC1\r
+KRkEjBZVQsM9+dvqc8etBjgntnUI4BGVz0xUab5C6+S0rnoxj4J9Tk8CnyR3HllSBuVOY05ANSMZ\r
+GrWe2OHywuQCqjp+XenmSRZYzPIUHGCG5Y545z0qvNZkWKRpK5c8kt/I/jTJB5FusmR5kY+mKLhZ\r
+Fp3uJJFKS8KwHBGWolxKImO2R1PysT09SR1/yKpC4/c7N0ZY/MHLds1BJH5hEwVw44IX0+tK47G1\r
+Nfva4ZSXTHO9ug9cVVTVEvS0UFtsmYfIUAOe+M1TVbuZxHLCWyOd3JUe49Khm0+KOdy2Y0jwThsE\r
+j2/Xmi4WNS/kabETRQiVCOSVLep5A4FQL5ZtSDNEsi8EF127R0x3zTlCwjy3AVlHEkj5Jzx9fxqG\r
+SaZJlkQRBUIOGGTx6ihsBskE7wlwojfPDHI3j1ANVzHumMhkIVV+6MMfx9vWtCbUpb+FeEVfm3+n\r
+sP6g1lmTywyIzKQ24MzHOe4z6EUtmPdDAUniIZ4QU4CjLMfTaOhqnI6zSGKEEy7gEI65zxUyvFFf\r
+o7xgxZ3MqHp9CPcVI0UF27zlRDklx785NIfkabT6dp6m7kuEkLjaY4zznvzTTe2rjOxUUjO1jzWH\r
+cxqIQwfzCvTfgDn+ZrLVpG5bBLdDt5rmnTvqmdkMRbdHaJrdkvytJGhHHLDNRza5a24LLMGz/dIr\r
+lfLl6B8Z9sGo1hJbqSvP0/8A1VisKn8TbNXjZfZSRv3Hihsf6PACR/FjNZUus3tx/wAtNp9u1RRx\r
+MM+WVG7jOOtXLOEoskj26SFBjYRwf8itY0ILSxhLEzerZTR55lUFyeedzgYqFoQ7En8R1rRiiDyx\r
+sI1dicPGRjP+fWppoHlmkmuI1QKMBUCgEDjAx6Vpy9jNTu9TIWJc9CcdsVISI+i545FXJBGp+QfK\r
+PrzUGz5xjO4+360gbuiuvmiT5V4PUZ4py3UsPcpzkcA1Y2ksYnZVxwG/+vUgsd+3kHdwhXq30q1d\r
+Gb13Ift1xvLrtAOMgd6twalJNkOhYDptPTA7e3tTEtI0lzM5RuuCfyqYSW0QCxRvuySzccD2ppkt\r
+IeGeVsjCZGAnGKeVuQDJF52xOQx5A7YHp3qlIoMmQcBckNgA1I11cGHCTE4HQU+YLEsqNPsjuncM\r
+oyrduf8AIqPyvmMe1vk5Y4x+P/16gtJG37ZCSPYZIrUhSRyEd+T0X/6/ajcNiPDQTbmRH3AZOSeM\r
+URoz7nUNJKBtbYP0pXj2JudGZW9P89aas0kAdoVAJXGWHzIKa3AsbwsjRSzKpUAsygsT7VJFMHlV\r
+YopGzwu48msrLsfLRFdj1bHP51oWU9wkqJjOw8YGGH400xGg6uGzI3zDj5W6VFuVH2FC2f4jU1zb\r
+M7L5YYPjJGeKpqssLMAgIJAOQetNsSVy2JXWPCKrZGCSc061u2SXzY8q6LyvOPx9anRJGCsLYofu\r
+tjB/Q1B5AtmkkaIqBk5c4JP/ANemgINR1C5uJ9z7Aqj5cEnB9fSofO8+ERunzg/KyjJJqRWN0qu+\r
+HUHBVsDj24ogs2a4L26su1uMHlaHcBY428xCkuAw+6ydTSefKLhliiZQMZLfzOallsZ2lfDR4HOQ\r
+ec0yGOWKVRLIsTKM7m70AS+axRoDHEYz2A5P49asWmnySEhd0UbdfapYbOCR0uDKzruz83AB/GtF\r
+5FAO8MqgY3YyP/1U7CuUZCbXbbSIvOdrgcn3qOdjtDKI2OPmHQkelF9PBsGCzuhyoHH86ZiYFSLd\r
+sNg4Zxj/AOtQCL8F2kkLOY9qRjBAOR/jVaYR3hEo2wYGQwPJHuKURzKNwIIB+aPtQq4xtQqAM4pg\r
+RrLDGChCnHKuhbafrVuF3nhMisjMvBC5/rUMRe3be21VY8ZwOKfLHvHm5jIzkSRnHHuRQBZLMkQ8\r
+zcQepx0+tMUMGCr+Dc1W+0GLhJfmPYkOPyzmpfPEqASEcjBG3IJ+nagRZiVkJO7OT3NPdS7YZF24\r
+5NZ3neUVX7OcDOHOOPpip4XXzPMY+3yE4/EdqAHyRmIZRV2+nqarS2xunMcrnIOVGOlXTKyuo2qV\r
+boRTZw5ZfLVSByeM4pgUktJYgwKBsdwetOSzLrkqQfyq3NJsiwgXfxgFsVWMN9NvL3KonYRjt9et\r
+ILkMoMZKMVHPB4OaPmYKQxIAx0wRQESPKhzz1LHJqIo4clZflHJHqKBlogMAEI3/AMQ45FHlg9Yx\r
++BFVQsWSqMM9doHWrUUdw0eVEeP9oDNAmSW8hR0iYbkZSxYfw1KRGR0IXHXPFQxRMAXLEFs8Yzge\r
+9QhpI59hkDA9FI/I0AWI4QAxXOCeBmhkGeZMAdOOlUJI5JTuklkPzfwj+XpU43fNgkBjnY2T9aAH\r
+NM6FjHhgy/ezkCpI7rEDNMPMk6bUHH5mqsmIlLAuuOdqof1FTWc00z5mKrGBnAGM/WgBZXFxGJHj\r
+UHPAzkiooomaTgnJGFGeKuyQzH/UN5i5GGIAUD61Ve4ZVKOu3PBoGJGjDBDHcDnBOaUmSVWUHr1G\r
+aZE8cchERDPzzkk4x6VIhWEfv9zScZ2nj8qAFhjkE5ODHGBtOCMHvkE1NOhhh3w9R2PT60PEFbMT\r
+ZJ/hY5A+lSh4rcK7Ou0/f356+woQiqgkI8yS5DBuij5R9eac4WNS2eSMZUdRVlZkcsFQEEdM5qFS\r
+kM+7DBGU7gBkf/Wp2YDNxDAFgQvI2sB+VSbCvAcMeuAcEe9MTyArKpjIYcZ4IprRzM3yyDHC71br\r
+9aQE000cbKX3BsHHvVKW8MbB9nQ8buv1p6xqiEeapKnJaX735Uph85ADGxBHysx6Dt0pDIDcSLvk\r
+CIm44w4z+FW4HklUFFOwtg7h83vwKLlQkfyOGPGQ644qpcXYihLIZTIB0BwPf6Gn6gWLgLHasXH7\r
+zOdp9O2aqw6jH5TlkCFSSBuwGHbmoAZJpYnl3NJ0bggBff6VK9oyTQufLZMjIxjcM/4Ur9gLP26G\r
+WPcZevQgcA/1qZ1E0bqdqsCMeWMBlxVWW+ijDbIMhcY2rjin2jgqxljMfmKPmBJIHtTQEslrgl4i\r
+I2C9j1FQTsDAfL3oxHOTx9R3rQuUd4SIXA8v5gDgZH9agVI3U7juQYVlHHBznj60CuZ9vbTRI0nl\r
+DB+86jnHrzUEsaSN8xk8kocEf1/WtmWcx2byRlUVRgo5ycCsln+0xIwkVHJOFYdfpUsdyrJao67o\r
+wODgegH9KcZVtkZLgnceOOMD/PerF9avbwwvDIrHbklW/PjtWZ5s17KkABdV6KWA4PUAmptYolF2\r
+HncqSSBkMpOSRj5als1d7oyXhDKkfmEE+/p7Z71djEkbCR0EUWCIwpyGbjA4HTrTrWVY1ZGIWUnc\r
+3IbcO446VSuJjIb+3mmMMkJfzOV+UEj259s1VuoZVuAYpFZWJyXAOPbp6VcuZkeNjGzBiOWbgD/6\r
+9VntLiYSfZnKwKNx83nJxnA9vxoYIz44ESV2hLNK6YCcjPr1PbitaTTGhtJJ3eLcqFigUthvTk1S\r
+sZraG+/0qcb0UqhUAKCcZ+vpV+4vY385V+YINp2jcOfTFFh3MWRQWEqsuWIJ2Doc+n8qt+XGsgEj\r
+rLtGOnTjA/GqflYhO1BICodNo6jOCafatJbXDxOr5ZcKSMhe+cetShhqVuZYYy2MuBgA5KgZ/h9f\r
+0qgISZm2kHvyePc1LLtQyBpJBkfXnt+FMEo2bBCTK7DYV44xjGO9S2mxonKIqk4JA9MDB/L3piuq\r
+EeWMTchSACRkVG8xmKKMRsF2lQeOO9T29ykSIrhSQxLEHBI9KNNg1Hi02iMShlDD5Pl2hvx/rT7t\r
+FiuQggzGc4VW6ke+adLeRG2+V3JQY2scjH0otnKKJG/eRFvlGQDu78c07CuUGm3SxyRI4KAZB5/H\r
+6ilVxMu6Vz5j9Xx0Pv8AWppp/OEuxRHKxJ4zyO9UcjIBByD61LZSRKUDNKfM3EYwVGOaYIZeANoP\r
+XJP8/SpYrryVK+TFJz94jn/69MRpZGKDAyeTkjI/wqdB6jDKImPmQgqc9P6VA5aTASNuud1WvJWa\r
+N1OBt6YNTLBIivEq5bbuDswX5foafoSRxQuqDzpQM8gM27FRfuy7Ft7oeMqMY/OhJC3y5A5x7nNW\r
+bwwCNIokbcvJfII+nHWgBLWykuA6oVK9VJ4z+FSC0e2lKSsqLzkgZGPwplrPKqj55ETuFHU1ZjUz\r
+HMzk7QRjPXNUtRMSG5tEDRtuZEzgjgsDVv8Acf623C/MN2GJJ/8ArVnXRt4JkiUJIAPmKdvb396t\r
+2VyY54JWjXy3Ubtp3FOapEsnuGE0DRrEY969A/XHf6VWt7WRotvyvG/HPI962HuI3cEWryBeNxAq\r
+k1zDaS/uUO7lWRzgg+vHWnYL6GZHZst40UUiPhioPrVnT/NF1KGQuOQwJ5qV3MyiZo1wCPudj6j1\r
+NNsrxYrsqAQrDGZBtIPqcUktRs3LVkiQ7k2HGcHoKq3d/bWx8xVVm7HuaSaeO0gMsm2RyMbO3t+F\r
+c5I2+5LmLGRkAYA//VVN2Qlqab6vcXHC5R2wMg8Yq9bQPLxexzF+7Z4x+NU7OwlMiGVQinnZnnHt\r
+W+ZY44vLfczAZA3DOPxoTbB2RVWKG037Qjo3ZmAI/DFMjnLrkRY+bGR0+ufSq4vri4M0a24eIDOC\r
+QQPqfWr8MDy2So0WxQv3Vbt6UxNGcwZZZMhsMOT90Vcxttwv2fnGG/eDJPqPQ1Qu73jyUCKDxlyD\r
+gU+wurOBWRnWVz6qcfmaV0Mmt2vLm4UwWm5bZfnVlLBfdvSr5uJ0iLTRKyk8MmePY1AZbmWOOSHa\r
+kLHaSqcn61NNAWKqku0jqFH3h9aq4rEIldpQyRnYOBzUqTOUBMQBLYJLZpIoXjiKMh2Z+XPGKh+1\r
+RRzGLcCRyFXnFIC5K7IN0kZweMoBz9c083W1PlhkfHGCMVFFdwyfJljn+E/Kc+nNLyzkCHBAzt3/\r
+ADfhTFYqs9u8pdwYiRnY4GDVj7VbiPC7lxxwpBx+NLJ86mMxsuBk5Wq5tUZ/uEHqMGgY2VGuOXld\r
+o+oVgvP5Cn20c8bhYyozn5pFoVGVygcR8ZwT1o2LNJsdhj++ScUgJZJbpFyEaU/889pGfcNR9ogk\r
+TdcQiJ+xcHn2yKZsaNyu+N0B/h9famNbmXB2ZXuWAGf8aYDpBER93r02pj8s9aSNCFLRjBHXDYan\r
+bFChfLUADqKiGfN3rgY9RxRqBZAaePDo24AfNnn86RWljC8MD6f/AF6jWYRsxjT5iCDhsg/jTURU\r
+U+VERjnqDg/jTEPupHcDcjfXGBUAnkXh4guBkMCSakE2FIMRwRkgKSKSKQTBVVWPP8QC4+nXNIEM\r
+UqSZPv8Ack5/Q003LjiRSWHqM/rVpovlO5w6n7wPFH2dYwFWFSPXYTQBJ5S+dlC5Tpxnrj1pZCMq\r
+EVyw4JPYVZuCVtTg4z6UiD9yfoKaAphwHaNwVwM5/vU9It43CQdepNSYG9uB2pbQDdMMDG80gZE4\r
++8GLnPDYOP8A9dJGV2lAuTgHB4xU6AAMMdxVLPz/APAzRuM0I7uKNCj4Uk8YBOaZMyyLtGY88lm4\r
+OPYVnKTvxmtC1AIYkZPvQK1jNlsY93mRuwlzjeeOvetFI2WMB/mk28uoB/OhAMvx/FSkn7QwzwKB\r
+tklvI28+amCF+90zReYkaMbSRjpxVV+ZXzzz/SrKckZ55FMWzIpn2Rp+6VWHbvTHct8rxKW74OOM\r
+dahmZjewAsSD2z/tGrOp8acCODuA4pDIHuYTCxCsCew+8Kajh41VklGccD+VTaQqm0mJAJDDBx7V\r
+YuWZfs4UkAtjg0AVLucWkYHlqoPXeoz+lTQOWtkdP9WB2bJqowEmovvAbEhAzzWooAQ4GKBPQqOr\r
+3APysvpu4qraWri5lMyyc8pIOnH9a1pAPsrcD7pqG6JSOLaSPmHSgLkMpBcOHU5GGYn+nTNPFuJ4\r
+RKgDsQMNj7w/wqK55kJ74p9k7fbCu47QvAzxQg8ypc2ssYaQR4IHUU7TEnYqZNka7SRxy3ofatyU\r
+fu/xqLYo/hHXHSl1C91cyLjzHkDdPf8ArV+2a2Zf3jHzQMHngH1qvfgCeLAxVST/AI9pKY7Ed/LG\r
+9w0YZpY8lm2nAPofwqjEkmSI4t0b8bsdPb6VPbgea34/zqtfMVhO0kfKOn41D3KHSb4LJsMRLu+U\r
+jsKI4vNaJk5iYF2O4DcB147dqVQDLHkA8D+RqaRVFicADMwHTtigAhE6SR7ZAQcgKCfmPb2zVqeb\r
+5BvZY9q7SSR9M/nTJ40We0CooG5jgD3FLegeeD/02A/WnckhM6vdiNtnlsMLIOrD1FJcwys6p5ji\r
+Db90H+tVck20uTn79VQ7C7mXcdozgZ46UwFutNk2hlGQOSTxgVLa2u21G4MpJzlOfqDj86zC7McF\r
+iRu6E1ZhkdLu3CuyhhyAcZ5qOXUu+hJPIYxvikfcnClhx7gevWkeZ2nCyOzcfeUAUJJI1y5LsSGX\r
+GT0pq8k5/vP/ADoeiEhxdCqxkDZ0YtyfwqxNpy2soMbhiMMjgjI9PpUFoAZ4sgdD/M1MjHfJyala\r
+jehnzJ5QKsWL8sSTkc1X/ecbufQirt396P6mpAoNnkgZDce3Wpe5VytF0BdGZs8Yp6K6t8rYYkMO\r
+vHtTlA3x08kmTknqaaXUlvUrXG+KNi5+Ut1Y5x+NVWQHDq2PQGtibm3Oeecfoay4v9WallxY+OJm\r
+jYl1GBna3finxQyOxCjjGSelNdQCMADn/GtaBQ1pcMwBYNwT16Ubq4N2K8MbElA8fAyCepqOeFDc\r
+EuGKhRj5sD6e1SPxdHH90VNAAzyZAOAOv1q0tBbleCBADIUVSByrdeehFPeEzzBDFluRgcdO5pCS\r
+Y4QSSAHAH40ywY/bJVydoIwO1DXQRTaV92zC4HG0dBVmIMU7FQpJGcVUugFvZVUYAY8D61qzKo0i\r
+M7RnzBzikgZUskiadRlMYywkbH5kVp2lvbLdyqZfLQKAB5gZXz79xWdecSQEdeOfwrUiRfsSNtGQ\r
+p5xWiIfcld1scD7WzKegwGx/9aq7QCeR5PODDdkuTtXkc/jn0rJt2LahGpJK7xwelbOqfLZqBwMr\r
+wPrT8hPQrxN5isqxsxU5yi5IxVZ5PKlLS+YoYYLuv3vp/wDXqrM7C44YjPoarSszRnLE8jqazvoW\r
+ka7z6csG8LMznjAwoNNs5IZpDLMu2GEY5Oep6fjUdqA1owIBGH6/Sq8v/LH3U59+aXMCRsqtvNcK\r
+1mjucYxuKge4Of0qaGKC2uwj+bNMRjb/AIg81S0pm6bjgZwM9OtQRyOdUJLtncec1qtUS9GXbzUJ\r
+ICwCukhGFXdgKPpgc1ViuLrUHMSzSlMchm/OmXrs92hdixzjJOa04lVbaLAAy3OB1qbtOxVla4+1\r
+0tLOKW4nZZCiZ2EZyPbPX0rGgmK3ZePajEnAIyK6Yf8AHlKO2K568JOqICeABgenNNiT1NqFJ5Yo\r
+ihMeR823K4Pr71at5Li3lYSGEoccyMR+RqzB/qV+tZmoKBqLKANvmDj8KvoTe5Fq5td8ksU6vOww\r
+Y9xO36Cl0eETFZmYSyL0ycEVlyki5lYdRnBrY0QY06Rhw2CcjrU9bDeiL0sTSSnOGwPulO3pmmvP\r
+HFEQYtpGNoz836VGru19EGZiD1BPXim3iqJSQoB9cVdrCTuTT3Eh24zzwCvP5g/40w+fuCyMrAch\r
+ScA1Hb8sKszctz7fyqQDZDn/AFZGeRg96j8ol8heB6mpGUeaowMVOeXQHkHOR+FAm7FR7aNvmjkk\r
+XdxkNinhnjRVdjJg9+Kcfl37eOO1Uix848nrTGTlZN2Q2Ezzx298VN5cRU52YYYJ/hP41DJ/qJfx\r
+pLYnhf4SOR2NIGEMcMTM2xyVOCMdP8+9OMxwURBtJ6t1H0obq31/pUPViPegCaSNZZAquHA5DFeK\r
+aY7lXLCNSgPEg+Yfl2q0vFuD3pzfcBpiKjuR8zjr1yuB+VSxRnZwNoPbfioh8zkNyMHg1moBt6UB\r
+sf/Z" />\r
+</span></p></div>\r
+<div class="paragraph"><p><em>Image credit: Tim Green CC-BY 2.0</em></p></div>\r
+</div>\r
+</div>\r
+<div class="sect1 slide">\r
+<h1 id="_overview_of_cataloging">Overview of cataloging</h1>\r
+<div class="sectionbody" style="max-width:45em">\r
+<ul class="">\r
+<li>\r
+<span>\r
+MARC editor\r
+</span>\r
+</li>\r
+<li>\r
+<span>\r
+Record buckets\r
+</span>\r
+</li>\r
+<li>\r
+<span>\r
+Tag tables (+ SKOS)\r
+</span>\r
+</li>\r
+</ul>\r
+</div>\r
+</div>\r
+<div class="sect1 slide">\r
+<h1 id="_overview_of_angularjs">Overview of AngularJS</h1>\r
+<div class="sectionbody" style="max-width:45em">\r
+</div>\r
+</div>\r
+<div class="sect1 slide">\r
+<h1 id="_building_a_new_interface_eggrid">Building a new interface - egGrid</h1>\r
+<div class="sectionbody" style="max-width:45em">\r
+<div class="paragraph"><p>Playing around with global flags: <a href="https://webby.evergreencatalog.com/eg/staff/admin/config/global_flag">https://webby.evergreencatalog.com/eg/staff/admin/config/global_flag</a></p></div>\r
+</div>\r
+</div>\r
+<div class="sect1 slide">\r
+<h1 id="_eggrid_index_page">egGrid: index page</h1>\r
+<div class="sectionbody" style="max-width:45em">\r
+<div class="listingblock">\r
+<div class="content"><!-- Generator: GNU source-highlight 3.1.7\r
+by Lorenzo Bettini\r
+http://www.lorenzobettini.it\r
+http://www.gnu.org/software/src-highlite -->\r
+<pre><tt>[%\r
+ WRAPPER "staff/base.tt2";\r
+ ctx.page_title = l("Configuration");\r
+ ctx.page_app = "egAdminConfigApp";\r
+%]\r
+\r
+[% BLOCK APP_JS %]\r
+<span style="font-weight: bold"><span style="color: #0000FF"><script</span></span> <span style="color: #009900">src</span><span style="color: #990000">=</span><span style="color: #FF0000">"[% ctx.media_prefix %]/js/ui/default/staff/services/grid.js"</span><span style="font-weight: bold"><span style="color: #0000FF">></script></span></span>\r
+<span style="font-weight: bold"><span style="color: #0000FF"><script</span></span> <span style="color: #009900">src</span><span style="color: #990000">=</span><span style="color: #FF0000">"[% ctx.media_prefix %]/js/ui/default/staff/admin/config/app.js"</span><span style="font-weight: bold"><span style="color: #0000FF">></script></span></span>\r
+[% END %]\r
+\r
+<span style="font-style: italic"><span style="color: #9A1900"><!-- load the page-specific template --></span></span>\r
+<span style="font-weight: bold"><span style="color: #0000FF"><div</span></span> <span style="color: #009900">ng</span>-<span style="color: #009900">view</span><span style="font-weight: bold"><span style="color: #0000FF">></div></span></span>\r
+\r
+[% END %]</tt></pre></div></div>\r
+</div>\r
+</div>\r
+<div class="sect1 slide">\r
+<h1 id="_eggrid_itself">egGrid itself</h1>\r
+<div class="sectionbody" style="max-width:45em">\r
+<div class="listingblock">\r
+<div class="content"><!-- Generator: GNU source-highlight 3.1.7\r
+by Lorenzo Bettini\r
+http://www.lorenzobettini.it\r
+http://www.gnu.org/software/src-highlite -->\r
+<pre><tt><span style="font-weight: bold"><span style="color: #0000FF"><eg-grid</span></span>\r
+ <span style="color: #009900">id-field</span><span style="color: #990000">=</span><span style="color: #FF0000">"name"</span>\r
+ <span style="color: #009900">idl-class</span><span style="color: #990000">=</span><span style="color: #FF0000">"cgf"</span>\r
+ <span style="color: #009900">auto-fields</span><span style="color: #990000">=</span><span style="color: #FF0000">"true"</span>\r
+ <span style="color: #009900">grid-controls</span><span style="color: #990000">=</span><span style="color: #FF0000">"grid_controls"</span>\r
+ <span style="color: #009900">persist-key</span><span style="color: #990000">=</span><span style="color: #FF0000">"admin.config.global_flag"</span><span style="font-weight: bold"><span style="color: #0000FF">></span></span>\r
+\r
+ <span style="font-style: italic"><span style="color: #9A1900"><!-- actions drop-down --></span></span>\r
+ <span style="font-weight: bold"><span style="color: #0000FF"><eg-grid-action</span></span> <span style="color: #009900">label</span><span style="color: #990000">=</span><span style="color: #FF0000">"[% l('Test') %]"</span> <span style="color: #009900">handler</span><span style="color: #990000">=</span><span style="color: #FF0000">"an_action_handler"</span><span style="font-weight: bold"><span style="color: #0000FF">></eg-grid-action></span></span>\r
+\r
+<span style="font-weight: bold"><span style="color: #0000FF"></eg-grid></span></span></tt></pre></div></div>\r
+</div>\r
+</div>\r
+<div class="sect1 slide">\r
+<h1 id="_eggrid_angularjs_1">egGrid AngularJS 1</h1>\r
+<div class="sectionbody" style="max-width:45em">\r
+<div class="listingblock">\r
+<div class="content"><!-- Generator: GNU source-highlight 3.1.7\r
+by Lorenzo Bettini\r
+http://www.lorenzobettini.it\r
+http://www.gnu.org/software/src-highlite -->\r
+<pre><tt>angular<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">module</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'egAdminConfigApp'</span><span style="color: #990000">,</span>\r
+ <span style="color: #990000">[</span><span style="color: #FF0000">'ngRoute'</span><span style="color: #990000">,</span> <span style="color: #FF0000">'ui.bootstrap'</span><span style="color: #990000">,</span> <span style="color: #FF0000">'egCoreMod'</span><span style="color: #990000">,</span> <span style="color: #FF0000">'egUiMod'</span><span style="color: #990000">,</span> <span style="color: #FF0000">'egGridMod'</span><span style="color: #990000">])</span></tt></pre></div></div>\r
+</div>\r
+</div>\r
+<div class="sect1 slide">\r
+<h1 id="_eggrid_angularjs_2">egGrid AngularJS 2</h1>\r
+<div class="sectionbody" style="max-width:45em">\r
+<div class="listingblock">\r
+<div class="content"><!-- Generator: GNU source-highlight 3.1.7\r
+by Lorenzo Bettini\r
+http://www.lorenzobettini.it\r
+http://www.gnu.org/software/src-highlite -->\r
+<pre><tt><span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">config</span></span><span style="color: #990000">(</span><span style="font-weight: bold"><span style="color: #0000FF">function</span></span><span style="color: #990000">(</span>$routeProvider<span style="color: #990000">,</span> $locationProvider<span style="color: #990000">,</span> $compileProvider<span style="color: #990000">)</span> <span style="color: #FF0000">{</span>\r
+ $locationProvider<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">html5Mode</span></span><span style="color: #990000">(</span><span style="font-weight: bold"><span style="color: #0000FF">true</span></span><span style="color: #990000">);</span>\r
+ $compileProvider<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">aHrefSanitizationWhitelist</span></span><span style="color: #990000">(</span><span style="color: #FF6600">/^\s*(https?|blob):/</span><span style="color: #990000">);</span> <span style="font-style: italic"><span style="color: #9A1900">// grid export</span></span>\r
+\r
+ <span style="font-style: italic"><span style="color: #9A1900">// check auth and load data needed by all pages</span></span>\r
+ <span style="font-weight: bold"><span style="color: #0000FF">var</span></span> resolver <span style="color: #990000">=</span> <span style="color: #FF0000">{</span>delay <span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">function</span></span><span style="color: #990000">(</span>egStartup<span style="color: #990000">)</span> <span style="color: #FF0000">{</span><span style="font-weight: bold"><span style="color: #0000FF">return</span></span> egStartup<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">go</span></span><span style="color: #990000">()</span><span style="color: #FF0000">}}</span><span style="color: #990000">;</span>\r
+\r
+ $routeProvider<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">when</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'/admin/config/global_flag'</span><span style="color: #990000">,</span> <span style="color: #FF0000">{</span>\r
+ templateUrl<span style="color: #990000">:</span> <span style="color: #FF0000">'./admin/config/t_global_flag'</span><span style="color: #990000">,</span>\r
+ controller<span style="color: #990000">:</span> <span style="color: #FF0000">'GlobalFlagCtl'</span><span style="color: #990000">,</span>\r
+ resolve <span style="color: #990000">:</span> resolver\r
+ <span style="color: #FF0000">}</span><span style="color: #990000">);</span></tt></pre></div></div>\r
+</div>\r
+</div>\r
+<div class="sect1 slide">\r
+<h1 id="_eggrid_angularjs_2_5">egGrid AngularJS 2.5</h1>\r
+<div class="sectionbody" style="max-width:45em">\r
+<div class="listingblock">\r
+<div class="content"><!-- Generator: GNU source-highlight 3.1.7\r
+by Lorenzo Bettini\r
+http://www.lorenzobettini.it\r
+http://www.gnu.org/software/src-highlite -->\r
+<pre><tt> $routeProvider<span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">when</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'/admin/config/global_flag/:name'</span><span style="color: #990000">,</span> <span style="color: #FF0000">{</span>\r
+ templateUrl<span style="color: #990000">:</span> <span style="color: #FF0000">'./admin/config/t_global_flag'</span><span style="color: #990000">,</span>\r
+ controller<span style="color: #990000">:</span> <span style="color: #FF0000">'GlobalFlagCtrl'</span><span style="color: #990000">,</span>\r
+ resolve <span style="color: #990000">:</span> resolver\r
+ <span style="color: #FF0000">}</span><span style="color: #990000">);</span>\r
+<span style="color: #FF0000">}</span><span style="color: #990000">)</span></tt></pre></div></div>\r
+</div>\r
+</div>\r
+<div class="sect1 slide">\r
+<h1 id="_eggrid_angularjs_3">egGrid AngularJS 3</h1>\r
+<div class="sectionbody" style="max-width:45em">\r
+<div class="listingblock">\r
+<div class="content"><!-- Generator: GNU source-highlight 3.1.7\r
+by Lorenzo Bettini\r
+http://www.lorenzobettini.it\r
+http://www.gnu.org/software/src-highlite -->\r
+<pre><tt><span style="color: #990000">.</span><span style="font-weight: bold"><span style="color: #000000">controller</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'GlobalFlagCtl'</span><span style="color: #990000">,</span>\r
+ <span style="color: #990000">[</span><span style="color: #FF0000">'$scope'</span><span style="color: #990000">,</span><span style="color: #FF0000">'$location'</span><span style="color: #990000">,</span><span style="color: #FF0000">'$q'</span><span style="color: #990000">,</span><span style="color: #FF0000">'egCore'</span><span style="color: #990000">,</span>\r
+<span style="font-weight: bold"><span style="color: #0000FF">function</span></span><span style="color: #990000">(</span>$scope<span style="color: #990000">,</span> $location<span style="color: #990000">,</span> $q<span style="color: #990000">,</span> egCore<span style="color: #990000">)</span> <span style="color: #FF0000">{</span>\r
+ $scope<span style="color: #990000">.</span>grid_controls <span style="color: #990000">=</span> <span style="color: #FF0000">{</span>\r
+ <span style="font-style: italic"><span style="color: #9A1900">// tell the grid which config.global_flag objects to retrieve</span></span>\r
+ setQuery <span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">function</span></span><span style="color: #990000">()</span> <span style="color: #FF0000">{</span>\r
+ <span style="font-weight: bold"><span style="color: #0000FF">return</span></span> <span style="color: #FF0000">{</span>name <span style="color: #990000">:</span> <span style="color: #FF0000">{</span><span style="color: #FF0000">'!='</span> <span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">null</span></span><span style="color: #FF0000">}}</span><span style="color: #990000">;</span>\r
+ <span style="color: #FF0000">}</span><span style="color: #990000">,</span>\r
+ activateItem <span style="color: #990000">:</span> <span style="font-weight: bold"><span style="color: #0000FF">function</span></span><span style="color: #990000">()</span> <span style="color: #FF0000">{</span>\r
+ <span style="font-weight: bold"><span style="color: #000000">alert</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'dbl click'</span><span style="color: #990000">);</span>\r
+ <span style="color: #FF0000">}</span>\r
+ <span style="color: #FF0000">}</span><span style="color: #990000">;</span>\r
+ $scope<span style="color: #990000">.</span>an_action_handler <span style="color: #990000">=</span> <span style="font-weight: bold"><span style="color: #0000FF">function</span></span><span style="color: #990000">()</span> <span style="color: #FF0000">{</span> <span style="font-weight: bold"><span style="color: #000000">alert</span></span><span style="color: #990000">(</span><span style="color: #FF0000">'HELLO'</span><span style="color: #990000">)</span> <span style="color: #FF0000">}</span>\r
+<span style="color: #FF0000">}</span><span style="color: #990000">])</span></tt></pre></div></div>\r
+</div>\r
+</div>\r
+<div class="sect1 slide">\r
+<h1 id="_join_the_web_staff_collective">Join the web staff collective</h1>\r
+<div class="sectionbody" style="max-width:45em">\r
+</div>\r
+</div>\r
+<div class="sect1 slide">\r
+<h1 id="_thanks">Thanks!</h1>\r
+<div class="sectionbody" style="max-width:45em">\r
+<ul class="">\r
+<li>\r
+<span>\r
+Bill Erickson, King County Library System\r
+</span>\r
+</li>\r
+<li>\r
+<span>\r
+Mike Rylander, Equinox Software, Inc.\r
+</span>\r
+</li>\r
+<li>\r
+<span>\r
+Galen Charlton, Equinox Software, Inc.\r
+</span>\r
+</li>\r
+</ul>\r
+</div>\r
+</div>\r
+</body>\r
+</html>\r