123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735 | <?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta name="generator" content="pandoc" />
<title>Tomo – Tomo</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; }
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.at { color: #7d9029; }
code span.bn { color: #40a070; }
code span.bu { color: #008000; }
code span.cf { color: #007020; font-weight: bold; }
code span.ch { color: #4070a0; }
code span.cn { color: #880000; }
code span.co { color: #60a0b0; font-style: italic; }
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.do { color: #ba2121; font-style: italic; }
code span.dt { color: #902000; }
code span.dv { color: #40a070; }
code span.er { color: #ff0000; font-weight: bold; }
code span.ex { }
code span.fl { color: #40a070; }
code span.fu { color: #06287e; }
code span.im { color: #008000; font-weight: bold; }
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; }
code span.kw { color: #007020; font-weight: bold; }
code span.op { color: #666666; }
code span.ot { color: #007020; }
code span.pp { color: #bc7a00; }
code span.sc { color: #4070a0; }
code span.ss { color: #bb6688; }
code span.st { color: #4070a0; }
code span.va { color: #19177c; }
code span.vs { color: #4070a0; }
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; }
</style>
<link href="data:text/css; charset=utf-8;charset=utf-8,%0Abody%0A%7B%0Amargin%3A%200%200%200%200%3B%0Apadding%3A%200%200%200%200%3B%0Awidth%3A%20100%25%3B%0Aheight%3A%20100%25%3B%0Acolor%3A%20black%3B%0Abackground%2Dcolor%3A%20white%3B%0Afont%2Dfamily%3A%20%22Gill%20Sans%20MT%22%2C%20%22Gill%20Sans%22%2C%20GillSans%2C%20sans%2Dserif%3B%0Afont%2Dsize%3A%2014pt%3B%0A%7D%0Adiv%2Etoolbar%20%7B%0Aposition%3A%20fixed%3B%20z%2Dindex%3A%20200%3B%0Atop%3A%20auto%3B%20bottom%3A%200%3B%20left%3A%200%3B%20right%3A%200%3B%0Aheight%3A%201%2E2em%3B%20text%2Dalign%3A%20right%3B%0Apadding%2Dleft%3A%201em%3B%0Apadding%2Dright%3A%201em%3B%20font%2Dsize%3A%2060%25%3B%0Acolor%3A%20red%3B%0Abackground%2Dcolor%3A%20rgb%28240%2C240%2C240%29%3B%0Aborder%2Dtop%3A%20solid%201px%20rgb%28180%2C180%2C180%29%3B%0A%7D%0Adiv%2Etoolbar%20span%2Ecopyright%20%7B%0Acolor%3A%20black%3B%0Amargin%2Dleft%3A%200%2E5em%3B%0A%7D%0Adiv%2Einitial%5Fprompt%20%7B%0Aposition%3A%20absolute%3B%0Az%2Dindex%3A%201000%3B%0Abottom%3A%201%2E2em%3B%0Awidth%3A%20100%25%3B%0Abackground%2Dcolor%3A%20rgb%28200%2C200%2C200%29%3B%0Aopacity%3A%200%2E35%3B%0Abackground%2Dcolor%3A%20rgba%28200%2C200%2C200%2C%200%2E35%29%3B%0Acursor%3A%20pointer%3B%0A%7D%0Adiv%2Einitial%5Fprompt%20p%2Ehelp%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Adiv%2Einitial%5Fprompt%20p%2Eclose%20%7B%0Atext%2Dalign%3A%20right%3B%0Afont%2Dstyle%3A%20italic%3B%0A%7D%0Adiv%2Eslidy%5Ftoc%20%7B%0Aposition%3A%20absolute%3B%0Az%2Dindex%3A%20300%3B%0Awidth%3A%2060%25%3B%0Amax%2Dwidth%3A%2030em%3B%0Aheight%3A%2030em%3B%0Aoverflow%3A%20auto%3B%0Atop%3A%20auto%3B%0Aright%3A%20auto%3B%0Aleft%3A%204em%3B%0Abottom%3A%204em%3B%0Apadding%3A%201em%3B%0Abackground%3A%20rgb%28240%2C240%2C240%29%3B%0Aborder%2Dstyle%3A%20solid%3B%0Aborder%2Dwidth%3A%202px%3B%0Afont%2Dsize%3A%2060%25%3B%0A%7D%0Adiv%2Eslidy%5Ftoc%20%2Etoc%5Fheading%20%7B%0Atext%2Dalign%3A%20center%3B%0Awidth%3A%20100%25%3B%0Amargin%3A%200%3B%0Amargin%2Dbottom%3A%201em%3B%0Aborder%2Dbottom%2Dstyle%3A%20solid%3B%0Aborder%2Dbottom%2Dcolor%3A%20rgb%28180%2C180%2C180%29%3B%0Aborder%2Dbottom%2Dwidth%3A%201px%3B%0A%7D%0Adiv%2Eslide%20%7B%0Az%2Dindex%3A%2020%3B%0Amargin%3A%200%200%200%200%3B%0Apadding%2Dtop%3A%200%3B%0Apadding%2Dbottom%3A%200%3B%0Apadding%2Dleft%3A%2020px%3B%0Apadding%2Dright%3A%2020px%3B%0Aborder%2Dwidth%3A%200%3B%0Aclear%3A%20both%3B%0Atop%3A%200%3B%0Abottom%3A%200%3B%0Aleft%3A%200%3B%0Aright%3A%200%3B%0Aline%2Dheight%3A%20120%25%3B%0Abackground%2Dcolor%3A%20transparent%3B%0A%7D%0Adiv%2Ebackground%20%7B%0Adisplay%3A%20none%3B%0A%7D%0Adiv%2Ehandout%20%7B%0Amargin%2Dleft%3A%2020px%3B%0Amargin%2Dright%3A%2020px%3B%0A%7D%0Adiv%2Eslide%2Etitlepage%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Adiv%2Eslide%2Etitlepage%20h1%20%7B%0Apadding%2Dtop%3A%2010%25%3B%0Amargin%2Dright%3A%200%3B%0A%7D%0Adiv%2Eslide%20h1%20%7B%0Apadding%2Dleft%3A%200%3B%0Apadding%2Dright%3A%2020pt%3B%0Apadding%2Dtop%3A%204pt%3B%0Apadding%2Dbottom%3A%204pt%3B%0Amargin%2Dtop%3A%200%3B%0Amargin%2Dleft%3A%200%3B%0Amargin%2Dright%3A%2060pt%3B%0Amargin%2Dbottom%3A%200%2E5em%3B%0Adisplay%3A%20block%3B%20font%2Dsize%3A%20160%25%3B%0Aline%2Dheight%3A%201%2E2em%3B%0Abackground%3A%20transparent%3B%0A%7D%0A%40media%20screen%20and%20%28max%2Ddevice%2Dwidth%3A%201024px%29%0A%7B%0Adiv%2Eslide%20%7B%20font%2Dsize%3A%20100%25%3B%20%7D%0A%7D%0A%40media%20screen%20and%20%28max%2Ddevice%2Dwidth%3A%20800px%29%0A%7B%0Adiv%2Eslide%20%7B%20font%2Dsize%3A%20200%25%3B%20%7D%0Adiv%2Eslidy%5Ftoc%20%7B%0Atop%3A%201em%3B%0Aleft%3A%201em%3B%0Aright%3A%20auto%3B%0Awidth%3A%2080%25%3B%0Afont%2Dsize%3A%20180%25%3B%0A%7D%0A%7D%0Adiv%2Etoc%2Dheading%20%7B%0Awidth%3A%20100%25%3B%0Aborder%2Dbottom%3A%20solid%201px%20rgb%28180%2C180%2C180%29%3B%0Amargin%2Dbottom%3A%201em%3B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Aimg%20%7B%0Aimage%2Drendering%3A%20optimize%2Dquality%3B%0A%7D%0Apre%20%7B%0Afont%2Dsize%3A%2080%25%3B%0Afont%2Dweight%3A%20bold%3B%0Aline%2Dheight%3A%20120%25%3B%0Apadding%2Dtop%3A%200%2E2em%3B%0Apadding%2Dbottom%3A%200%2E2em%3B%0Apadding%2Dleft%3A%201em%3B%0Apadding%2Dright%3A%201em%3B%0Aborder%2Dstyle%3A%20solid%3B%0Aborder%2Dleft%2Dwidth%3A%201em%3B%0Aborder%2Dtop%2Dwidth%3A%20thin%3B%0Aborder%2Dright%2Dwidth%3A%20thin%3B%0Aborder%2Dbottom%2Dwidth%3A%20thin%3B%0Aborder%2Dcolor%3A%20%2395ABD0%3B%0Acolor%3A%20%2300428C%3B%0Abackground%2Dcolor%3A%20%23E4E5E7%3B%0A%7D%0Ali%20pre%20%7B%20margin%2Dleft%3A%200%3B%20%7D%0Ablockquote%20%7B%20font%2Dstyle%3A%20italic%20%7D%0Aimg%20%7B%20background%2Dcolor%3A%20transparent%20%7D%0Ap%2Ecopyright%20%7B%20font%2Dsize%3A%20smaller%20%7D%0A%2Ecenter%20%7B%20text%2Dalign%3A%20center%20%7D%0A%2Efootnote%20%7B%20font%2Dsize%3A%20smaller%3B%20margin%2Dleft%3A%202em%3B%20%7D%0Aa%20img%20%7B%20border%2Dwidth%3A%200%3B%20border%2Dstyle%3A%20none%20%7D%0Aa%3Avisited%20%7B%20color%3A%20navy%20%7D%0Aa%3Alink%20%7B%20color%3A%20navy%20%7D%0Aa%3Ahover%20%7B%20color%3A%20red%3B%20text%2Ddecoration%3A%20underline%20%7D%0Aa%3Aactive%20%7B%20color%3A%20red%3B%20text%2Ddecoration%3A%20underline%20%7D%0Aa%20%7Btext%2Ddecoration%3A%20none%7D%0A%2Etoolbar%20a%3Alink%20%7Bcolor%3A%20blue%7D%0A%2Etoolbar%20a%3Avisited%20%7Bcolor%3A%20blue%7D%0A%2Etoolbar%20a%3Aactive%20%7Bcolor%3A%20red%7D%0A%2Etoolbar%20a%3Ahover%20%7Bcolor%3A%20red%7D%0Aul%20%7B%20list%2Dstyle%2Dtype%3A%20square%3B%20%7D%0Aul%20ul%20%7B%20list%2Dstyle%2Dtype%3A%20disc%3B%20%7D%0Aul%20ul%20ul%20%7B%20list%2Dstyle%2Dtype%3A%20circle%3B%20%7D%0Aul%20ul%20ul%20ul%20%7B%20list%2Dstyle%2Dtype%3A%20disc%3B%20%7D%0Ali%20%7B%20margin%2Dleft%3A%200%2E5em%3B%20margin%2Dtop%3A%200%2E5em%3B%20%7D%0Ali%20li%20%7B%20font%2Dsize%3A%2085%25%3B%20font%2Dstyle%3A%20italic%20%7D%0Ali%20li%20li%20%7B%20font%2Dsize%3A%2085%25%3B%20font%2Dstyle%3A%20normal%20%7D%0Adiv%20dt%0A%7B%0Amargin%2Dleft%3A%200%3B%0Amargin%2Dtop%3A%201em%3B%0Amargin%2Dbottom%3A%200%2E5em%3B%0Afont%2Dweight%3A%20bold%3B%0A%7D%0Adiv%20dd%0A%7B%0Amargin%2Dleft%3A%202em%3B%0Amargin%2Dbottom%3A%200%2E5em%3B%0A%7D%0Ap%2Cpre%2Cul%2Col%2Cblockquote%2Ch2%2Ch3%2Ch4%2Ch5%2Ch6%2Cdl%2Ctable%20%7B%0Amargin%2Dleft%3A%201em%3B%0Amargin%2Dright%3A%201em%3B%0A%7D%0Ap%2Esubhead%20%7B%20font%2Dweight%3A%20bold%3B%20margin%2Dtop%3A%202em%3B%20%7D%0A%2Esmaller%20%7B%20font%2Dsize%3A%20smaller%20%7D%0A%2Ebigger%20%7B%20font%2Dsize%3A%20130%25%20%7D%0Atd%2Cth%20%7B%20padding%3A%200%2E2em%20%7D%0Aul%20%7B%0Amargin%3A%200%2E5em%201%2E5em%200%2E5em%201%2E5em%3B%0Apadding%3A%200%3B%0A%7D%0Aol%20%7B%0Amargin%3A%200%2E5em%201%2E5em%200%2E5em%201%2E5em%3B%0Apadding%3A%200%3B%0A%7D%0Aul%20%7B%20list%2Dstyle%2Dtype%3A%20square%3B%20%7D%0Aul%20ul%20%7B%20list%2Dstyle%2Dtype%3A%20disc%3B%20%7D%0Aul%20ul%20ul%20%7B%20list%2Dstyle%2Dtype%3A%20circle%3B%20%7D%0Aul%20ul%20ul%20ul%20%7B%20list%2Dstyle%2Dtype%3A%20disc%3B%20%7D%0Aul%20li%20%7B%20list%2Dstyle%3A%20square%3B%0Amargin%3A%200%2E1em%200em%200%2E6em%200%3B%0Apadding%3A%200%200%200%200%3B%0Aline%2Dheight%3A%20140%25%3B%0A%7D%0Aol%20li%20%7B%20margin%3A%200%2E1em%200em%200%2E6em%201%2E5em%3B%0Apadding%3A%200%200%200%200px%3B%0Aline%2Dheight%3A%20140%25%3B%0Alist%2Dstyle%2Dtype%3A%20decimal%3B%0A%7D%0Ali%20ul%20li%20%7B%20font%2Dsize%3A%2085%25%3B%20font%2Dstyle%3A%20italic%3B%0Alist%2Dstyle%2Dtype%3A%20disc%3B%0Abackground%3A%20transparent%3B%0Apadding%3A%200%200%200%200%3B%0A%7D%0Ali%20li%20ul%20li%20%7B%20font%2Dsize%3A%2085%25%3B%20font%2Dstyle%3A%20normal%3B%0Alist%2Dstyle%2Dtype%3A%20circle%3B%0Abackground%3A%20transparent%3B%0Apadding%3A%200%200%200%200%3B%0A%7D%0Ali%20li%20li%20ul%20li%20%7B%0Alist%2Dstyle%2Dtype%3A%20disc%3B%0Abackground%3A%20transparent%3B%0Apadding%3A%200%200%200%200%3B%0A%7D%0Ali%20ol%20li%20%7B%0Alist%2Dstyle%2Dtype%3A%20decimal%3B%0A%7D%0Ali%20li%20ol%20li%20%7B%0Alist%2Dstyle%2Dtype%3A%20decimal%3B%0A%7D%0A%0Aol%2Eoutline%20li%3Ahover%20%7B%20cursor%3A%20pointer%20%7D%0Aol%2Eoutline%20li%2Enofold%3Ahover%20%7B%20cursor%3A%20default%20%7D%0Aul%2Eoutline%20li%3Ahover%20%7B%20cursor%3A%20pointer%20%7D%0Aul%2Eoutline%20li%2Enofold%3Ahover%20%7B%20cursor%3A%20default%20%7D%0Aol%2Eoutline%20%7B%20list%2Dstyle%3Adecimal%3B%20%7D%0Aol%2Eoutline%20ol%20%7B%20list%2Dstyle%2Dtype%3Alower%2Dalpha%20%7D%0Aol%2Eoutline%20li%2Enofold%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3B%20qs%3D0%2E5%3Bbase64%2CR0lGODdhCQAJAIACAMzMzOvr%2FywAAAAACQAJAAACD4SPoRvG614Dctb4MEMcFAA7%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aol%2Eoutline%20li%2Eunfolded%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3B%20qs%3D0%2E5%3Bbase64%2CR0lGODdhCQAJAKEDAMPD%2F8zMzOvr%2F%2F%2F%2F%2FywAAAAACQAJAAACEYyPoivG614LAlg7ZZbxoR8UADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aol%2Eoutline%20li%2Efolded%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3B%20qs%3D0%2E5%3Bbase64%2CR0lGODdhCQAJAKEDAMPD%2F8zMzOvr%2F%2F%2F%2F%2FywAAAAACQAJAAACFIyPoiu2sJyCyoF7W3hxz850CFIAADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aol%2Eoutline%20li%2Eunfolded%3Ahover%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3B%20qs%3D0%2E5%3Bbase64%2CR0lGODdhCQAJAKEDAAAAAAAA%2F8PD%2F%2F%2F%2F%2FywAAAAACQAJAAACEYSPoivG614DIlg7ZZbxoQ8UADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aol%2Eoutline%20li%2Efolded%3Ahover%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3B%20qs%3D0%2E5%3Bbase64%2CR0lGODdhCQAJAKEDAAAAAAAA%2F8PD%2F%2F%2F%2F%2FywAAAAACQAJAAACFISPoiu2sZyCyoV7G3hxz850CFIAADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aul%2Eoutline%20li%2Enofold%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3B%20qs%3D0%2E5%3Bbase64%2CR0lGODdhCQAJAIACAMzMzOvr%2FywAAAAACQAJAAACD4SPoRvG614Dctb4MEMcFAA7%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aul%2Eoutline%20li%2Eunfolded%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3B%20qs%3D0%2E5%3Bbase64%2CR0lGODdhCQAJAKEDAMPD%2F8zMzOvr%2F%2F%2F%2F%2FywAAAAACQAJAAACEYyPoivG614LAlg7ZZbxoR8UADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aul%2Eoutline%20li%2Efolded%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3B%20qs%3D0%2E5%3Bbase64%2CR0lGODdhCQAJAKEDAMPD%2F8zMzOvr%2F%2F%2F%2F%2FywAAAAACQAJAAACFIyPoiu2sJyCyoF7W3hxz850CFIAADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aul%2Eoutline%20li%2Eunfolded%3Ahover%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3B%20qs%3D0%2E5%3Bbase64%2CR0lGODdhCQAJAKEDAAAAAAAA%2F8PD%2F%2F%2F%2F%2FywAAAAACQAJAAACEYSPoivG614DIlg7ZZbxoQ8UADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0Aul%2Eoutline%20li%2Efolded%3Ahover%20%7B%0Apadding%3A%200%200%200%2020px%3B%0Abackground%3A%20transparent%20url%28data%3Aimage%2Fgif%3B%20qs%3D0%2E5%3Bbase64%2CR0lGODdhCQAJAKEDAAAAAAAA%2F8PD%2F%2F%2F%2F%2FywAAAAACQAJAAACFISPoiu2sZyCyoV7G3hxz850CFIAADs%3D%29%20no%2Drepeat%200px%200%2E5em%3B%0A%7D%0A%0Aa%2Etitleslide%20%7B%20font%2Dweight%3A%20bold%3B%20font%2Dstyle%3A%20italic%20%7D%0A%0Aimg%2Ehidden%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%20%7D%0Adiv%2Einitial%5Fprompt%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%20%7D%0Adiv%2Eslide%20%7B%0Avisibility%3A%20visible%3B%0Aposition%3A%20inherit%3B%0A%7D%0Adiv%2Ehandout%20%7B%0Aborder%2Dtop%2Dstyle%3A%20solid%3B%0Aborder%2Dtop%2Dwidth%3A%20thin%3B%0Aborder%2Dtop%2Dcolor%3A%20black%3B%0A%7D%0A%40media%20screen%20%7B%0A%2Ehidden%20%7B%20display%3A%20none%3B%20visibility%3A%20visible%20%7D%0Adiv%2Eslide%2Ehidden%20%7B%20display%3A%20block%3B%20visibility%3A%20visible%20%7D%0Adiv%2Ehandout%2Ehidden%20%7B%20display%3A%20block%3B%20visibility%3A%20visible%20%7D%0Adiv%2Ebackground%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%20%7D%0Abody%2Esingle%5Fslide%20div%2Einitial%5Fprompt%20%7B%20display%3A%20block%3B%20visibility%3A%20visible%20%7D%0Abody%2Esingle%5Fslide%20div%2Ebackground%20%7B%20display%3A%20block%3B%20visibility%3A%20visible%20%7D%0Abody%2Esingle%5Fslide%20div%2Ebackground%2Ehidden%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%20%7D%0Abody%2Esingle%5Fslide%20%2Einvisible%20%7B%20visibility%3A%20hidden%20%7D%0Abody%2Esingle%5Fslide%20%2Ehidden%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%20%7D%0Abody%2Esingle%5Fslide%20div%2Eslide%20%7B%20position%3A%20absolute%20%7D%0Abody%2Esingle%5Fslide%20div%2Ehandout%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%20%7D%0A%7D%0A%40media%20print%20%7B%0A%2Ehidden%20%7B%20display%3A%20block%3B%20visibility%3A%20visible%20%7D%0Adiv%2Eslide%20pre%20%7B%20font%2Dsize%3A%2060%25%3B%20padding%2Dleft%3A%200%2E5em%3B%20%7D%0Adiv%2Etoolbar%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%3B%20%7D%0Adiv%2Eslidy%5Ftoc%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%3B%20%7D%0Adiv%2Ebackground%20%7B%20display%3A%20none%3B%20visibility%3A%20hidden%3B%20%7D%0Adiv%2Eslide%20%7B%20page%2Dbreak%2Dbefore%3A%20always%20%7D%0A%0Adiv%2Eslide%2Efirst%2Dslide%20%7B%20page%2Dbreak%2Dbefore%3A%20avoid%20%7D%0A%7D%0A" rel="stylesheet" type="text/css" media="screen, projection, print" />
<script src="data:text/javascript; charset=utf-8;charset=utf-8,%2F%2A%20slidy%2Ejs%0A%0A%20%20%20Copyright%20%28c%29%202005%2D2013%20W3C%20%28MIT%2C%20ERCIM%2C%20Keio%29%2C%20All%20Rights%20Reserved%2E%0A%20%20%20W3C%20liability%2C%20trademark%2C%20document%20use%20and%20software%20licensing%0A%20%20%20rules%20apply%2C%20see%3A%0A%0A%20%20%20http%3A%2F%2Fwww%2Ew3%2Eorg%2FConsortium%2FLegal%2Fcopyright%2Ddocuments%0A%20%20%20http%3A%2F%2Fwww%2Ew3%2Eorg%2FConsortium%2FLegal%2Fcopyright%2Dsoftware%0A%0A%20%20%20Defines%20single%20name%20%22w3c%5Fslidy%22%20in%20global%20namespace%0A%20%20%20Adds%20event%20handlers%20without%20trampling%20on%20any%20others%0A%2A%2F%0A%0A%2F%2F%20the%20slidy%20object%20implementation%0Avar%20w3c%5Fslidy%20%3D%20%7B%0A%20%20%2F%2F%20classify%20which%20kind%20of%20browser%20we%27re%20running%20under%0A%20%20ns%5Fpos%3A%20%28typeof%20window%2EpageYOffset%21%3D%27undefined%27%29%2C%0A%20%20khtml%3A%20%28%28navigator%2EuserAgent%29%2EindexOf%28%22KHTML%22%29%20%3E%3D%200%20%3F%20true%20%3A%20false%29%2C%0A%20%20opera%3A%20%28%28navigator%2EuserAgent%29%2EindexOf%28%22Opera%22%29%20%3E%3D%200%20%3F%20true%20%3A%20false%29%2C%0A%20%20ipad%3A%20%28%28navigator%2EuserAgent%29%2EindexOf%28%22iPad%22%29%20%3E%3D%200%20%3F%20true%20%3A%20false%29%2C%0A%20%20iphone%3A%20%28%28navigator%2EuserAgent%29%2EindexOf%28%22iPhone%22%29%20%3E%3D%200%20%3F%20true%20%3A%20false%29%2C%0A%20%20android%3A%20%28%28navigator%2EuserAgent%29%2EindexOf%28%22Android%22%29%20%3E%3D%200%20%3F%20true%20%3A%20false%29%2C%0A%20%20ie%3A%20%28typeof%20document%2Eall%20%21%3D%20%22undefined%22%20%26%26%20%21this%2Eopera%29%2C%0A%20%20ie6%3A%20%28%21this%2Ens%5Fpos%20%26%26%20navigator%2EuserAgent%2EindexOf%28%22MSIE%206%22%29%20%21%3D%20%2D1%29%2C%0A%20%20ie7%3A%20%28%21this%2Ens%5Fpos%20%26%26%20navigator%2EuserAgent%2EindexOf%28%22MSIE%207%22%29%20%21%3D%20%2D1%29%2C%0A%20%20ie8%3A%20%28%21this%2Ens%5Fpos%20%26%26%20navigator%2EuserAgent%2EindexOf%28%22MSIE%208%22%29%20%21%3D%20%2D1%29%2C%0A%20%20ie9%3A%20%28%21this%2Ens%5Fpos%20%26%26%20navigator%2EuserAgent%2EindexOf%28%22MSIE%209%22%29%20%21%3D%20%2D1%29%2C%0A%0A%20%20%2F%2F%20data%20for%20swipe%20and%20double%20tap%20detection%20on%20touch%20screens%0A%20%20last%5Ftap%3A%200%2C%0A%20%20prev%5Ftap%3A%200%2C%0A%20%20start%5Fx%3A%200%2C%0A%20%20start%5Fy%3A%200%2C%0A%20%20delta%5Fx%3A%200%2C%0A%20%20delta%5Fy%3A%200%2C%0A%0A%20%20%2F%2F%20are%20we%20running%20as%20XHTML%3F%20%28doesn%27t%20work%20on%20Opera%29%0A%20%20is%5Fxhtml%3A%20%2Fxml%2F%2Etest%28document%2EcontentType%29%2C%0A%0A%20%20slide%5Fnumber%3A%200%2C%20%2F%2F%20integer%20slide%20count%3A%200%2C%201%2C%202%2C%20%2E%2E%2E%0A%20%20slide%5Fnumber%5Felement%3A%20null%2C%20%2F%2F%20element%20containing%20slide%20number%0A%20%20slides%3A%20%5B%5D%2C%20%2F%2F%20set%20to%20array%20of%20slide%20div%27s%0A%20%20notes%3A%20%5B%5D%2C%20%2F%2F%20set%20to%20array%20of%20handout%20div%27s%0A%20%20backgrounds%3A%20%5B%5D%2C%20%2F%2F%20set%20to%20array%20of%20background%20div%27s%0A%20%20observers%3A%20%5B%5D%2C%20%2F%2F%20list%20of%20observer%20functions%0A%20%20toolbar%3A%20null%2C%20%2F%2F%20element%20containing%20toolbar%0A%20%20title%3A%20null%2C%20%2F%2F%20document%20title%0A%20%20last%5Fshown%3A%20null%2C%20%2F%2F%20last%20incrementally%20shown%20item%0A%20%20eos%3A%20null%2C%20%20%2F%2F%20span%20element%20for%20end%20of%20slide%20indicator%0A%20%20toc%3A%20null%2C%20%2F%2F%20table%20of%20contents%0A%20%20outline%3A%20null%2C%20%2F%2F%20outline%20element%20with%20the%20focus%0A%20%20selected%5Ftext%5Flen%3A%200%2C%20%2F%2F%20length%20of%20drag%20selection%20on%20document%0A%20%20view%5Fall%3A%200%2C%20%20%2F%2F%201%20to%20view%20all%20slides%20%2B%20handouts%0A%20%20want%5Ftoolbar%3A%20true%2C%20%20%2F%2F%20user%20preference%20to%20show%2Fhide%20toolbar%0A%20%20mouse%5Fclick%5Fenabled%3A%20true%2C%20%2F%2F%20enables%20left%20click%20for%20next%20slide%0A%20%20scroll%5Fhack%3A%200%2C%20%2F%2F%20IE%20work%20around%20for%20position%3A%20fixed%0A%20%20disable%5Fslide%5Fclick%3A%20false%2C%20%20%2F%2F%20used%20by%20clicked%20anchors%0A%0A%20%20lang%3A%20%22en%22%2C%20%2F%2F%20updated%20to%20language%20specified%20by%20html%20file%0A%0A%20%20help%5Fanchor%3A%20null%2C%20%2F%2F%20used%20for%20keyboard%20focus%20hack%20in%20showToolbar%28%29%0A%20%20help%5Fpage%3A%20%22http%3A%2F%2Fwww%2Ew3%2Eorg%2FTalks%2FTools%2FSlidy2%2Fhelp%2Fhelp%2Ehtml%22%2C%0A%20%20help%5Ftext%3A%20%22Navigate%20with%20mouse%20click%2C%20space%20bar%2C%20Cursor%20Left%2FRight%2C%20%22%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%22or%20Pg%20Up%20and%20Pg%20Dn%2E%20Use%20S%20and%20B%20to%20change%20font%20size%2E%22%2C%0A%0A%20%20size%5Findex%3A%200%2C%0A%20%20size%5Fadjustment%3A%200%2C%0A%20%20sizes%3A%20%20new%20Array%28%2210pt%22%2C%20%2212pt%22%2C%20%2214pt%22%2C%20%2216pt%22%2C%20%2218pt%22%2C%20%2220pt%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2222pt%22%2C%20%2224pt%22%2C%20%2226pt%22%2C%20%2228pt%22%2C%20%2230pt%22%2C%20%2232pt%22%29%2C%0A%0A%20%20%2F%2F%20needed%20for%20efficient%20resizing%0A%20%20last%5Fwidth%3A%200%2C%0A%20%20last%5Fheight%3A%200%2C%0A%0A%0A%20%20%2F%2F%20Needed%20for%20cross%20browser%20support%20for%20relative%20width%2Fheight%20on%0A%20%20%2F%2F%20object%20elements%2E%20The%20work%20around%20is%20to%20save%20width%2Fheight%20attributes%0A%20%20%2F%2F%20and%20then%20to%20recompute%20absolute%20width%2Fheight%20dimensions%20on%20resizing%0A%20%20%20objects%3A%20%5B%5D%2C%0A%0A%20%20%2F%2F%20attach%20initialiation%20event%20handlers%0A%20%20set%5Fup%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20init%20%3D%20function%28%29%20%7B%20w3c%5Fslidy%2Einit%28%29%3B%20%7D%3B%0A%20%20%20%20if%20%28typeof%20window%2EaddEventListener%20%21%3D%20%22undefined%22%29%0A%20%20%20%20%20%20window%2EaddEventListener%28%22load%22%2C%20init%2C%20false%29%3B%0A%20%20%20%20else%0A%20%20%20%20%20%20window%2EattachEvent%28%22onload%22%2C%20init%29%3B%0A%20%20%7D%2C%0A%0A%20%20hide%5Fslides%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28document%2Ebody%20%26%26%20%21w3c%5Fslidy%2Einitialized%29%0A%20%20%20%20%20%20document%2Ebody%2Estyle%2Evisibility%20%3D%20%22hidden%22%3B%0A%20%20%20%20else%0A%20%20%20%20%20%20setTimeout%28w3c%5Fslidy%2Ehide%5Fslides%2C%2050%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20hack%20to%20persuade%20IE%20to%20compute%20correct%20document%20height%0A%20%20%2F%2F%20as%20needed%20for%20simulating%20fixed%20positioning%20of%20toolbar%0A%20%20ie%5Fhack%3A%20function%20%28%29%20%7B%0A%20%20%20%20window%2EresizeBy%280%2C%2D1%29%3B%0A%20%20%20%20window%2EresizeBy%280%2C%201%29%3B%0A%20%20%7D%2C%0A%0A%20%20init%3A%20function%20%28%29%20%7B%0A%20%20%20%20%2F%2Falert%28%22slidy%20starting%20test%2010%22%29%3B%0A%20%20%20%20document%2Ebody%2Estyle%2Evisibility%20%3D%20%22visible%22%3B%0A%20%20%20%20this%2Einit%5Flocalization%28%29%3B%0A%20%20%20%20this%2Eadd%5Ftoolbar%28%29%3B%0A%20%20%20%20this%2Ewrap%5Fimplicit%5Fslides%28%29%3B%0A%20%20%20%20this%2Ecollect%5Fslides%28%29%3B%0A%20%20%20%20this%2Ecollect%5Fnotes%28%29%3B%0A%20%20%20%20this%2Ecollect%5Fbackgrounds%28%29%3B%0A%20%20%20%20this%2Eobjects%20%3D%20document%2Ebody%2EgetElementsByTagName%28%22object%22%29%3B%0A%20%20%20%20this%2Epatch%5Fanchors%28%29%3B%0A%20%20%20%20this%2Eslide%5Fnumber%20%3D%20this%2Efind%5Fslide%5Fnumber%28location%2Ehref%29%3B%0A%20%20%20%20window%2Eoffscreenbuffering%20%3D%20true%3B%0A%20%20%20%20this%2Esize%5Fadjustment%20%3D%20this%2Efind%5Fsize%5Fadjust%28%29%3B%0A%20%20%20%20this%2Etime%5Fleft%20%3D%20this%2Efind%5Fduration%28%29%3B%0A%20%20%20%20this%2Ehide%5Fimage%5Ftoolbar%28%29%3B%20%20%2F%2F%20suppress%20IE%20image%20toolbar%20popup%0A%20%20%20%20this%2Einit%5Foutliner%28%29%3B%20%20%2F%2F%20activate%20fold%2Funfold%20support%0A%20%20%20%20this%2Etitle%20%3D%20document%2Etitle%3B%0A%20%20%20%20this%2Ekeyboardless%20%3D%20%28this%2Eipad%7C%7Cthis%2Eiphone%7C%7Cthis%2Eandroid%29%3B%0A%0A%20%20%20%20if%20%28this%2Ekeyboardless%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Eremove%5Fclass%28w3c%5Fslidy%2Etoolbar%2C%20%22hidden%22%29%0A%20%20%20%20%20%20this%2Ewant%5Ftoolbar%20%3D%200%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20work%20around%20for%20opera%20bug%0A%20%20%20%20this%2Eis%5Fxhtml%20%3D%20%28document%2Ebody%2EtagName%20%3D%3D%20%22BODY%22%20%3F%20false%20%3A%20true%29%3B%0A%0A%20%20%20%20if%20%28this%2Eslides%2Elength%20%3E%200%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20slide%20%3D%20this%2Eslides%5Bthis%2Eslide%5Fnumber%5D%3B%0A%20%20%20%0A%20%20%20%20%20%20if%20%28this%2Eslide%5Fnumber%20%3E%200%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20this%2Eset%5Fvisibility%5Fall%5Fincremental%28%22visible%22%29%3B%0A%20%20%20%20%20%20%20%20this%2Elast%5Fshown%20%3D%20this%2Eprevious%5Fincremental%5Fitem%28null%29%3B%0A%20%20%20%20%20%20%20%20this%2Eset%5Feos%5Fstatus%28true%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20this%2Elast%5Fshown%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20this%2Eset%5Fvisibility%5Fall%5Fincremental%28%22hidden%22%29%3B%0A%20%20%20%20%20%20%20%20this%2Eset%5Feos%5Fstatus%28%21this%2Enext%5Fincremental%5Fitem%28this%2Elast%5Fshown%29%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20this%2Eset%5Flocation%28%29%3B%0A%20%20%20%20%20%20this%2Eadd%5Fclass%28this%2Eslides%5B0%5D%2C%20%22first%2Dslide%22%29%3B%0A%20%20%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%28slide%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20this%2Etoc%20%3D%20this%2Etable%5Fof%5Fcontents%28%29%3B%0A%0A%20%20%20%20this%2Eadd%5Finitial%5Fprompt%28%29%3B%0A%0A%20%20%20%20%2F%2F%20bind%20event%20handlers%20without%20interfering%20with%20custom%20page%20scripts%0A%20%20%20%20%2F%2F%20Tap%20events%20behave%20too%20weirdly%20to%20support%20clicks%20reliably%20on%0A%20%20%20%20%2F%2F%20iPhone%20and%20iPad%2C%20so%20exclude%20these%20from%20click%20handler%0A%0A%20%20%20%20if%20%28%21this%2Ekeyboardless%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20this%2Eadd%5Flistener%28document%2Ebody%2C%20%22click%22%2C%20this%2Emouse%5Fbutton%5Fclick%29%3B%0A%20%20%20%20%20%20this%2Eadd%5Flistener%28document%2Ebody%2C%20%22mousedown%22%2C%20this%2Emouse%5Fbutton%5Fdown%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20this%2Eadd%5Flistener%28document%2C%20%22keydown%22%2C%20this%2Ekey%5Fdown%29%3B%0A%20%20%20%20this%2Eadd%5Flistener%28document%2C%20%22keypress%22%2C%20this%2Ekey%5Fpress%29%3B%0A%20%20%20%20this%2Eadd%5Flistener%28window%2C%20%22resize%22%2C%20this%2Eresized%29%3B%0A%20%20%20%20this%2Eadd%5Flistener%28window%2C%20%22scroll%22%2C%20this%2Escrolled%29%3B%0A%20%20%20%20this%2Eadd%5Flistener%28window%2C%20%22unload%22%2C%20this%2Eunloaded%29%3B%0A%0A%20%20%20%20this%2Eadd%5Flistener%28document%2C%20%22gesturechange%22%2C%20function%20%28%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20this%2Eattach%5Ftouch%5Fhanders%28this%2Eslides%29%3B%0A%0A%20%20%20%20%2F%2F%20this%20seems%20to%20be%20a%20debugging%20hack%0A%20%20%20%20%2F%2Fif%20%28%21document%2Ebody%2Eonclick%29%0A%20%20%20%20%2F%2F%20%20document%2Ebody%2Eonclick%20%3D%20function%20%28%29%20%7B%20%7D%3B%0A%0A%20%20%20%20this%2Esingle%5Fslide%5Fview%28%29%3B%0A%0A%20%20%20%20%2F%2Fthis%2Eset%5Flocation%28%29%3B%0A%0A%20%20%20%20this%2Eresized%28%29%3B%0A%0A%20%20%20%20if%20%28this%2Eie7%29%0A%20%20%20%20%20%20setTimeout%28w3c%5Fslidy%2Eie%5Fhack%2C%20100%29%3B%0A%0A%20%20%20%20this%2Eshow%5Ftoolbar%28%29%3B%0A%0A%20%20%20%20%2F%2F%20for%20back%20button%20detection%0A%20%20%20%20setInterval%28function%20%28%29%20%7B%20w3c%5Fslidy%2Echeck%5Flocation%28%29%3B%20%7D%2C%20200%29%3B%0A%20%20%20%20w3c%5Fslidy%2Einitialized%20%3D%20true%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20create%20div%20element%20with%20links%20to%20each%20slide%0A%20%20table%5Fof%5Fcontents%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20toc%20%3D%20this%2Ecreate%5Felement%28%22div%22%29%3B%0A%20%20%20%20this%2Eadd%5Fclass%28toc%2C%20%22slidy%5Ftoc%20hidden%22%29%3B%0A%20%20%20%20%2F%2Ftoc%2EsetAttribute%28%22tabindex%22%2C%20%220%22%29%3B%0A%0A%20%20%20%20var%20heading%20%3D%20this%2Ecreate%5Felement%28%22div%22%29%3B%0A%20%20%20%20this%2Eadd%5Fclass%28heading%2C%20%22toc%2Dheading%22%29%3B%0A%20%20%20%20heading%2EinnerHTML%20%3D%20this%2Elocalize%28%22Table%20of%20Contents%22%29%3B%0A%0A%20%20%20%20toc%2EappendChild%28heading%29%3B%0A%20%20%20%20var%20previous%20%3D%20null%3B%0A%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20this%2Eslides%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20title%20%3D%20this%2Ehas%5Fclass%28this%2Eslides%5Bi%5D%2C%20%22title%22%29%3B%0A%20%20%20%20%20%20var%20num%20%3D%20document%2EcreateTextNode%28%28i%20%2B%201%29%20%2B%20%22%2E%20%22%29%3B%0A%0A%20%20%20%20%20%20toc%2EappendChild%28num%29%3B%0A%0A%20%20%20%20%20%20var%20a%20%3D%20this%2Ecreate%5Felement%28%22a%22%29%3B%0A%20%20%20%20%20%20a%2EsetAttribute%28%22href%22%2C%20%22%23%28%22%20%2B%20%28i%2B1%29%20%2B%20%22%29%22%29%3B%0A%0A%20%20%20%20%20%20if%20%28title%29%0A%20%20%20%20%20%20%20%20this%2Eadd%5Fclass%28a%2C%20%22titleslide%22%29%3B%0A%0A%20%20%20%20%20%20var%20name%20%3D%20document%2EcreateTextNode%28this%2Eslide%5Fname%28i%29%29%3B%0A%20%20%20%20%20%20a%2EappendChild%28name%29%3B%0A%20%20%20%20%20%20a%2Eonclick%20%3D%20w3c%5Fslidy%2Etoc%5Fclick%3B%0A%20%20%20%20%20%20a%2Eonkeydown%20%3D%20w3c%5Fslidy%2Etoc%5Fkey%5Fdown%3B%0A%20%20%20%20%20%20a%2Eprevious%20%3D%20previous%3B%0A%0A%20%20%20%20%20%20if%20%28previous%29%0A%20%20%20%20%20%20%20%20previous%2Enext%20%3D%20a%3B%0A%0A%20%20%20%20%20%20toc%2EappendChild%28a%29%3B%0A%0A%20%20%20%20%20%20if%20%28i%20%3D%3D%200%29%0A%20%20%20%20%20%20%20%20toc%2Efirst%20%3D%20a%3B%0A%0A%20%20%20%20%20%20if%20%28i%20%3C%20this%2Eslides%2Elength%20%2D%201%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20br%20%3D%20this%2Ecreate%5Felement%28%22br%22%29%3B%0A%20%20%20%20%20%20%20%20toc%2EappendChild%28br%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20previous%20%3D%20a%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20toc%2Efocus%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20%20%20if%20%28this%2Efirst%29%0A%20%20%20%20%20%20%20%20this%2Efirst%2Efocus%28%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20toc%2Eonmouseup%20%3D%20w3c%5Fslidy%2Emouse%5Fbutton%5Fup%3B%0A%0A%20%20%20%20toc%2Eonclick%20%3D%20function%20%28e%29%20%7B%0A%20%20%20%20%20%20e%7C%7C%28e%3Dwindow%2Eevent%29%3B%0A%0A%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Eselected%5Ftext%5Flen%20%3C%3D%200%29%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Ehide%5Ftable%5Fof%5Fcontents%28true%29%3B%0A%0A%20%20%20%20%20%20w3c%5Fslidy%2Estop%5Fpropagation%28e%29%3B%0A%20%20%20%20%0A%20%20%20%20%20%20if%20%28e%2Ecancel%20%21%3D%20undefined%29%0A%20%20%20%20%20%20%20%20e%2Ecancel%20%3D%20true%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20if%20%28e%2EreturnValue%20%21%3D%20undefined%29%0A%20%20%20%20%20%20%20%20e%2EreturnValue%20%3D%20false%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20document%2Ebody%2EinsertBefore%28toc%2C%20document%2Ebody%2EfirstChild%29%3B%0A%20%20%20%20return%20toc%3B%0A%20%20%7D%2C%0A%0A%20%20is%5Fshown%5Ftoc%3A%20function%20%28%29%20%7B%0A%20%20%20%20return%20%21w3c%5Fslidy%2Ehas%5Fclass%28w3c%5Fslidy%2Etoc%2C%20%22hidden%22%29%3B%0A%20%20%7D%2C%0A%0A%20%20show%5Ftable%5Fof%5Fcontents%3A%20function%20%28%29%20%7B%0A%20%20%20%20w3c%5Fslidy%2Eremove%5Fclass%28w3c%5Fslidy%2Etoc%2C%20%22hidden%22%29%3B%0A%20%20%20%20var%20toc%20%3D%20w3c%5Fslidy%2Etoc%3B%0A%20%20%20%20toc%2Efocus%28%29%3B%0A%0A%20%20%20%20if%20%28w3c%5Fslidy%2Eie7%20%26%26%20w3c%5Fslidy%2Eslide%5Fnumber%20%3D%3D%200%29%0A%20%20%20%20%20%20setTimeout%28w3c%5Fslidy%2Eie%5Fhack%2C%20100%29%3B%0A%20%20%7D%2C%0A%0A%20%20hide%5Ftable%5Fof%5Fcontents%3A%20function%20%28focus%29%20%7B%0A%20%20%20%20w3c%5Fslidy%2Eadd%5Fclass%28w3c%5Fslidy%2Etoc%2C%20%22hidden%22%29%3B%0A%0A%20%20%20%20if%20%28focus%20%26%26%20%21w3c%5Fslidy%2Eopera%20%26%26%0A%20%20%20%20%20%20%20%20%21w3c%5Fslidy%2Ehas%5Fclass%28w3c%5Fslidy%2Etoc%2C%20%22hidden%22%29%29%0A%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Ffocus%28%29%3B%0A%20%20%7D%2C%0A%0A%20%20toggle%5Ftable%5Fof%5Fcontents%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28w3c%5Fslidy%2Eis%5Fshown%5Ftoc%28%29%29%0A%20%20%20%20%20%20w3c%5Fslidy%2Ehide%5Ftable%5Fof%5Fcontents%28true%29%3B%0A%20%20%20%20else%0A%20%20%20%20%20%20w3c%5Fslidy%2Eshow%5Ftable%5Fof%5Fcontents%28%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20called%20on%20clicking%20toc%20entry%0A%20%20toc%5Fclick%3A%20function%20%28e%29%20%7B%0A%20%20%20%20if%20%28%21e%29%0A%20%20%20%20%20%20e%20%3D%20window%2Eevent%3B%0A%0A%20%20%20%20var%20target%20%3D%20w3c%5Fslidy%2Eget%5Ftarget%28e%29%3B%0A%0A%20%20%20%20if%20%28target%20%26%26%20target%2EnodeType%20%3D%3D%201%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20uri%20%3D%20target%2EgetAttribute%28%22href%22%29%3B%0A%0A%20%20%20%20%20%20if%20%28uri%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2Falert%28%22going%20to%20%22%20%2B%20uri%29%3B%0A%20%20%20%20%20%20%20%20var%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Ehide%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eslide%5Fnumber%20%3D%20w3c%5Fslidy%2Efind%5Fslide%5Fnumber%28uri%29%3B%0A%20%20%20%20%20%20%20%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fshown%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Flocation%28%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Fvisibility%5Fall%5Fincremental%28%22hidden%22%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Feos%5Fstatus%28%21w3c%5Fslidy%2Enext%5Fincremental%5Fitem%28w3c%5Fslidy%2Elast%5Fshown%29%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%20%20%2F%2Ftarget%2Efocus%28%29%3B%0A%0A%20%20%20%20%20%20%20%20try%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21w3c%5Fslidy%2Eopera%29%0A%20%20%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Ffocus%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20catch%20%28e%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20w3c%5Fslidy%2Ehide%5Ftable%5Fof%5Fcontents%28true%29%3B%0A%20%20%20%20if%20%28w3c%5Fslidy%2Eie7%29%20w3c%5Fslidy%2Eie%5Fhack%28%29%3B%0A%20%20%20%20w3c%5Fslidy%2Estop%5Fpropagation%28e%29%3B%0A%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28e%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20called%20onkeydown%20for%20toc%20entry%0A%20%20toc%5Fkey%5Fdown%3A%20function%20%28event%29%20%7B%0A%20%20%20%20var%20key%3B%0A%0A%20%20%20%20if%20%28%21event%29%0A%20%20%20%20%20%20var%20event%20%3D%20window%2Eevent%3B%0A%0A%20%20%20%20%2F%2F%20kludge%20around%20NS%2FIE%20differences%20%0A%20%20%20%20if%20%28window%2Eevent%29%0A%20%20%20%20%20%20key%20%3D%20window%2Eevent%2EkeyCode%3B%0A%20%20%20%20else%20if%20%28event%2Ewhich%29%0A%20%20%20%20%20%20key%20%3D%20event%2Ewhich%3B%0A%20%20%20%20else%0A%20%20%20%20%20%20return%20true%3B%20%2F%2F%20Yikes%21%20unknown%20browser%0A%0A%20%20%20%20%2F%2F%20ignore%20event%20if%20key%20value%20is%20zero%0A%20%20%20%20%2F%2F%20as%20for%20alt%20on%20Opera%20and%20Konqueror%0A%20%20%20%20if%20%28%21key%29%0A%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20%2F%2F%20check%20for%20concurrent%20control%2Fcommand%2Falt%20key%0A%20%20%20%20%2F%2F%20but%20are%20these%20only%20present%20on%20mouse%20events%3F%0A%0A%20%20%20%20if%20%28event%2EctrlKey%20%7C%7C%20event%2EaltKey%29%0A%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20if%20%28key%20%3D%3D%2013%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20uri%20%3D%20this%2EgetAttribute%28%22href%22%29%3B%0A%0A%20%20%20%20%20%20if%20%28uri%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2Falert%28%22going%20to%20%22%20%2B%20uri%29%3B%0A%20%20%20%20%20%20%20var%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Ehide%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eslide%5Fnumber%20%3D%20w3c%5Fslidy%2Efind%5Fslide%5Fnumber%28uri%29%3B%0A%20%20%20%20%20%20%20%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fshown%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Flocation%28%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Fvisibility%5Fall%5Fincremental%28%22hidden%22%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Feos%5Fstatus%28%21w3c%5Fslidy%2Enext%5Fincremental%5Fitem%28w3c%5Fslidy%2Elast%5Fshown%29%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%20%20%2F%2Ftarget%2Efocus%28%29%3B%0A%0A%20%20%20%20%20%20%20%20try%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21w3c%5Fslidy%2Eopera%29%0A%20%20%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Ffocus%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20catch%20%28e%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20w3c%5Fslidy%2Ehide%5Ftable%5Fof%5Fcontents%28true%29%3B%0A%0A%20%20%20%20%20%20if%20%28self%2Eie7%29%0A%20%20%20%20%20%20%20w3c%5Fslidy%2Eie%5Fhack%28%29%3B%0A%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28key%20%3D%3D%2040%20%26%26%20this%2Enext%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20this%2Enext%2Efocus%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28key%20%3D%3D%2038%20%26%26%20this%2Eprevious%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20this%2Eprevious%2Efocus%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20true%3B%0A%20%20%7D%2C%0A%0A%20%20touchstart%3A%20function%20%28e%29%0A%20%20%7B%0A%20%20%20%20%2F%2F%20a%20double%20touch%20often%20starts%20with%20a%0A%20%20%20%20%2F%2F%20single%20touch%20due%20to%20fingers%20touching%0A%20%20%20%20%2F%2F%20down%20at%20slightly%20different%20times%0A%20%20%20%20%2F%2F%20thus%20avoid%20calling%20preventDefault%20here%0A%20%20%20%20this%2Eprev%5Ftap%20%3D%20this%2Elast%5Ftap%3B%0A%20%20%20%20this%2Elast%5Ftap%20%3D%20%28new%20Date%29%2EgetTime%28%29%3B%0A%0A%20%20%20%20var%20tap%5Fdelay%20%3D%20this%2Elast%5Ftap%20%2D%20this%2Eprev%5Ftap%3B%0A%0A%20%20%20%20if%20%28tap%5Fdelay%20%3C%3D%20200%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%2F%2F%20double%20tap%0A%20%20%20%20%7D%0A%0A%20%20%20%20var%20touch%20%3D%20e%2Etouches%5B0%5D%3B%0A%0A%20%20%20%20this%2EpageX%20%3D%20touch%2EpageX%3B%0A%20%20%20%20this%2EpageY%20%3D%20touch%2EpageY%3B%0A%20%20%20%20this%2EscreenX%20%3D%20touch%2EscreenX%3B%0A%20%20%20%20this%2EscreenY%20%3D%20touch%2EscreenY%3B%0A%20%20%20%20this%2EclientX%20%3D%20touch%2EclientX%3B%0A%20%20%20%20this%2EclientY%20%3D%20touch%2EclientY%3B%0A%0A%20%20%20%20this%2Edelta%5Fx%20%3D%20this%2Edelta%5Fy%20%3D%200%3B%0A%20%20%7D%2C%0A%0A%20%20touchmove%3A%20function%20%28e%29%0A%20%20%7B%0A%20%20%20%20%2F%2F%20override%20native%20gestures%20for%20single%20touch%0A%20%20%20%20if%20%28e%2Etouches%2Elength%20%3E%201%29%0A%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20e%2EpreventDefault%28%29%3B%0A%20%20%20%20var%20touch%20%3D%20e%2Etouches%5B0%5D%3B%0A%20%20%20%20this%2Edelta%5Fx%20%3D%20touch%2EpageX%20%2D%20this%2EpageX%3B%0A%20%20%20%20this%2Edelta%5Fy%20%3D%20touch%2EpageY%20%2D%20this%2EpageY%3B%0A%20%20%7D%2C%0A%0A%20%20touchend%3A%20function%20%28e%29%0A%20%20%7B%0A%20%20%20%20%2F%2F%20default%20behavior%20for%20multi%2Dtouch%0A%20%20%20%20if%20%28e%2Etouches%2Elength%20%3E%201%29%0A%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20var%20delay%20%3D%20%28new%20Date%29%2EgetTime%28%29%20%2D%20this%2Elast%5Ftap%3B%0A%20%20%20%20var%20dx%20%3D%20this%2Edelta%5Fx%3B%0A%20%20%20%20var%20dy%20%3D%20this%2Edelta%5Fy%3B%0A%20%20%20%20var%20abs%5Fdx%20%3D%20Math%2Eabs%28dx%29%3B%0A%20%20%20%20var%20abs%5Fdy%20%3D%20Math%2Eabs%28dy%29%3B%0A%0A%20%20%20%20if%20%28delay%20%3C%20500%20%26%26%20%28abs%5Fdx%20%3E%20100%20%7C%7C%20abs%5Fdy%20%3E%20100%29%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28abs%5Fdx%20%3E%200%2E5%20%2A%20abs%5Fdy%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20e%2EpreventDefault%28%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28dx%20%3C%200%29%0A%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Enext%5Fslide%28true%29%3B%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eprevious%5Fslide%28true%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20if%20%28abs%5Fdy%20%3E%202%20%2A%20abs%5Fdx%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20e%2EpreventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Etoggle%5Ftable%5Fof%5Fcontents%28%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20%23%23%23%20OBSOLETE%20%23%23%23%0A%20%20before%5Fprint%3A%20function%20%28%29%20%7B%0A%20%20%20%20this%2Eshow%5Fall%5Fslides%28%29%3B%0A%20%20%20%20this%2Ehide%5Ftoolbar%28%29%3B%0A%20%20%20%20alert%28%22before%20print%22%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20%23%23%23%20OBSOLETE%20%23%23%23%0A%20%20after%5Fprint%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28%21this%2Eview%5Fall%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20this%2Esingle%5Fslide%5Fview%28%29%3B%0A%20%20%20%20%20%20this%2Eshow%5Ftoolbar%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20alert%28%22after%20print%22%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20%23%23%23%20OBSOLETE%20%23%23%23%0A%20%20print%5Fslides%3A%20function%20%28%29%20%7B%0A%20%20%20%20this%2Ebefore%5Fprint%28%29%3B%0A%20%20%20%20window%2Eprint%28%29%3B%0A%20%20%20%20this%2Eafter%5Fprint%28%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20%23%23%23%20OBSOLETE%20%3F%3F%20%23%23%23%0A%20%20toggle%5Fview%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28this%2Eview%5Fall%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20this%2Esingle%5Fslide%5Fview%28%29%3B%0A%20%20%20%20%20%20this%2Eshow%5Ftoolbar%28%29%3B%0A%20%20%20%20%20%20this%2Eview%5Fall%20%3D%200%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%0A%20%20%20%20%7B%0A%20%20%20%20%20%20this%2Eshow%5Fall%5Fslides%28%29%3B%0A%20%20%20%20%20%20this%2Ehide%5Ftoolbar%28%29%3B%0A%20%20%20%20%20%20this%2Eview%5Fall%20%3D%201%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20prepare%20for%20printing%20%20%23%23%23%20OBSOLETE%20%23%23%23%0A%20%20show%5Fall%5Fslides%3A%20function%20%28%29%20%7B%0A%20%20%20%20this%2Eremove%5Fclass%28document%2Ebody%2C%20%22single%5Fslide%22%29%3B%0A%20%20%20%20this%2Eset%5Fvisibility%5Fall%5Fincremental%28%22visible%22%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20restore%20after%20printing%20%20%23%23%23%20OBSOLETE%20%23%23%23%0A%20%20single%5Fslide%5Fview%3A%20function%20%28%29%20%7B%0A%20%20%20%20this%2Eadd%5Fclass%28document%2Ebody%2C%20%22single%5Fslide%22%29%3B%0A%20%20%20%20this%2Eset%5Fvisibility%5Fall%5Fincremental%28%22visible%22%29%3B%0A%20%20%20%20this%2Elast%5Fshown%20%3D%20this%2Eprevious%5Fincremental%5Fitem%28null%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20suppress%20IE%27s%20image%20toolbar%20pop%20up%0A%20%20hide%5Fimage%5Ftoolbar%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28%21this%2Ens%5Fpos%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20images%20%3D%20document%2EgetElementsByTagName%28%22IMG%22%29%3B%0A%0A%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20images%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%20%20%20%20images%5Bi%5D%2EsetAttribute%28%22galleryimg%22%2C%20%22no%22%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20unloaded%3A%20function%20%28e%29%20%7B%0A%20%20%20%20%2F%2Falert%28%22unloaded%22%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20Safari%20and%20Konqueror%20don%27t%20yet%20support%20getComputedStyle%28%29%0A%20%20%2F%2F%20and%20they%20always%20reload%20page%20when%20location%2Ehref%20is%20updated%0A%20%20is%5FKHTML%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20agent%20%3D%20navigator%2EuserAgent%3B%0A%20%20%20%20return%20%28agent%2EindexOf%28%22KHTML%22%29%20%3E%3D%200%20%3F%20true%20%3A%20false%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20find%20slide%20name%20from%20first%20h1%20element%0A%20%20%2F%2F%20default%20to%20document%20title%20%2B%20slide%20number%0A%20%20slide%5Fname%3A%20function%20%28index%29%20%7B%0A%20%20%20%20var%20name%20%3D%20null%3B%0A%20%20%20%20var%20slide%20%3D%20this%2Eslides%5Bindex%5D%3B%0A%0A%20%20%20%20var%20heading%20%3D%20this%2Efind%5Fheading%28slide%29%3B%0A%0A%20%20%20%20if%20%28heading%29%0A%20%20%20%20%20%20name%20%3D%20this%2Eextract%5Ftext%28heading%29%3B%0A%0A%20%20%20%20if%20%28%21name%29%0A%20%20%20%20%20%20name%20%3D%20this%2Etitle%20%2B%20%22%28%22%20%2B%20%28index%20%2B%201%29%20%2B%20%22%29%22%3B%0A%0A%20%20%20%20name%2Ereplace%28%2F%5C%26%2Fg%2C%20%22%26amp%3B%22%29%3B%0A%20%20%20%20name%2Ereplace%28%2F%5C%3C%2Fg%2C%20%22%26lt%3B%22%29%3B%0A%20%20%20%20name%2Ereplace%28%2F%5C%3E%2Fg%2C%20%22%26gt%3B%22%29%3B%0A%0A%20%20%20%20return%20name%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20find%20first%20h1%20element%20in%20DOM%20tree%0A%20%20find%5Fheading%3A%20function%20%28node%29%20%7B%0A%20%20%20%20if%20%28%21node%20%7C%7C%20node%2EnodeType%20%21%3D%201%29%0A%20%20%20%20%20%20return%20null%3B%0A%0A%20%20%20%20if%20%28node%2EnodeName%20%3D%3D%20%22H1%22%20%7C%7C%20node%2EnodeName%20%3D%3D%20%22h1%22%29%0A%20%20%20%20%20%20return%20node%3B%0A%0A%20%20%20%20var%20child%20%3D%20node%2EfirstChild%3B%0A%0A%20%20%20%20while%20%28child%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20node%20%3D%20this%2Efind%5Fheading%28child%29%3B%0A%0A%20%20%20%20%20%20if%20%28node%29%0A%20%20%20%20%20%20%20%20return%20node%3B%0A%0A%20%20%20%20%20%20child%20%3D%20child%2EnextSibling%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20null%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20recursively%20extract%20text%20from%20DOM%20tree%0A%20%20extract%5Ftext%3A%20function%20%28node%29%20%7B%0A%20%20%20%20if%20%28%21node%29%0A%20%20%20%20%20%20return%20%22%22%3B%0A%0A%20%20%20%20%2F%2F%20text%20nodes%0A%20%20%20%20if%20%28node%2EnodeType%20%3D%3D%203%29%0A%20%20%20%20%20%20return%20node%2EnodeValue%3B%0A%0A%20%20%20%20%2F%2F%20elements%0A%20%20%20%20if%20%28node%2EnodeType%20%3D%3D%201%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20node%20%3D%20node%2EfirstChild%3B%0A%20%20%20%20%20%20var%20text%20%3D%20%22%22%3B%0A%0A%20%20%20%20%20%20while%20%28node%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20text%20%3D%20text%20%2B%20this%2Eextract%5Ftext%28node%29%3B%0A%20%20%20%20%20%20%20%20node%20%3D%20node%2EnextSibling%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20return%20text%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20%22%22%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20find%20copyright%20text%20from%20meta%20element%0A%20%20find%5Fcopyright%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20name%2C%20content%3B%0A%20%20%20%20var%20meta%20%3D%20document%2EgetElementsByTagName%28%22meta%22%29%3B%0A%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20meta%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20name%20%3D%20meta%5Bi%5D%2EgetAttribute%28%22name%22%29%3B%0A%20%20%20%20%20%20content%20%3D%20meta%5Bi%5D%2EgetAttribute%28%22content%22%29%3B%0A%0A%20%20%20%20%20%20if%20%28name%20%3D%3D%20%22copyright%22%29%0A%20%20%20%20%20%20%20%20return%20content%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20null%3B%0A%20%20%7D%2C%0A%0A%20%20find%5Fsize%5Fadjust%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20name%2C%20content%2C%20offset%3B%0A%20%20%20%20var%20meta%20%3D%20document%2EgetElementsByTagName%28%22meta%22%29%3B%0A%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20meta%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20name%20%3D%20meta%5Bi%5D%2EgetAttribute%28%22name%22%29%3B%0A%20%20%20%20%20%20content%20%3D%20meta%5Bi%5D%2EgetAttribute%28%22content%22%29%3B%0A%0A%20%20%20%20%20%20if%20%28name%20%3D%3D%20%22font%2Dsize%2Dadjustment%22%29%0A%20%20%20%20%20%20%20%20return%201%20%2A%20content%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%201%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20%3Cmeta%20name%3D%22duration%22%20content%3D%2220%22%20%2F%3E%20%20for%2020%20minutes%0A%20%20find%5Fduration%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20name%2C%20content%2C%20offset%3B%0A%20%20%20%20var%20meta%20%3D%20document%2EgetElementsByTagName%28%22meta%22%29%3B%0A%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20meta%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20name%20%3D%20meta%5Bi%5D%2EgetAttribute%28%22name%22%29%3B%0A%20%20%20%20%20%20content%20%3D%20meta%5Bi%5D%2EgetAttribute%28%22content%22%29%3B%0A%0A%20%20%20%20%20%20if%20%28name%20%3D%3D%20%22duration%22%29%0A%20%20%20%20%20%20%20%20return%2060000%20%2A%20content%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20null%3B%0A%20%20%7D%2C%0A%0A%20%20replace%5Fby%5Fnon%5Fbreaking%5Fspace%3A%20function%20%28str%29%20%7B%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20str%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%20%20str%5Bi%5D%20%3D%20160%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20%23%23%23%20CHECK%20ME%20%23%23%23%20is%20use%20of%20%22li%22%20okay%20for%20text%2Fhtml%3F%0A%20%20%2F%2F%20for%20XHTML%20do%20we%20also%20need%20to%20specify%20namespace%3F%0A%20%20init%5Foutliner%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20items%20%3D%20document%2EgetElementsByTagName%28%22li%22%29%3B%0A%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20items%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20target%20%3D%20items%5Bi%5D%3B%0A%0A%20%20%20%20%20%20if%20%28%21this%2Ehas%5Fclass%28target%2EparentNode%2C%20%22outline%22%29%29%0A%20%20%20%20%20%20%20%20continue%3B%0A%0A%20%20%20%20%20%20target%2Eonclick%20%3D%20this%2Eoutline%5Fclick%3B%0A%2F%2A%20%23%23%23%20more%20work%20needed%20for%20IE6%0A%20%20%20%20%20%20if%20%28%21this%2Ens%5Fpos%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20target%2Eonmouseover%20%3D%20this%2Ehover%5Foutline%3B%0A%20%20%20%20%20%20%20%20target%2Eonmouseout%20%3D%20this%2Eunhover%5Foutline%3B%0A%20%20%20%20%20%20%7D%0A%2A%2F%0A%20%20%20%20%20%20if%20%28this%2Efoldable%28target%29%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20target%2Efoldable%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20target%2Eonfocus%20%3D%20function%20%28%29%20%7Bw3c%5Fslidy%2Eoutline%20%3D%20this%3B%7D%3B%0A%20%20%20%20%20%20%20%20target%2Eonblur%20%3D%20function%20%28%29%20%7Bw3c%5Fslidy%2Eoutline%20%3D%20null%3B%7D%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28%21target%2EgetAttribute%28%22tabindex%22%29%29%0A%20%20%20%20%20%20%20%20%20%20target%2EsetAttribute%28%22tabindex%22%2C%20%220%22%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28this%2Ehas%5Fclass%28target%2C%20%22expand%22%29%29%0A%20%20%20%20%20%20%20%20%20%20this%2Eunfold%28target%29%3B%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20this%2Efold%28target%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20this%2Eadd%5Fclass%28target%2C%20%22nofold%22%29%3B%0A%20%20%20%20%20%20%20%20target%2Evisible%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20target%2Efoldable%20%3D%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20foldable%3A%20function%20%28item%29%20%7B%0A%20%20%20%20if%20%28%21item%20%7C%7C%20item%2EnodeType%20%21%3D%201%29%0A%20%20%20%20%20%20return%20false%3B%0A%0A%20%20%20%20var%20node%20%3D%20item%2EfirstChild%3B%0A%0A%20%20%20%20while%20%28node%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28node%2EnodeType%20%3D%3D%201%20%26%26%20this%2Eis%5Fblock%28node%29%29%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20%20%20node%20%3D%20node%2EnextSibling%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20false%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20%23%23%23%20CHECK%20ME%20%23%23%23%20switch%20to%20add%2Fremove%20%22hidden%22%20class%0A%20%20fold%3A%20function%20%28item%29%20%7B%0A%20%20%20%20if%20%28item%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20this%2Eremove%5Fclass%28item%2C%20%22unfolded%22%29%3B%0A%20%20%20%20%20%20this%2Eadd%5Fclass%28item%2C%20%22folded%22%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20var%20node%20%3D%20item%20%3F%20item%2EfirstChild%20%3A%20null%3B%0A%0A%20%20%20%20while%20%28node%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28node%2EnodeType%20%3D%3D%201%20%26%26%20this%2Eis%5Fblock%28node%29%29%20%2F%2F%20element%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eadd%5Fclass%28node%2C%20%22hidden%22%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20node%20%3D%20node%2EnextSibling%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20item%2Evisible%20%3D%20false%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20%23%23%23%20CHECK%20ME%20%23%23%23%20switch%20to%20add%2Fremove%20%22hidden%22%20class%0A%20%20unfold%3A%20function%20%28item%29%20%7B%0A%20%20%20%20if%20%28item%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20this%2Eadd%5Fclass%28item%2C%20%22unfolded%22%29%3B%0A%20%20%20%20%20%20this%2Eremove%5Fclass%28item%2C%20%22folded%22%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20var%20node%20%3D%20item%20%3F%20item%2EfirstChild%20%3A%20null%3B%0A%0A%20%20%20%20while%20%28node%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28node%2EnodeType%20%3D%3D%201%20%26%26%20this%2Eis%5Fblock%28node%29%29%20%2F%2F%20element%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eremove%5Fclass%28node%2C%20%22hidden%22%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20node%20%3D%20node%2EnextSibling%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20item%2Evisible%20%3D%20true%3B%0A%20%20%7D%2C%0A%0A%20%20outline%5Fclick%3A%20function%20%28e%29%20%7B%0A%20%20%20%20if%20%28%21e%29%0A%20%20%20%20%20%20e%20%3D%20window%2Eevent%3B%0A%0A%20%20%20%20var%20rightclick%20%3D%20false%3B%0A%20%20%20%20var%20target%20%3D%20w3c%5Fslidy%2Eget%5Ftarget%28e%29%3B%0A%0A%20%20%20%20while%20%28target%20%26%26%20target%2Evisible%20%3D%3D%20undefined%29%0A%20%20%20%20%20%20target%20%3D%20target%2EparentNode%3B%0A%0A%20%20%20%20if%20%28%21target%29%0A%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20if%20%28e%2Ewhich%29%0A%20%20%20%20%20%20rightclick%20%3D%20%28e%2Ewhich%20%3D%3D%203%29%3B%0A%20%20%20%20else%20if%20%28e%2Ebutton%29%0A%20%20%20%20%20%20rightclick%20%3D%20%28e%2Ebutton%20%3D%3D%202%29%3B%0A%0A%20%20%20%20if%20%28%21rightclick%20%26%26%20target%2Evisible%20%21%3D%20undefined%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28target%2Efoldable%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20%28target%2Evisible%29%0A%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Efold%28target%29%3B%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eunfold%28target%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20w3c%5Fslidy%2Estop%5Fpropagation%28e%29%3B%0A%20%20%20%20%20%20e%2Ecancel%20%3D%20true%3B%0A%20%20%20%20%20%20e%2EreturnValue%20%3D%20false%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20false%3B%0A%20%20%7D%2C%0A%0A%20%20add%5Finitial%5Fprompt%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20prompt%20%3D%20this%2Ecreate%5Felement%28%22div%22%29%3B%0A%20%20%20%20prompt%2EsetAttribute%28%22class%22%2C%20%22initial%5Fprompt%22%29%3B%0A%0A%20%20%20%20var%20p1%20%3D%20this%2Ecreate%5Felement%28%22p%22%29%3B%0A%20%20%20%20prompt%2EappendChild%28p1%29%3B%0A%20%20%20%20p1%2EsetAttribute%28%22class%22%2C%20%22help%22%29%3B%0A%0A%20%20%20%20if%20%28this%2Ekeyboardless%29%0A%20%20%20%20%20%20p1%2EinnerHTML%20%3D%20%22swipe%20left%20to%20move%20to%20next%20slide%22%3B%0A%20%20%20%20else%0A%20%20%20%20%20%20p1%2EinnerHTML%20%3D%20%22Space%2C%20Right%20Arrow%20or%20swipe%20left%20to%20move%20to%20%22%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22next%20slide%2C%20click%20help%20below%20for%20more%20details%22%3B%0A%0A%20%20%20%20this%2Eadd%5Flistener%28prompt%2C%20%22click%22%2C%20function%20%28e%29%20%7B%0A%20%20%20%20%20%20document%2Ebody%2EremoveChild%28prompt%29%3B%0A%20%20%20%20%20%20w3c%5Fslidy%2Estop%5Fpropagation%28e%29%3B%0A%20%20%20%20%0A%20%20%20%20%20%20if%20%28e%2Ecancel%20%21%3D%20undefined%29%0A%20%20%20%20%20%20%20%20e%2Ecancel%20%3D%20true%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20if%20%28e%2EreturnValue%20%21%3D%20undefined%29%0A%20%20%20%20%20%20%20%20e%2EreturnValue%20%3D%20false%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%29%3B%0A%0A%20%20%20%20document%2Ebody%2EappendChild%28prompt%29%3B%0A%20%20%20%20this%2Einitial%5Fprompt%20%3D%20prompt%3B%0A%20%20%20%20setTimeout%28function%28%29%20%7Bdocument%2Ebody%2EremoveChild%28prompt%29%3B%7D%2C%205000%29%3B%0A%20%20%7D%2C%0A%0A%20%20add%5Ftoolbar%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20counter%2C%20page%3B%0A%0A%20%20%20%20%20this%2Etoolbar%20%3D%20this%2Ecreate%5Felement%28%22div%22%29%3B%0A%20%20%20%20%20this%2Etoolbar%2EsetAttribute%28%22class%22%2C%20%22toolbar%22%29%3B%0A%0A%20%20%20%20%20%2F%2F%20a%20reasonably%20behaved%20browser%0A%20%20%20%20%20if%20%28this%2Ens%5Fpos%20%7C%7C%20%21this%2Eie6%29%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20var%20right%20%3D%20this%2Ecreate%5Felement%28%22div%22%29%3B%0A%20%20%20%20%20%20%20right%2EsetAttribute%28%22style%22%2C%20%22float%3A%20right%3B%20text%2Dalign%3A%20right%22%29%3B%0A%0A%20%20%20%20%20%20%20counter%20%3D%20this%2Ecreate%5Felement%28%22span%22%29%0A%20%20%20%20%20%20%20counter%2EinnerHTML%20%3D%20this%2Elocalize%28%22slide%22%29%20%2B%20%22%20n%2Fm%22%3B%0A%20%20%20%20%20%20%20right%2EappendChild%28counter%29%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2EappendChild%28right%29%3B%0A%0A%20%20%20%20%20%20%20var%20left%20%3D%20this%2Ecreate%5Felement%28%22div%22%29%3B%0A%20%20%20%20%20%20%20left%2EsetAttribute%28%22style%22%2C%20%22text%2Dalign%3A%20left%22%29%3B%0A%0A%20%20%20%20%20%20%20%2F%2F%20global%20end%20of%20slide%20indicator%0A%20%20%20%20%20%20%20this%2Eeos%20%3D%20this%2Ecreate%5Felement%28%22span%22%29%3B%0A%20%20%20%20%20%20%20this%2Eeos%2EinnerHTML%20%3D%20%22%2A%20%22%3B%0A%20%20%20%20%20%20%20left%2EappendChild%28this%2Eeos%29%3B%0A%0A%20%20%20%20%20%20%20var%20help%20%3D%20this%2Ecreate%5Felement%28%22a%22%29%3B%0A%20%20%20%20%20%20%20help%2EsetAttribute%28%22href%22%2C%20this%2Ehelp%5Fpage%29%3B%0A%20%20%20%20%20%20%20help%2EsetAttribute%28%22title%22%2C%20this%2Elocalize%28this%2Ehelp%5Ftext%29%29%3B%0A%20%20%20%20%20%20%20help%2EinnerHTML%20%3D%20this%2Elocalize%28%22help%3F%22%29%3B%0A%20%20%20%20%20%20%20left%2EappendChild%28help%29%3B%0A%20%20%20%20%20%20%20this%2Ehelp%5Fanchor%20%3D%20help%3B%20%20%2F%2F%20save%20for%20focus%20hack%0A%0A%20%20%20%20%20%20%20var%20gap1%20%3D%20document%2EcreateTextNode%28%22%20%22%29%3B%0A%20%20%20%20%20%20%20left%2EappendChild%28gap1%29%3B%0A%0A%20%20%20%20%20%20%20var%20contents%20%3D%20this%2Ecreate%5Felement%28%22a%22%29%3B%0A%20%20%20%20%20%20%20contents%2EsetAttribute%28%22href%22%2C%20%22javascript%3Aw3c%5Fslidy%2Etoggle%5Ftable%5Fof%5Fcontents%28%29%22%29%3B%0A%20%20%20%20%20%20%20contents%2EsetAttribute%28%22title%22%2C%20this%2Elocalize%28%22table%20of%20contents%22%29%29%3B%0A%20%20%20%20%20%20%20contents%2EinnerHTML%20%3D%20this%2Elocalize%28%22contents%3F%22%29%3B%0A%20%20%20%20%20%20%20left%2EappendChild%28contents%29%3B%0A%0A%20%20%20%20%20%20%20var%20gap2%20%3D%20document%2EcreateTextNode%28%22%20%22%29%3B%0A%20%20%20%20%20%20%20left%2EappendChild%28gap2%29%3B%0A%0A%20%20%20%20%20%20%20var%20copyright%20%3D%20this%2Efind%5Fcopyright%28%29%3B%0A%0A%20%20%20%20%20%20%20if%20%28copyright%29%0A%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20var%20span%20%3D%20this%2Ecreate%5Felement%28%22span%22%29%3B%0A%20%20%20%20%20%20%20%20%20span%2EclassName%20%3D%20%22copyright%22%3B%0A%20%20%20%20%20%20%20%20%20span%2EinnerHTML%20%3D%20copyright%3B%0A%20%20%20%20%20%20%20%20%20left%2EappendChild%28span%29%3B%0A%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20this%2Etoolbar%2EsetAttribute%28%22tabindex%22%2C%20%220%22%29%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2EappendChild%28left%29%3B%0A%20%20%20%20%20%7D%0A%20%20%20%20%20else%20%2F%2F%20IE6%20so%20need%20to%20work%20around%20its%20poor%20CSS%20support%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20this%2Etoolbar%2Estyle%2Eposition%20%3D%20%28this%2Eie7%20%3F%20%22fixed%22%20%3A%20%22absolute%22%29%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2Estyle%2EzIndex%20%3D%20%22200%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2Estyle%2Ewidth%20%3D%20%2299%2E9%25%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2Estyle%2Eheight%20%3D%20%221%2E2em%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2Estyle%2Etop%20%3D%20%22auto%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2Estyle%2Ebottom%20%3D%20%220%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2Estyle%2Eleft%20%3D%20%220%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2Estyle%2Eright%20%3D%20%220%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2Estyle%2EtextAlign%20%3D%20%22left%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2Estyle%2EfontSize%20%3D%20%2260%25%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2Estyle%2Ecolor%20%3D%20%22red%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2EborderWidth%20%3D%200%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2EclassName%20%3D%20%22toolbar%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2Estyle%2Ebackground%20%3D%20%22rgb%28240%2C240%2C240%29%22%3B%0A%0A%20%20%20%20%20%20%20%2F%2F%20would%20like%20to%20have%20help%20text%20left%20aligned%0A%20%20%20%20%20%20%20%2F%2F%20and%20page%20counter%20right%20aligned%2C%20floating%0A%20%20%20%20%20%20%20%2F%2F%20div%27s%20don%27t%20work%2C%20so%20instead%20use%20nested%0A%20%20%20%20%20%20%20%2F%2F%20absolutely%20positioned%20div%27s%2E%0A%0A%20%20%20%20%20%20%20var%20sp%20%3D%20this%2Ecreate%5Felement%28%22span%22%29%3B%0A%20%20%20%20%20%20%20sp%2EinnerHTML%20%3D%20%22%26nbsp%3B%26nbsp%3B%2A%26nbsp%3B%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2EappendChild%28sp%29%3B%0A%20%20%20%20%20%20%20this%2Eeos%20%3D%20sp%3B%20%20%2F%2F%20end%20of%20slide%20indicator%0A%0A%20%20%20%20%20%20%20var%20help%20%3D%20this%2Ecreate%5Felement%28%22a%22%29%3B%0A%20%20%20%20%20%20%20help%2EsetAttribute%28%22href%22%2C%20this%2Ehelp%5Fpage%29%3B%0A%20%20%20%20%20%20%20help%2EsetAttribute%28%22title%22%2C%20this%2Elocalize%28this%2Ehelp%5Ftext%29%29%3B%0A%20%20%20%20%20%20%20help%2EinnerHTML%20%3D%20this%2Elocalize%28%22help%3F%22%29%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2EappendChild%28help%29%3B%0A%20%20%20%20%20%20%20this%2Ehelp%5Fanchor%20%3D%20help%3B%20%20%2F%2F%20save%20for%20focus%20hack%0A%0A%20%20%20%20%20%20%20var%20gap1%20%3D%20document%2EcreateTextNode%28%22%20%22%29%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2EappendChild%28gap1%29%3B%0A%0A%20%20%20%20%20%20%20var%20contents%20%3D%20this%2Ecreate%5Felement%28%22a%22%29%3B%0A%20%20%20%20%20%20%20contents%2EsetAttribute%28%22href%22%2C%20%22javascript%3AtoggleTableOfContents%28%29%22%29%3B%0A%20%20%20%20%20%20%20contents%2EsetAttribute%28%22title%22%2C%20this%2Elocalize%28%22table%20of%20contents%22%2Elocalize%29%29%3B%0A%20%20%20%20%20%20%20contents%2EinnerHTML%20%3D%20this%2Elocalize%28%22contents%3F%22%29%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2EappendChild%28contents%29%3B%0A%0A%20%20%20%20%20%20%20var%20gap2%20%3D%20document%2EcreateTextNode%28%22%20%22%29%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2EappendChild%28gap2%29%3B%0A%0A%20%20%20%20%20%20%20var%20copyright%20%3D%20this%2Efind%5Fcopyright%28%29%3B%0A%0A%20%20%20%20%20%20%20if%20%28copyright%29%0A%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20var%20span%20%3D%20this%2Ecreate%5Felement%28%22span%22%29%3B%0A%20%20%20%20%20%20%20%20%20span%2EinnerHTML%20%3D%20copyright%3B%0A%20%20%20%20%20%20%20%20%20span%2Estyle%2Ecolor%20%3D%20%22black%22%3B%0A%20%20%20%20%20%20%20%20%20span%2Estyle%2EmarginLeft%20%3D%20%220%2E5em%22%3B%0A%20%20%20%20%20%20%20%20%20this%2Etoolbar%2EappendChild%28span%29%3B%0A%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20counter%20%3D%20this%2Ecreate%5Felement%28%22div%22%29%0A%20%20%20%20%20%20%20counter%2Estyle%2Eposition%20%3D%20%22absolute%22%3B%0A%20%20%20%20%20%20%20counter%2Estyle%2Ewidth%20%3D%20%22auto%22%3B%20%2F%2F%2220%25%22%3B%0A%20%20%20%20%20%20%20counter%2Estyle%2Eheight%20%3D%20%221%2E2em%22%3B%0A%20%20%20%20%20%20%20counter%2Estyle%2Etop%20%3D%20%22auto%22%3B%0A%20%20%20%20%20%20%20counter%2Estyle%2Ebottom%20%3D%200%3B%0A%20%20%20%20%20%20%20counter%2Estyle%2Eright%20%3D%20%220%22%3B%0A%20%20%20%20%20%20%20counter%2Estyle%2EtextAlign%20%3D%20%22right%22%3B%0A%20%20%20%20%20%20%20counter%2Estyle%2Ecolor%20%3D%20%22red%22%3B%0A%20%20%20%20%20%20%20counter%2Estyle%2Ebackground%20%3D%20%22rgb%28240%2C240%2C240%29%22%3B%0A%0A%20%20%20%20%20%20%20counter%2EinnerHTML%20%3D%20this%2Elocalize%28%22slide%22%29%20%2B%20%22%20n%2Fm%22%3B%0A%20%20%20%20%20%20%20this%2Etoolbar%2EappendChild%28counter%29%3B%0A%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%2F%2F%20ensure%20that%20click%20isn%27t%20passed%20through%20to%20the%20page%0A%20%20%20%20%20this%2Etoolbar%2Eonclick%20%3D%0A%20%20%20%20%20%20%20%20%20function%20%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%21e%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20e%20%3D%20window%2Eevent%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20var%20target%20%3D%20e%2Etarget%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%21target%20%26%26%20e%2EsrcElement%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20target%20%3D%20e%2EsrcElement%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20work%20around%20Safari%20bug%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28target%20%26%26%20target%2EnodeType%20%3D%3D%203%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20target%20%3D%20target%2EparentNode%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Estop%5Fpropagation%28e%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28target%20%26%26%20target%2EnodeName%2EtoLowerCase%28%29%20%21%3D%20%22a%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Emouse%5Fbutton%5Fclick%28e%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20%20%20this%2Eslide%5Fnumber%5Felement%20%3D%20counter%3B%0A%20%20%20%20%20this%2Eset%5Feos%5Fstatus%28false%29%3B%0A%20%20%20%20%20document%2Ebody%2EappendChild%28this%2Etoolbar%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20wysiwyg%20editors%20make%20it%20hard%20to%20use%20div%20elements%0A%20%20%2F%2F%20e%2Eg%2E%20amaya%20loses%20the%20div%20when%20you%20copy%20and%20paste%0A%20%20%2F%2F%20this%20function%20wraps%20div%20elements%20around%20implicit%0A%20%20%2F%2F%20slides%20which%20start%20with%20an%20h1%20element%20and%20continue%0A%20%20%2F%2F%20up%20to%20the%20next%20heading%20or%20div%20element%0A%20%20wrap%5Fimplicit%5Fslides%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20i%2C%20heading%2C%20node%2C%20next%2C%20div%3B%0A%20%20%20%20var%20headings%20%3D%20document%2EgetElementsByTagName%28%22h1%22%29%3B%0A%0A%20%20%20%20if%20%28%21headings%29%0A%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20for%20%28i%20%3D%200%3B%20i%20%3C%20headings%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20heading%20%3D%20headings%5Bi%5D%3B%0A%0A%20%20%20%20%20%20if%20%28heading%2EparentNode%20%21%3D%20document%2Ebody%29%0A%20%20%20%20%20%20%20%20continue%3B%0A%0A%20%20%20%20%20%20node%20%3D%20heading%2EnextSibling%3B%0A%0A%20%20%20%20%20%20div%20%3D%20document%2EcreateElement%28%22div%22%29%3B%0A%20%20%20%20%20%20this%2Eadd%5Fclass%28div%2C%20%22slide%22%29%3B%0A%20%20%20%20%20%20document%2Ebody%2EreplaceChild%28div%2C%20heading%29%3B%0A%20%20%20%20%20%20div%2EappendChild%28heading%29%3B%0A%0A%20%20%20%20%20%20while%20%28node%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20%28node%2EnodeType%20%3D%3D%201%29%20%2F%2F%20an%20element%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28node%2EnodeName%20%3D%3D%20%22H1%22%20%7C%7C%20node%2EnodeName%20%3D%3D%20%22h1%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28node%2EnodeName%20%3D%3D%20%22DIV%22%20%7C%7C%20node%2EnodeName%20%3D%3D%20%22div%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28this%2Ehas%5Fclass%28node%2C%20%22slide%22%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28this%2Ehas%5Fclass%28node%2C%20%22handout%22%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20next%20%3D%20node%2EnextSibling%3B%0A%20%20%20%20%20%20%20%20node%20%3D%20document%2Ebody%2EremoveChild%28node%29%3B%0A%20%20%20%20%20%20%20%20div%2EappendChild%28node%29%3B%0A%20%20%20%20%20%20%20%20node%20%3D%20next%3B%0A%20%20%20%20%20%20%7D%20%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20attach%5Ftouch%5Fhanders%3A%20function%28slides%29%0A%20%20%7B%0A%20%20%20%20var%20i%2C%20slide%3B%0A%0A%20%20%20%20for%20%28i%20%3D%200%3B%20i%20%3C%20slides%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20slide%20%3D%20slides%5Bi%5D%3B%0A%20%20%20%20%20%20this%2Eadd%5Flistener%28slide%2C%20%22touchstart%22%2C%20this%2Etouchstart%29%3B%0A%20%20%20%20%20%20this%2Eadd%5Flistener%28slide%2C%20%22touchmove%22%2C%20this%2Etouchmove%29%3B%0A%20%20%20%20%20%20this%2Eadd%5Flistener%28slide%2C%20%22touchend%22%2C%20this%2Etouchend%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%2F%2F%20return%20new%20array%20of%20all%20slides%0A%20%20collect%5Fslides%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20slides%20%3D%20new%20Array%28%29%3B%0A%20%20%20%20var%20divs%20%3D%20document%2Ebody%2EgetElementsByTagName%28%22div%22%29%3B%0A%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20divs%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20div%20%3D%20divs%2Eitem%28i%29%3B%0A%0A%20%20%20%20%20%20if%20%28this%2Ehas%5Fclass%28div%2C%20%22slide%22%29%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20add%20slide%20to%20collection%0A%20%20%20%20%20%20%20%20slides%5Bslides%2Elength%5D%20%3D%20div%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20hide%20each%20slide%20as%20it%20is%20found%0A%20%20%20%20%20%20%20%20this%2Eadd%5Fclass%28div%2C%20%22hidden%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20add%20dummy%20%3Cbr%2F%3E%20at%20end%20for%20scrolling%20hack%0A%20%20%20%20%20%20%20%20var%20node1%20%3D%20document%2EcreateElement%28%22br%22%29%3B%0A%20%20%20%20%20%20%20%20div%2EappendChild%28node1%29%3B%0A%20%20%20%20%20%20%20%20var%20node2%20%3D%20document%2EcreateElement%28%22br%22%29%3B%0A%20%20%20%20%20%20%20%20div%2EappendChild%28node2%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20if%20%28this%2Ehas%5Fclass%28div%2C%20%22background%22%29%29%0A%20%20%20%20%20%20%7B%20%20%2F%2F%20work%20around%20for%20Firefox%20SVG%20reload%20bug%0A%20%20%20%20%20%20%20%20%2F%2F%20which%20otherwise%20replaces%201st%20SVG%20graphic%20with%202nd%0A%20%20%20%20%20%20%20%20div%2Estyle%2Edisplay%20%3D%20%22block%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20this%2Eslides%20%3D%20slides%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20return%20new%20array%20of%20all%20%3Cdiv%20class%3D%22handout%22%3E%0A%20%20collect%5Fnotes%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20notes%20%3D%20new%20Array%28%29%3B%0A%20%20%20%20var%20divs%20%3D%20document%2Ebody%2EgetElementsByTagName%28%22div%22%29%3B%0A%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20divs%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20div%20%3D%20divs%2Eitem%28i%29%3B%0A%0A%20%20%20%20%20%20if%20%28this%2Ehas%5Fclass%28div%2C%20%22handout%22%29%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20add%20note%20to%20collection%0A%20%20%20%20%20%20%20%20notes%5Bnotes%2Elength%5D%20%3D%20div%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20and%20hide%20it%0A%20%20%20%20%20%20%20%20this%2Eadd%5Fclass%28div%2C%20%22hidden%22%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20this%2Enotes%20%3D%20notes%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20return%20new%20array%20of%20all%20%3Cdiv%20class%3D%22background%22%3E%0A%20%20%2F%2F%20including%20named%20backgrounds%20e%2Eg%2E%20class%3D%22background%20titlepage%22%0A%20%20collect%5Fbackgrounds%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20backgrounds%20%3D%20new%20Array%28%29%3B%0A%20%20%20%20var%20divs%20%3D%20document%2Ebody%2EgetElementsByTagName%28%22div%22%29%3B%0A%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20divs%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20div%20%3D%20divs%2Eitem%28i%29%3B%0A%0A%20%20%20%20%20%20if%20%28this%2Ehas%5Fclass%28div%2C%20%22background%22%29%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20add%20background%20to%20collection%0A%20%20%20%20%20%20%20%20backgrounds%5Bbackgrounds%2Elength%5D%20%3D%20div%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20and%20hide%20it%0A%20%20%20%20%20%20%20%20this%2Eadd%5Fclass%28div%2C%20%22hidden%22%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20this%2Ebackgrounds%20%3D%20backgrounds%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20set%20click%20handlers%20on%20all%20anchors%0A%20%20patch%5Fanchors%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20self%20%3D%20w3c%5Fslidy%3B%0A%20%20%20%20var%20handler%20%3D%20function%20%28event%29%20%7B%0A%20%20%20%20%20%20%2F%2F%20compare%20this%2Ehref%20with%20location%2Ehref%0A%20%20%20%20%20%20%2F%2F%20for%20link%20to%20another%20slide%20in%20this%20doc%0A%0A%20%20%20%20%20%20if%20%28self%2Epage%5Faddress%28this%2Ehref%29%20%3D%3D%20self%2Epage%5Faddress%28location%2Ehref%29%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20yes%2C%20so%20find%20new%20slide%20number%0A%20%20%20%20%20%20%20%20var%20newslidenum%20%3D%20self%2Efind%5Fslide%5Fnumber%28this%2Ehref%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28newslidenum%20%21%3D%20self%2Eslide%5Fnumber%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20slide%20%3D%20self%2Eslides%5Bself%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20%20%20self%2Ehide%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%20%20%20%20self%2Eslide%5Fnumber%20%3D%20newslidenum%3B%0A%20%20%20%20%20%20%20%20%20%20slide%20%3D%20self%2Eslides%5Bself%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20%20%20self%2Eshow%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%20%20%20%20self%2Eset%5Flocation%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Estop%5Fpropagation%28event%29%3B%0A%0A%2F%2F%20%20%20%20%20%20else%20if%20%28this%2Etarget%20%3D%3D%20null%29%0A%2F%2F%20%20%20%20%20%20%20%20location%2Ehref%20%3D%20this%2Ehref%3B%0A%0A%20%20%20%20%20%20this%2Eblur%28%29%3B%0A%20%20%20%20%20%20self%2Edisable%5Fslide%5Fclick%20%3D%20true%3B%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20var%20anchors%20%3D%20document%2Ebody%2EgetElementsByTagName%28%22a%22%29%3B%0A%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20anchors%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28window%2EaddEventListener%29%0A%20%20%20%20%20%20%20%20anchors%5Bi%5D%2EaddEventListener%28%22click%22%2C%20handler%2C%20false%29%3B%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20anchors%5Bi%5D%2EattachEvent%28%22onclick%22%2C%20handler%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20%23%23%23%20CHECK%20ME%20%23%23%23%20see%20which%20functions%20are%20invoked%20via%20setTimeout%0A%20%20%2F%2F%20either%20directly%20or%20indirectly%20for%20use%20of%20w3c%5Fslidy%20vs%20this%0A%20%20show%5Fslide%5Fnumber%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20timer%20%3D%20w3c%5Fslidy%2Eget%5Ftimer%28%29%3B%0A%20%20%20%20w3c%5Fslidy%2Eslide%5Fnumber%5Felement%2EinnerHTML%20%3D%20timer%20%2B%20w3c%5Fslidy%2Elocalize%28%22slide%22%29%20%2B%20%22%20%22%20%2B%0A%20%20%20%20%20%20%20%20%20%20%20%28w3c%5Fslidy%2Eslide%5Fnumber%20%2B%201%29%20%2B%20%22%2F%22%20%2B%20w3c%5Fslidy%2Eslides%2Elength%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20every%20200mS%20check%20if%20the%20location%20has%20been%20changed%20as%20a%0A%20%20%2F%2F%20result%20of%20the%20user%20activating%20the%20Back%20button%2Fmenu%20item%0A%20%20%2F%2F%20doesn%27t%20work%20for%20Opera%20%3C%209%2E5%0A%20%20check%5Flocation%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20hash%20%3D%20location%2Ehash%3B%0A%0A%20%20%20%20if%20%28w3c%5Fslidy%2Eslide%5Fnumber%20%3E%200%20%26%26%20%28hash%20%3D%3D%20%22%22%20%7C%7C%20hash%20%3D%3D%20%22%23%22%29%29%0A%20%20%20%20%20%20w3c%5Fslidy%2Egoto%5Fslide%280%29%3B%0A%20%20%20%20else%20if%20%28hash%2Elength%20%3E%202%20%26%26%20hash%20%21%3D%20%22%23%28%22%2B%28w3c%5Fslidy%2Eslide%5Fnumber%2B1%29%2B%22%29%22%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20num%20%3D%20parseInt%28location%2Ehash%2Esubstr%282%29%29%3B%0A%0A%20%20%20%20%20%20if%20%28%21isNaN%28num%29%29%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Egoto%5Fslide%28num%2D1%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28w3c%5Fslidy%2Etime%5Fleft%20%26%26%20w3c%5Fslidy%2Eslide%5Fnumber%20%3E%200%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%5Fnumber%28%29%3B%0A%0A%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Etime%5Fleft%20%3E%200%29%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Etime%5Fleft%20%2D%3D%20200%3B%0A%20%20%20%20%7D%20%0A%20%20%7D%2C%0A%0A%20%20get%5Ftimer%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20timer%20%3D%20%22%22%3B%0A%20%20%20%20if%20%28w3c%5Fslidy%2Etime%5Fleft%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20mins%2C%20secs%3B%0A%20%20%20%20%20%20secs%20%3D%20Math%2Efloor%28w3c%5Fslidy%2Etime%5Fleft%2F1000%29%3B%0A%20%20%20%20%20%20mins%20%3D%20Math%2Efloor%28secs%20%2F%2060%29%3B%0A%20%20%20%20%20%20secs%20%3D%20secs%20%25%2060%3B%0A%20%20%20%20%20%20timer%20%3D%20%28mins%20%3F%20mins%2B%22m%22%20%3A%20%22%22%29%20%2B%20secs%20%2B%20%22s%20%22%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20timer%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20this%20doesn%27t%20push%20location%20onto%20history%20stack%20for%20IE%0A%20%20%2F%2F%20for%20which%20a%20hidden%20iframe%20hack%20is%20needed%3A%20load%20page%20into%0A%20%20%2F%2F%20the%20iframe%20with%20script%20that%20set%27s%20parent%27s%20location%2Ehash%0A%20%20%2F%2F%20but%20that%20won%27t%20work%20for%20standalone%20use%20unless%20we%20can%0A%20%20%2F%2F%20create%20the%20page%20dynamically%20via%20a%20javascript%3A%20URL%0A%20%20%2F%2F%20%23%23%23%20use%20history%2EpushState%20if%20available%0A%20%20set%5Flocation%3A%20function%20%28%29%20%7B%0A%20%20%20%20%20var%20uri%20%3D%20w3c%5Fslidy%2Epage%5Faddress%28location%2Ehref%29%3B%0A%20%20%20%20%20var%20hash%20%3D%20%22%23%28%22%20%2B%20%28w3c%5Fslidy%2Eslide%5Fnumber%2B1%29%20%2B%20%22%29%22%3B%0A%0A%20%20%20%20%20if%20%28w3c%5Fslidy%2Eslide%5Fnumber%20%3E%3D%200%29%0A%20%20%20%20%20%20%20uri%20%3D%20uri%20%2B%20hash%3B%0A%0A%20%20%20%20%20if%20%28typeof%28history%2EpushState%29%20%21%3D%20%22undefined%22%29%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20document%2Etitle%20%3D%20w3c%5Fslidy%2Etitle%20%2B%20%22%20%28%22%20%2B%20%28w3c%5Fslidy%2Eslide%5Fnumber%2B1%29%20%2B%20%22%29%22%3B%0A%20%20%20%20%20%20%20history%2EpushState%280%2C%20document%2Etitle%2C%20hash%29%3B%0A%20%20%20%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%5Fnumber%28%29%3B%0A%20%20%20%20%20%20%20w3c%5Fslidy%2Enotify%5Fobservers%28%29%3B%0A%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%7D%0A%0A%20%20%20%20%20if%20%28w3c%5Fslidy%2Eie%20%26%26%20%28w3c%5Fslidy%2Eie6%20%7C%7C%20w3c%5Fslidy%2Eie7%29%29%0A%20%20%20%20%20%20%20w3c%5Fslidy%2Epush%5Fhash%28hash%29%3B%0A%0A%20%20%20%20%20if%20%28uri%20%21%3D%20location%2Ehref%29%20%2F%2F%20%26%26%20%21khtml%0A%20%20%20%20%20%20%20%20location%2Ehref%20%3D%20uri%3B%0A%0A%20%20%20%20%20if%20%28this%2Ekhtml%29%0A%20%20%20%20%20%20%20%20hash%20%3D%20%22%28%22%20%2B%20%28w3c%5Fslidy%2Eslide%5Fnumber%2B1%29%20%2B%20%22%29%22%3B%0A%0A%20%20%20%20%20if%20%28%21this%2Eie%20%26%26%20location%2Ehash%20%21%3D%20hash%20%26%26%20location%2Ehash%20%21%3D%20%22%22%29%0A%20%20%20%20%20%20%20location%2Ehash%20%3D%20hash%3B%0A%0A%20%20%20%20%20document%2Etitle%20%3D%20w3c%5Fslidy%2Etitle%20%2B%20%22%20%28%22%20%2B%20%28w3c%5Fslidy%2Eslide%5Fnumber%2B1%29%20%2B%20%22%29%22%3B%0A%20%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%5Fnumber%28%29%3B%0A%20%20%20%20%20w3c%5Fslidy%2Enotify%5Fobservers%28%29%3B%0A%20%20%7D%2C%0A%0A%20%20notify%5Fobservers%3A%20function%20%28%29%0A%20%20%7B%0A%20%20%20%20var%20slide%20%3D%20this%2Eslides%5Bthis%2Eslide%5Fnumber%5D%3B%0A%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20this%2Eobservers%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%20%20this%2Eobservers%5Bi%5D%28this%2Eslide%5Fnumber%2B1%2C%20this%2Efind%5Fheading%28slide%29%2EinnerText%2C%20location%2Ehref%29%3B%0A%20%20%7D%2C%0A%0A%20%20add%5Fobserver%3A%20function%20%28observer%29%0A%20%20%7B%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20this%2Eobservers%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28observer%20%3D%3D%20this%2Eobservers%5Bi%5D%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20this%2Eobservers%2Epush%28observer%29%3B%0A%20%20%7D%2C%0A%0A%20%20remove%5Fobserver%3A%20function%20%28o%29%0A%20%20%7B%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20this%2Eobservers%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28observer%20%3D%3D%20this%2Eobservers%5Bi%5D%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20this%2Eobservers%2Esplice%28i%2C1%29%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20page%5Faddress%3A%20function%20%28uri%29%20%7B%0A%20%20%20%20var%20i%20%3D%20uri%2EindexOf%28%22%23%22%29%3B%0A%0A%20%20%20%20if%20%28i%20%3C%200%29%0A%20%20%20%20%20%20i%20%3D%20uri%2EindexOf%28%22%2523%22%29%3B%0A%0A%20%20%20%20%2F%2F%20check%20if%20anchor%20is%20entire%20page%0A%0A%20%20%20%20if%20%28i%20%3C%200%29%0A%20%20%20%20%20%20return%20uri%3B%20%20%2F%2F%20yes%0A%0A%20%20%20%20return%20uri%2Esubstr%280%2C%20i%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20only%20used%20for%20IE6%20and%20IE7%0A%20%20on%5Fframe%5Floaded%3A%20function%20%28hash%29%20%7B%0A%20%20%20%20location%2Ehash%20%3D%20hash%3B%0A%20%20%20%20var%20uri%20%3D%20w3c%5Fslidy%2Epage%5Faddress%28location%2Ehref%29%3B%0A%20%20%20%20location%2Ehref%20%3D%20uri%20%2B%20hash%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20history%20hack%20with%20thanks%20to%20Bertrand%20Le%20Roy%0A%20%20push%5Fhash%3A%20function%20%28hash%29%20%7B%0A%20%20%20%20if%20%28hash%20%3D%3D%20%22%22%29%20hash%20%3D%20%22%23%281%29%22%3B%0A%20%20%20%20%20%20window%2Elocation%2Ehash%20%3D%20hash%3B%0A%0A%20%20%20%20var%20doc%20%3D%20document%2EgetElementById%28%22historyFrame%22%29%2EcontentWindow%2Edocument%3B%0A%20%20%20%20doc%2Eopen%28%22javascript%3A%27%3Chtml%3E%3C%2Fhtml%3E%27%22%29%3B%0A%20%20%20%20doc%2Ewrite%28%22%3Chtml%3E%3Chead%3E%3Cscript%20type%3D%5C%22text%2Fjavascript%5C%22%3Ewindow%2Eparent%2Ew3c%5Fslidy%2Eon%5Fframe%5Floaded%28%27%22%2B%0A%20%20%20%20%20%20%28hash%29%20%2B%20%22%27%29%3B%3C%2Fscript%3E%3C%2Fhead%3E%3Cbody%3Ehello%20mum%3C%2Fbody%3E%3C%2Fhtml%3E%22%29%3B%0A%20%20%20%20%20%20doc%2Eclose%28%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20find%20current%20slide%20based%20upon%20location%0A%20%20%2F%2F%20first%20find%20target%20anchor%20and%20then%20look%0A%20%20%2F%2F%20for%20associated%20div%20element%20enclosing%20it%0A%20%20%2F%2F%20finally%20map%20that%20to%20slide%20number%0A%20%20find%5Fslide%5Fnumber%3A%20function%20%28uri%29%20%7B%0A%20%20%20%20%2F%2F%20first%20get%20anchor%20from%20page%20location%0A%0A%20%20%20%20var%20i%20%3D%20uri%2EindexOf%28%22%23%22%29%3B%0A%0A%20%20%20%20%2F%2F%20check%20if%20anchor%20is%20entire%20page%0A%20%20%20%20if%20%28i%20%3C%200%29%0A%20%20%20%20%20%20return%200%3B%20%20%2F%2F%20yes%0A%0A%20%20%20%20var%20anchor%20%3D%20unescape%28uri%2Esubstr%28i%2B1%29%29%3B%0A%0A%20%20%20%20%2F%2F%20now%20use%20anchor%20as%20XML%20ID%20to%20find%20target%0A%20%20%20%20var%20target%20%3D%20document%2EgetElementById%28anchor%29%3B%0A%0A%20%20%20%20if%20%28%21target%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%2F%2F%20does%20anchor%20look%20like%20%22%282%29%22%20for%20slide%202%20%3F%3F%0A%20%20%20%20%20%20%2F%2F%20where%20first%20slide%20is%20%281%29%0A%20%20%20%20%20%20var%20re%20%3D%20%2F%5C%28%28%5Cd%29%2B%5C%29%2F%3B%0A%0A%20%20%20%20%20%20if%20%28anchor%2Ematch%28re%29%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20num%20%3D%20parseInt%28anchor%2Esubstring%281%2C%20anchor%2Elength%2D1%29%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28num%20%3E%20this%2Eslides%2Elength%29%0A%20%20%20%20%20%20%20%20%20%20num%20%3D%201%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28%2D%2Dnum%20%3C%200%29%0A%20%20%20%20%20%20%20%20%20%20num%20%3D%200%3B%0A%0A%20%20%20%20%20%20%20%20return%20num%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%2F%2F%20accept%20%5B2%5D%20for%20backwards%20compatibility%0A%20%20%20%20%20%20re%20%3D%20%2F%5C%5B%28%5Cd%29%2B%5C%5D%2F%3B%0A%0A%20%20%20%20%20%20if%20%28anchor%2Ematch%28re%29%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20var%20num%20%3D%20parseInt%28anchor%2Esubstring%281%2C%20anchor%2Elength%2D1%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20if%20%28num%20%3E%20this%2Eslides%2Elength%29%0A%20%20%20%20%20%20%20%20%20%20%20%20num%20%3D%201%3B%0A%0A%20%20%20%20%20%20%20%20%20if%20%28%2D%2Dnum%20%3C%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20num%20%3D%200%3B%0A%0A%20%20%20%20%20%20%20%20%20return%20num%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%2F%2F%20oh%20dear%20unknown%20anchor%0A%20%20%20%20%20%20return%200%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20search%20for%20enclosing%20slide%0A%0A%20%20%20%20while%20%28true%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%2F%2F%20browser%20coerces%20html%20elements%20to%20uppercase%21%0A%20%20%20%20%20%20if%20%28target%2EnodeName%2EtoLowerCase%28%29%20%3D%3D%20%22div%22%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20this%2Ehas%5Fclass%28target%2C%20%22slide%22%29%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20found%20the%20slide%20element%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%2F%2F%20otherwise%20try%20parent%20element%20if%20any%0A%0A%20%20%20%20%20%20target%20%3D%20target%2EparentNode%3B%0A%0A%20%20%20%20%20%20if%20%28%21target%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20return%200%3B%20%20%20%2F%2F%20no%20luck%21%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20for%20%28i%20%3D%200%3B%20i%20%3C%20slides%2Elength%3B%20%2B%2Bi%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28slides%5Bi%5D%20%3D%3D%20target%29%0A%20%20%20%20%20%20%20%20return%20i%3B%20%20%2F%2F%20success%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20oh%20dear%20still%20no%20luck%0A%20%20%20%20return%200%3B%0A%20%20%7D%2C%0A%0A%20%20previous%5Fslide%3A%20function%20%28incremental%29%20%7B%0A%20%20%20%20if%20%28%21w3c%5Fslidy%2Eview%5Fall%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20slide%3B%0A%0A%20%20%20%20%20%20if%20%28%28incremental%20%7C%7C%20w3c%5Fslidy%2Eslide%5Fnumber%20%3D%3D%200%29%20%26%26%20w3c%5Fslidy%2Elast%5Fshown%20%21%3D%20null%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fshown%20%3D%20w3c%5Fslidy%2Ehide%5Fprevious%5Fitem%28w3c%5Fslidy%2Elast%5Fshown%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Feos%5Fstatus%28false%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20if%20%28w3c%5Fslidy%2Eslide%5Fnumber%20%3E%200%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Ehide%5Fslide%28slide%29%3B%0A%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eslide%5Fnumber%20%3D%20w3c%5Fslidy%2Eslide%5Fnumber%20%2D%201%3B%0A%20%20%20%20%20%20%20%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Fvisibility%5Fall%5Fincremental%28%22visible%22%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fshown%20%3D%20w3c%5Fslidy%2Eprevious%5Fincremental%5Fitem%28null%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Feos%5Fstatus%28true%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Flocation%28%29%3B%0A%0A%20%20%20%20%20%20if%20%28%21w3c%5Fslidy%2Ens%5Fpos%29%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Erefresh%5Ftoolbar%28200%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20next%5Fslide%3A%20function%20%28incremental%29%20%7B%0A%20%20%20%20if%20%28%21w3c%5Fslidy%2Eview%5Fall%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20slide%2C%20last%20%3D%20w3c%5Fslidy%2Elast%5Fshown%3B%0A%0A%20%20%20%20%20%20if%20%28incremental%20%7C%7C%20w3c%5Fslidy%2Eslide%5Fnumber%20%3D%3D%20w3c%5Fslidy%2Eslides%2Elength%20%2D%201%29%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fshown%20%3D%20w3c%5Fslidy%2Ereveal%5Fnext%5Fitem%28w3c%5Fslidy%2Elast%5Fshown%29%3B%0A%0A%20%20%20%20%20%20if%20%28%28%21incremental%20%7C%7C%20w3c%5Fslidy%2Elast%5Fshown%20%3D%3D%20null%29%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eslide%5Fnumber%20%3C%20w3c%5Fslidy%2Eslides%2Elength%20%2D%201%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Ehide%5Fslide%28slide%29%3B%0A%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eslide%5Fnumber%20%3D%20w3c%5Fslidy%2Eslide%5Fnumber%20%2B%201%3B%0A%20%20%20%20%20%20%20%20%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fshown%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Fvisibility%5Fall%5Fincremental%28%22hidden%22%29%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20if%20%28%21w3c%5Fslidy%2Elast%5Fshown%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20if%20%28last%20%26%26%20incremental%29%0A%20%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fshown%20%3D%20last%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Flocation%28%29%3B%0A%0A%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Feos%5Fstatus%28%21w3c%5Fslidy%2Enext%5Fincremental%5Fitem%28w3c%5Fslidy%2Elast%5Fshown%29%29%3B%0A%0A%20%20%20%20%20%20if%20%28%21w3c%5Fslidy%2Ens%5Fpos%29%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Erefresh%5Ftoolbar%28200%29%3B%0A%20%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20to%20first%20slide%20with%20nothing%20revealed%0A%20%20%2F%2F%20i%2Ee%2E%20state%20at%20start%20of%20presentation%0A%20%20first%5Fslide%3A%20function%20%28%29%20%7B%0A%20%20%20%20%20if%20%28%21w3c%5Fslidy%2Eview%5Fall%29%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20var%20slide%3B%0A%0A%20%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Eslide%5Fnumber%20%21%3D%200%29%0A%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Ehide%5Fslide%28slide%29%3B%0A%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eslide%5Fnumber%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fshown%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Fvisibility%5Fall%5Fincremental%28%22hidden%22%29%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Feos%5Fstatus%28%0A%20%20%20%20%20%20%20%20%20%21w3c%5Fslidy%2Enext%5Fincremental%5Fitem%28w3c%5Fslidy%2Elast%5Fshown%29%29%3B%0A%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Flocation%28%29%3B%0A%20%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20goto%20last%20slide%20with%20everything%20revealed%0A%20%20%2F%2F%20i%2Ee%2E%20state%20at%20end%20of%20presentation%0A%20%20last%5Fslide%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28%21w3c%5Fslidy%2Eview%5Fall%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20slide%3B%0A%0A%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fshown%20%3D%20null%3B%20%2F%2FrevealNextItem%28lastShown%29%3B%0A%0A%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Elast%5Fshown%20%3D%3D%20null%20%26%26%0A%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eslide%5Fnumber%20%3C%20w3c%5Fslidy%2Eslides%2Elength%20%2D%201%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Ehide%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eslide%5Fnumber%20%3D%20w3c%5Fslidy%2Eslides%2Elength%20%2D%201%3B%0A%20%20%20%20%20%20%20%20%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Fvisibility%5Fall%5Fincremental%28%22visible%22%29%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fshown%20%3D%20w3c%5Fslidy%2Eprevious%5Fincremental%5Fitem%28null%29%3B%0A%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Fvisibility%5Fall%5Fincremental%28%22visible%22%29%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fshown%20%3D%20w3c%5Fslidy%2Eprevious%5Fincremental%5Fitem%28null%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Feos%5Fstatus%28true%29%3B%0A%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Flocation%28%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%0A%20%20%2F%2F%20%23%23%23%20check%20this%20and%20consider%20add%2Fremove%20class%0A%20%20set%5Feos%5Fstatus%3A%20function%20%28state%29%20%7B%0A%20%20%20%20if%20%28this%2Eeos%29%0A%20%20%20%20%20%20this%2Eeos%2Estyle%2Ecolor%20%3D%20%28state%20%3F%20%22rgb%28240%2C240%2C240%29%22%20%3A%20%22red%22%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20first%20slide%20is%200%0A%20%20goto%5Fslide%3A%20function%20%28num%29%20%7B%0A%20%20%20%20%2F%2Falert%28%22going%20to%20slide%20%22%20%2B%20%28num%2B1%29%29%3B%0A%20%20%20%20var%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20w3c%5Fslidy%2Ehide%5Fslide%28slide%29%3B%0A%20%20%20%20w3c%5Fslidy%2Eslide%5Fnumber%20%3D%20num%3B%0A%20%20%20%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20w3c%5Fslidy%2Elast%5Fshown%20%3D%20null%3B%0A%20%20%20%20w3c%5Fslidy%2Eset%5Fvisibility%5Fall%5Fincremental%28%22hidden%22%29%3B%0A%20%20%20%20w3c%5Fslidy%2Eset%5Feos%5Fstatus%28%21w3c%5Fslidy%2Enext%5Fincremental%5Fitem%28w3c%5Fslidy%2Elast%5Fshown%29%29%3B%0A%20%20%20%20document%2Etitle%20%3D%20w3c%5Fslidy%2Etitle%20%2B%20%22%20%28%22%20%2B%20%28w3c%5Fslidy%2Eslide%5Fnumber%2B1%29%20%2B%20%22%29%22%3B%0A%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%28slide%29%3B%0A%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%5Fnumber%28%29%3B%0A%20%20%7D%2C%0A%0A%0A%20%20show%5Fslide%3A%20function%20%28slide%29%20%7B%0A%20%20%20%20this%2Esync%5Fbackground%28slide%29%3B%0A%20%20%20%20this%2Eremove%5Fclass%28slide%2C%20%22hidden%22%29%3B%0A%0A%20%20%20%20%2F%2F%20work%20around%20IE9%20object%20rendering%20bug%0A%20%20%20%20setTimeout%28%22window%2EscrollTo%280%2C0%29%3B%22%2C%201%29%3B%0A%20%20%7D%2C%0A%0A%20%20hide%5Fslide%3A%20function%20%28slide%29%20%7B%0A%20%20%20%20this%2Eadd%5Fclass%28slide%2C%20%22hidden%22%29%3B%0A%20%20%7D%2C%0A%0A%20%20set%5Ffocus%3A%20function%20%28element%29%0A%20%20%7B%0A%20%20%20%20if%20%28element%29%0A%20%20%20%20%20%20element%2Efocus%28%29%3B%0A%20%20%20%20else%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Ehelp%5Fanchor%2Efocus%28%29%3B%0A%0A%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Ehelp%5Fanchor%2Eblur%28%29%3B%0A%20%20%20%20%20%20%7D%2C%201%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20show%20just%20the%20backgrounds%20pertinent%20to%20this%20slide%0A%20%20%2F%2F%20when%20slide%20background%2Dcolor%20is%20transparent%0A%20%20%2F%2F%20this%20should%20now%20work%20with%20rgba%20color%20values%0A%20%20sync%5Fbackground%3A%20function%20%28slide%29%20%7B%0A%20%20%20%20var%20background%3B%0A%20%20%20%20var%20bgColor%3B%0A%0A%20%20%20%20if%20%28slide%2EcurrentStyle%29%0A%20%20%20%20%20%20bgColor%20%3D%20slide%2EcurrentStyle%5B%22backgroundColor%22%5D%3B%0A%20%20%20%20else%20if%20%28document%2EdefaultView%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20styles%20%3D%20document%2EdefaultView%2EgetComputedStyle%28slide%2Cnull%29%3B%0A%0A%20%20%20%20%20%20if%20%28styles%29%0A%20%20%20%20%20%20%20%20bgColor%20%3D%20styles%2EgetPropertyValue%28%22background%2Dcolor%22%29%3B%0A%20%20%20%20%20%20else%20%2F%2F%20broken%20implementation%20probably%20due%20Safari%20or%20Konqueror%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2Falert%28%22defective%20implementation%20of%20getComputedStyle%28%29%22%29%3B%0A%20%20%20%20%20%20%20%20bgColor%20%3D%20%22transparent%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20else%0A%20%20%20%20%20%20bgColor%20%3D%3D%20%22transparent%22%3B%0A%0A%20%20%20%20if%20%28bgColor%20%3D%3D%20%22transparent%22%20%7C%7C%0A%20%20%20%20%20%20%20%20bgColor%2EindexOf%28%22rgba%22%29%20%3E%3D%200%20%7C%7C%0A%20%20%20%20%20%20%20%20bgColor%2EindexOf%28%22opacity%22%29%20%3E%3D%200%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20slideClass%20%3D%20this%2Eget%5Fclass%5Flist%28slide%29%3B%0A%0A%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20this%2Ebackgrounds%2Elength%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20background%20%3D%20this%2Ebackgrounds%5Bi%5D%3B%0A%0A%20%20%20%20%20%20%20%20var%20bgClass%20%3D%20this%2Eget%5Fclass%5Flist%28background%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28this%2Ematching%5Fbackground%28slideClass%2C%20bgClass%29%29%0A%20%20%20%20%20%20%20%20%20%20this%2Eremove%5Fclass%28background%2C%20%22hidden%22%29%3B%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20this%2Eadd%5Fclass%28background%2C%20%22hidden%22%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20else%20%2F%2F%20forcibly%20hide%20all%20backgrounds%0A%20%20%20%20%20%20this%2Ehide%5Fbackgrounds%28%29%3B%0A%20%20%7D%2C%0A%0A%20%20hide%5Fbackgrounds%3A%20function%20%28%29%20%7B%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20this%2Ebackgrounds%2Elength%3B%20i%2B%2B%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20background%20%3D%20this%2Ebackgrounds%5Bi%5D%3B%0A%20%20%20%20%20%20this%2Eadd%5Fclass%28background%2C%20%22hidden%22%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20compare%20classes%20for%20slide%20and%20background%0A%20%20matching%5Fbackground%3A%20function%20%28slideClass%2C%20bgClass%29%20%7B%0A%20%20%20%20var%20i%2C%20count%2C%20pattern%2C%20result%3B%0A%0A%20%20%20%20%2F%2F%20define%20pattern%20as%20regular%20expression%0A%20%20%20%20pattern%20%3D%20%2F%5Cw%2B%2Fg%3B%0A%0A%20%20%20%20%2F%2F%20check%20background%20class%20names%0A%20%20%20%20result%20%3D%20bgClass%2Ematch%28pattern%29%3B%0A%0A%20%20%20%20for%20%28i%20%3D%20count%20%3D%200%3B%20i%20%3C%20result%2Elength%3B%20i%2B%2B%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28result%5Bi%5D%20%3D%3D%20%22hidden%22%29%0A%20%20%20%20%20%20%20%20continue%3B%0A%0A%20%20%20%20%20%20if%20%28result%5Bi%5D%20%3D%3D%20%22background%22%29%0A%09continue%3B%0A%0A%20%20%20%20%20%20%2B%2Bcount%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28count%20%3D%3D%200%29%20%20%2F%2F%20default%20match%0A%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20%2F%2F%20check%20for%20matches%20and%20place%20result%20in%20array%0A%20%20%20%20result%20%3D%20slideClass%2Ematch%28pattern%29%3B%0A%0A%20%20%20%20%2F%2F%20now%20check%20if%20desired%20name%20is%20present%20for%20background%0A%20%20%20%20for%20%28i%20%3D%20count%20%3D%200%3B%20i%20%3C%20result%2Elength%3B%20i%2B%2B%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28result%5Bi%5D%20%3D%3D%20%22hidden%22%29%0A%20%20%20%20%20%20%20%20continue%3B%0A%0A%20%20%20%20%20%20if%20%28this%2Ehas%5Ftoken%28bgClass%2C%20result%5Bi%5D%29%29%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20false%3B%0A%20%20%7D%2C%0A%0A%20%20resized%3A%20function%20%28%29%20%7B%0A%20%20%20%20%20var%20width%20%3D%200%3B%0A%0A%20%20%20%20%20if%20%28%20typeof%28%20window%2EinnerWidth%20%29%20%3D%3D%20%27number%27%20%29%0A%20%20%20%20%20%20%20width%20%3D%20window%2EinnerWidth%3B%20%20%2F%2F%20Non%20IE%20browser%0A%20%20%20%20%20else%20if%20%28document%2EdocumentElement%20%26%26%20document%2EdocumentElement%2EclientWidth%29%0A%20%20%20%20%20%20%20width%20%3D%20document%2EdocumentElement%2EclientWidth%3B%20%20%2F%2F%20IE6%0A%20%20%20%20%20else%20if%20%28document%2Ebody%20%26%26%20document%2Ebody%2EclientWidth%29%0A%20%20%20%20%20%20%20width%20%3D%20document%2Ebody%2EclientWidth%3B%20%2F%2F%20IE4%0A%0A%20%20%20%20%20var%20height%20%3D%200%3B%0A%0A%20%20%20%20%20if%20%28%20typeof%28%20window%2EinnerHeight%20%29%20%3D%3D%20%27number%27%20%29%0A%20%20%20%20%20%20%20height%20%3D%20window%2EinnerHeight%3B%20%20%2F%2F%20Non%20IE%20browser%0A%20%20%20%20%20else%20if%20%28document%2EdocumentElement%20%26%26%20document%2EdocumentElement%2EclientHeight%29%0A%20%20%20%20%20%20%20height%20%3D%20document%2EdocumentElement%2EclientHeight%3B%20%20%2F%2F%20IE6%0A%20%20%20%20%20else%20if%20%28document%2Ebody%20%26%26%20document%2Ebody%2EclientHeight%29%0A%20%20%20%20%20%20%20height%20%3D%20document%2Ebody%2EclientHeight%3B%20%2F%2F%20IE4%0A%0A%20%20%20%20%20if%20%28height%20%26%26%20%28width%2Fheight%20%3E%201%2E05%2A1024%2F768%29%29%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20width%20%3D%20height%20%2A%201024%2E0%2F768%3B%0A%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%2F%2F%20IE%20fires%20onresize%20even%20when%20only%20font%20size%20is%20changed%21%0A%20%20%20%20%20%2F%2F%20so%20we%20do%20a%20check%20to%20avoid%20blocking%20%3C%20and%20%3E%20actions%0A%20%20%20%20%20if%20%28width%20%21%3D%20w3c%5Fslidy%2Elast%5Fwidth%20%7C%7C%20height%20%21%3D%20w3c%5Fslidy%2Elast%5Fheight%29%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20if%20%28width%20%3E%3D%201100%29%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Esize%5Findex%20%3D%205%3B%20%20%20%20%2F%2F%204%0A%20%20%20%20%20%20%20else%20if%20%28width%20%3E%3D%201000%29%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Esize%5Findex%20%3D%204%3B%20%20%20%20%2F%2F%203%0A%20%20%20%20%20%20%20else%20if%20%28width%20%3E%3D%20800%29%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Esize%5Findex%20%3D%203%3B%20%20%20%20%2F%2F%202%0A%20%20%20%20%20%20%20else%20if%20%28width%20%3E%3D%20600%29%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Esize%5Findex%20%3D%202%3B%20%20%20%20%2F%2F%201%0A%20%20%20%20%20%20%20else%20if%20%28width%29%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Esize%5Findex%20%3D%200%3B%0A%0A%20%20%20%20%20%20%20%2F%2F%20add%20in%20font%20size%20adjustment%20from%20meta%20element%20e%2Eg%2E%0A%20%20%20%20%20%20%20%2F%2F%20%3Cmeta%20name%3D%22font%2Dsize%2Dadjustment%22%20content%3D%22%2D2%22%20%2F%3E%0A%20%20%20%20%20%20%20%2F%2F%20useful%20when%20slides%20have%20too%20much%20content%20%3B%2D%29%0A%0A%20%20%20%20%20%20%20if%20%280%20%3C%3D%20w3c%5Fslidy%2Esize%5Findex%20%2B%20w3c%5Fslidy%2Esize%5Fadjustment%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Esize%5Findex%20%2B%20w3c%5Fslidy%2Esize%5Fadjustment%20%3C%20w3c%5Fslidy%2Esizes%2Elength%29%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Esize%5Findex%20%3D%20w3c%5Fslidy%2Esize%5Findex%20%2B%20w3c%5Fslidy%2Esize%5Fadjustment%3B%0A%0A%20%20%20%20%20%20%20%2F%2F%20enables%20cross%20browser%20use%20of%20relative%20width%2Fheight%0A%20%20%20%20%20%20%20%2F%2F%20on%20object%20elements%20for%20use%20with%20SVG%20and%20Flash%20media%0A%20%20%20%20%20%20%20w3c%5Fslidy%2Eadjust%5Fobject%5Fdimensions%28width%2C%20height%29%3B%0A%0A%20%20%20%20%20%20%20if%20%28document%2Ebody%2Estyle%2EfontSize%20%21%3D%20w3c%5Fslidy%2Esizes%5Bw3c%5Fslidy%2Esize%5Findex%5D%29%0A%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20document%2Ebody%2Estyle%2EfontSize%20%3D%20w3c%5Fslidy%2Esizes%5Bw3c%5Fslidy%2Esize%5Findex%5D%3B%0A%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fwidth%20%3D%20width%3B%0A%20%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fheight%20%3D%20height%3B%0A%0A%20%20%20%20%20%20%20%2F%2F%20force%20reflow%20to%20work%20around%20Mozilla%20bug%0A%20%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Ens%5Fpos%29%0A%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20var%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Ehide%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%28slide%29%3B%0A%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%2F%2F%20force%20correct%20positioning%20of%20toolbar%0A%20%20%20%20%20%20%20w3c%5Fslidy%2Erefresh%5Ftoolbar%28200%29%3B%0A%20%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20scrolled%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28w3c%5Fslidy%2Etoolbar%20%26%26%20%21w3c%5Fslidy%2Ens%5Fpos%20%26%26%20%21w3c%5Fslidy%2Eie7%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Ehack%5Foffset%20%3D%20w3c%5Fslidy%2Escroll%5Fx%5Foffset%28%29%3B%0A%20%20%20%20%20%20%2F%2F%20hide%20toolbar%0A%20%20%20%20%20%20w3c%5Fslidy%2Etoolbar%2Estyle%2Edisplay%20%3D%20%22none%22%3B%0A%0A%20%20%20%20%20%20%2F%2F%20make%20it%20reappear%20later%0A%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Escrollhack%20%3D%3D%200%20%26%26%20%21w3c%5Fslidy%2Eview%5Fall%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20setTimeout%28function%20%28%29%20%7Bw3c%5Fslidy%2Eshow%5Ftoolbar%28%29%3B%20%7D%2C%201000%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Escrollhack%20%3D%201%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20hide%5Ftoolbar%3A%20function%20%28%29%20%7B%0A%20%20%20%20w3c%5Fslidy%2Eadd%5Fclass%28w3c%5Fslidy%2Etoolbar%2C%20%22hidden%22%29%3B%0A%20%20%20%20window%2Efocus%28%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20used%20to%20ensure%20IE%20refreshes%20toolbar%20in%20correct%20position%0A%20%20refresh%5Ftoolbar%3A%20function%20%28interval%29%20%7B%0A%20%20%20%20if%20%28%21w3c%5Fslidy%2Ens%5Fpos%20%26%26%20%21w3c%5Fslidy%2Eie7%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Ehide%5Ftoolbar%28%29%3B%0A%20%20%20%20%20%20setTimeout%28function%20%28%29%20%7Bw3c%5Fslidy%2Eshow%5Ftoolbar%28%29%3B%7D%2C%20interval%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20restores%20toolbar%20after%20short%20delay%0A%20%20show%5Ftoolbar%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28w3c%5Fslidy%2Ewant%5Ftoolbar%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Etoolbar%2Estyle%2Edisplay%20%3D%20%22block%22%3B%0A%0A%20%20%20%20%20%20if%20%28%21w3c%5Fslidy%2Ens%5Fpos%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20adjust%20position%20to%20allow%20for%20scrolling%0A%20%20%20%20%20%20%20%20var%20xoffset%20%3D%20w3c%5Fslidy%2Escroll%5Fx%5Foffset%28%29%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Etoolbar%2Estyle%2Eleft%20%3D%20xoffset%3B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Etoolbar%2Estyle%2Eright%20%3D%20xoffset%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20determine%20vertical%20scroll%20offset%0A%20%20%20%20%20%20%20%20%2F%2Fvar%20yoffset%20%3D%20scrollYOffset%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20bottom%20is%20doc%20height%20%2D%20window%20height%20%2D%20scroll%20offset%0A%20%20%20%20%20%20%20%20%2F%2Fvar%20bottom%20%3D%20documentHeight%28%29%20%2D%20lastHeight%20%2D%20yoffset%0A%0A%20%20%20%20%20%20%20%20%2F%2Fif%20%28yoffset%20%3E%200%20%7C%7C%20documentHeight%28%29%20%3E%20lastHeight%29%0A%20%20%20%20%20%20%20%20%2F%2F%20%20%20bottom%20%2B%3D%2016%3B%20%20%2F%2F%20allow%20for%20height%20of%20scrollbar%0A%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Etoolbar%2Estyle%2Ebottom%20%3D%200%3B%20%2F%2Fbottom%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20w3c%5Fslidy%2Eremove%5Fclass%28w3c%5Fslidy%2Etoolbar%2C%20%22hidden%22%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20w3c%5Fslidy%2Escrollhack%20%3D%200%3B%0A%0A%0A%20%20%20%20%2F%2F%20set%20the%20keyboard%20focus%20to%20the%20help%20link%20on%20the%0A%20%20%20%20%2F%2F%20toolbar%20to%20ensure%20that%20document%20has%20the%20focus%0A%20%20%20%20%2F%2F%20IE%20doesn%27t%20always%20work%20with%20window%2Efocus%28%29%0A%20%20%20%20%2F%2F%20and%20this%20hack%20has%20benefit%20of%20Enter%20for%20help%0A%0A%20%20%20%20try%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28%21w3c%5Fslidy%2Eopera%29%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eset%5Ffocus%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20catch%20%28e%29%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%2F%2F%20invoked%20via%20F%20key%0A%20%20toggle%5Ftoolbar%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28%21w3c%5Fslidy%2Eview%5Fall%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Ehas%5Fclass%28w3c%5Fslidy%2Etoolbar%2C%20%22hidden%22%29%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eremove%5Fclass%28w3c%5Fslidy%2Etoolbar%2C%20%22hidden%22%29%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Ewant%5Ftoolbar%20%3D%201%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eadd%5Fclass%28w3c%5Fslidy%2Etoolbar%2C%20%22hidden%22%29%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Ewant%5Ftoolbar%20%3D%200%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20scroll%5Fx%5Foffset%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28window%2EpageXOffset%29%0A%20%20%20%20%20%20return%20self%2EpageXOffset%3B%0A%0A%20%20%20%20if%20%28document%2EdocumentElement%20%26%26%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20document%2EdocumentElement%2EscrollLeft%29%0A%20%20%20%20%20%20return%20document%2EdocumentElement%2EscrollLeft%3B%0A%0A%20%20%20%20if%20%28document%2Ebody%29%0A%20%20%20%20%20%20return%20document%2Ebody%2EscrollLeft%3B%0A%0A%20%20%20%20return%200%3B%0A%20%20%7D%2C%0A%0A%20%20scroll%5Fy%5Foffset%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28window%2EpageYOffset%29%0A%20%20%20%20%20%20return%20self%2EpageYOffset%3B%0A%0A%20%20%20%20if%20%28document%2EdocumentElement%20%26%26%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20document%2EdocumentElement%2EscrollTop%29%0A%20%20%20%20%20%20return%20document%2EdocumentElement%2EscrollTop%3B%0A%0A%20%20%20%20if%20%28document%2Ebody%29%0A%20%20%20%20%20%20return%20document%2Ebody%2EscrollTop%3B%0A%0A%20%20%20%20return%200%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20looking%20for%20a%20way%20to%20determine%20height%20of%20slide%20content%0A%20%20%2F%2F%20the%20slide%20itself%20is%20set%20to%20the%20height%20of%20the%20window%0A%20%20optimize%5Ffont%5Fsize%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%0A%20%20%20%20%2F%2Fvar%20dh%20%3D%20documentHeight%28%29%3B%20%2F%2FgetDocHeight%28document%29%3B%0A%20%20%20%20var%20dh%20%3D%20slide%2EscrollHeight%3B%0A%20%20%20%20var%20wh%20%3D%20getWindowHeight%28%29%3B%0A%20%20%20%20var%20u%20%3D%20100%20%2A%20dh%20%2F%20wh%3B%0A%0A%20%20%20%20alert%28%22window%20utilization%20%3D%20%22%20%2B%20u%20%2B%20%22%25%20%28doc%20%22%0A%20%20%20%20%20%20%2B%20dh%20%2B%20%22%20win%20%22%20%2B%20wh%20%2B%20%22%29%22%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20from%20document%20object%0A%20%20get%5Fdoc%5Fheight%3A%20function%20%28doc%29%20%7B%0A%20%20%20%20if%20%28%21doc%29%0A%20%20%20%20%20%20doc%20%3D%20document%3B%0A%0A%20%20%20%20if%20%28doc%20%26%26%20doc%2Ebody%20%26%26%20doc%2Ebody%2EoffsetHeight%29%0A%20%20%20%20%20%20return%20doc%2Ebody%2EoffsetHeight%3B%20%20%2F%2F%20ns%2Fgecko%20syntax%0A%0A%20%20%20%20if%20%28doc%20%26%26%20doc%2Ebody%20%26%26%20doc%2Ebody%2EscrollHeight%29%0A%20%20%20%20%20%20return%20doc%2Ebody%2EscrollHeight%3B%0A%0A%20%20%20%20alert%28%22couldn%27t%20determine%20document%20height%22%29%3B%0A%20%20%7D%2C%0A%0A%20%20get%5Fwindow%5Fheight%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28%20typeof%28%20window%2EinnerHeight%20%29%20%3D%3D%20%27number%27%20%29%0A%20%20%20%20%20%20return%20window%2EinnerHeight%3B%20%20%2F%2F%20Non%20IE%20browser%0A%0A%20%20%20%20if%20%28document%2EdocumentElement%20%26%26%20document%2EdocumentElement%2EclientHeight%29%0A%20%20%20%20%20%20return%20document%2EdocumentElement%2EclientHeight%3B%20%20%2F%2F%20IE6%0A%0A%20%20%20%20if%20%28document%2Ebody%20%26%26%20document%2Ebody%2EclientHeight%29%0A%20%20%20%20%20%20return%20document%2Ebody%2EclientHeight%3B%20%2F%2F%20IE4%0A%20%20%7D%2C%0A%0A%20%20document%5Fheight%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20sh%2C%20oh%3B%0A%0A%20%20%20%20sh%20%3D%20document%2Ebody%2EscrollHeight%3B%0A%20%20%20%20oh%20%3D%20document%2Ebody%2EoffsetHeight%3B%0A%0A%20%20%20%20if%20%28sh%20%26%26%20oh%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20return%20%28sh%20%3E%20oh%20%3F%20sh%20%3A%20oh%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20no%20idea%21%0A%20%20%20%20return%200%3B%0A%20%20%7D%2C%0A%0A%20%20smaller%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28w3c%5Fslidy%2Esize%5Findex%20%3E%200%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%2D%2Dw3c%5Fslidy%2Esize%5Findex%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20w3c%5Fslidy%2Etoolbar%2Estyle%2Edisplay%20%3D%20%22none%22%3B%0A%20%20%20%20document%2Ebody%2Estyle%2EfontSize%20%3D%20w3c%5Fslidy%2Esizes%5Bw3c%5Fslidy%2Esize%5Findex%5D%3B%0A%20%20%20%20var%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20w3c%5Fslidy%2Ehide%5Fslide%28slide%29%3B%0A%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%28slide%29%3B%0A%20%20%20%20setTimeout%28function%20%28%29%20%7Bw3c%5Fslidy%2Eshow%5Ftoolbar%28%29%3B%20%7D%2C%2050%29%3B%0A%20%20%7D%2C%0A%0A%20%20bigger%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28w3c%5Fslidy%2Esize%5Findex%20%3C%20w3c%5Fslidy%2Esizes%2Elength%20%2D%201%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%2B%2Bw3c%5Fslidy%2Esize%5Findex%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20w3c%5Fslidy%2Etoolbar%2Estyle%2Edisplay%20%3D%20%22none%22%3B%0A%20%20%20%20document%2Ebody%2Estyle%2EfontSize%20%3D%20w3c%5Fslidy%2Esizes%5Bw3c%5Fslidy%2Esize%5Findex%5D%3B%0A%20%20%20%20var%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%20%20%20%20w3c%5Fslidy%2Ehide%5Fslide%28slide%29%3B%0A%20%20%20%20w3c%5Fslidy%2Eshow%5Fslide%28slide%29%3B%0A%20%20%20%20setTimeout%28function%20%28%29%20%7Bw3c%5Fslidy%2Eshow%5Ftoolbar%28%29%3B%20%7D%2C%2050%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20enables%20cross%20browser%20use%20of%20relative%20width%2Fheight%0A%20%20%2F%2F%20on%20object%20elements%20for%20use%20with%20SVG%20and%20Flash%20media%0A%20%20%2F%2F%20with%20thanks%20to%20Ivan%20Herman%20for%20the%20suggestion%0A%20%20adjust%5Fobject%5Fdimensions%3A%20function%20%28width%2C%20height%29%20%7B%0A%20%20%20%20for%28%20var%20i%20%3D%200%3B%20i%20%3C%20w3c%5Fslidy%2Eobjects%2Elength%3B%20i%2B%2B%20%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20obj%20%3D%20this%2Eobjects%5Bi%5D%3B%0A%20%20%20%20%20%20var%20mimeType%20%3D%20obj%2EgetAttribute%28%22type%22%29%3B%0A%0A%20%20%20%20%20%20if%20%28mimeType%20%3D%3D%20%22image%2Fsvg%2Bxml%22%20%7C%7C%20mimeType%20%3D%3D%20%22application%2Fx%2Dshockwave%2Dflash%22%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%20%21obj%2EinitialWidth%20%29%20%0A%20%20%20%20%20%20%20%20%20%20obj%2EinitialWidth%20%3D%20obj%2EgetAttribute%28%22width%22%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28%20%21obj%2EinitialHeight%20%29%20%0A%20%20%20%20%20%20%20%20%20%20obj%2EinitialHeight%20%3D%20obj%2EgetAttribute%28%22height%22%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28%20obj%2EinitialWidth%20%26%26%20obj%2EinitialWidth%2EcharAt%28obj%2EinitialWidth%2Elength%2D1%29%20%3D%3D%20%22%25%22%20%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20w%20%3D%20parseInt%28obj%2EinitialWidth%2Eslice%280%2C%20obj%2EinitialWidth%2Elength%2D1%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20newW%20%3D%20width%20%2A%20%28w%2F100%2E0%29%3B%0A%20%20%20%20%20%20%20%20%20%20obj%2EsetAttribute%28%22width%22%2CnewW%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28%20obj%2EinitialHeight%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%20obj%2EinitialHeight%2EcharAt%28obj%2EinitialHeight%2Elength%2D1%29%20%3D%3D%20%22%25%22%20%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20h%20%3D%20parseInt%28obj%2EinitialHeight%2Eslice%280%2C%20obj%2EinitialHeight%2Elength%2D1%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20newH%20%3D%20height%20%2A%20%28h%2F100%2E0%29%3B%0A%20%20%20%20%20%20%20%20%20%20obj%2EsetAttribute%28%22height%22%2C%20newH%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20needed%20for%20Opera%20to%20inhibit%20default%20behavior%0A%20%20%2F%2F%20since%20Opera%20delivers%20keyPress%20even%20if%20keyDown%0A%20%20%2F%2F%20was%20cancelled%0A%20%20key%5Fpress%3A%20function%20%28event%29%20%7B%0A%20%20%20%20if%20%28%21event%29%0A%20%20%20%20%20%20event%20%3D%20window%2Eevent%3B%0A%0A%20%20%20%20if%20%28%21w3c%5Fslidy%2Ekey%5Fwanted%29%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%0A%20%20%20%20return%20true%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20%20See%20e%2Eg%2E%20http%3A%2F%2Fwww%2Equirksmode%2Eorg%2Fjs%2Fevents%2Fkeys%2Ehtml%20for%20keycodes%0A%20%20key%5Fdown%3A%20function%20%28event%29%20%7B%0A%20%20%20%20var%20key%2C%20target%2C%20tag%3B%0A%0A%20%20%20%20w3c%5Fslidy%2Ekey%5Fwanted%20%3D%20true%3B%0A%0A%20%20%20%20if%20%28%21event%29%0A%20%20%20%20%20%20event%20%3D%20window%2Eevent%3B%0A%0A%20%20%20%20%2F%2F%20kludge%20around%20NS%2FIE%20differences%20%0A%20%20%20%20if%20%28window%2Eevent%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20key%20%3D%20window%2Eevent%2EkeyCode%3B%0A%20%20%20%20%20%20target%20%3D%20window%2Eevent%2EsrcElement%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28event%2Ewhich%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20key%20%3D%20event%2Ewhich%3B%0A%20%20%20%20%20%20target%20%3D%20event%2Etarget%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%0A%20%20%20%20%20%20return%20true%3B%20%2F%2F%20Yikes%21%20unknown%20browser%0A%0A%20%20%20%20%2F%2F%20ignore%20event%20if%20key%20value%20is%20zero%0A%20%20%20%20%2F%2F%20as%20for%20alt%20on%20Opera%20and%20Konqueror%0A%20%20%20%20if%20%28%21key%29%0A%20%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20%2F%2F%20avoid%20interfering%20with%20keystroke%0A%20%20%20%20%2F%2F%20behavior%20for%20non%2Dslidy%20chrome%20elements%0A%20%20%20%20if%20%28%21w3c%5Fslidy%2Eslidy%5Fchrome%28target%29%20%26%26%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Especial%5Felement%28target%29%29%0A%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20%2F%2F%20check%20for%20concurrent%20control%2Fcommand%2Falt%20key%0A%20%20%20%20%2F%2F%20but%20are%20these%20only%20present%20on%20mouse%20events%3F%0A%0A%20%20%20%20if%20%28event%2EctrlKey%20%7C%7C%20event%2EaltKey%20%7C%7C%20event%2EmetaKey%29%0A%20%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20%2F%2F%20dismiss%20table%20of%20contents%20if%20visible%0A%20%20%20%20if%20%28w3c%5Fslidy%2Eis%5Fshown%5Ftoc%28%29%20%26%26%20key%20%21%3D%209%20%26%26%20key%20%21%3D%2016%20%26%26%20key%20%21%3D%2038%20%26%26%20key%20%21%3D%2040%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Ehide%5Ftable%5Fof%5Fcontents%28true%29%3B%0A%0A%20%20%20%20%20%20if%20%28key%20%3D%3D%2027%20%7C%7C%20key%20%3D%3D%2084%20%7C%7C%20key%20%3D%3D%2067%29%0A%20%20%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28key%20%3D%3D%2034%29%20%2F%2F%20Page%20Down%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Eview%5Fall%29%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20%20%20w3c%5Fslidy%2Enext%5Fslide%28false%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2033%29%20%2F%2F%20Page%20Up%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Eview%5Fall%29%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20%20%20w3c%5Fslidy%2Eprevious%5Fslide%28false%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2032%29%20%2F%2F%20space%20bar%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Enext%5Fslide%28true%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2037%29%20%2F%2F%20Left%20arrow%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Eprevious%5Fslide%28%21event%2EshiftKey%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2036%29%20%2F%2F%20Home%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Efirst%5Fslide%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2035%29%20%2F%2F%20End%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fslide%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2039%29%20%2F%2F%20Right%20arrow%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Enext%5Fslide%28%21event%2EshiftKey%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2013%29%20%2F%2F%20Enter%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Eoutline%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Eoutline%2Evisible%29%0A%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Efold%28w3c%5Fslidy%2Eoutline%29%3B%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eunfold%28w3c%5Fslidy%2Eoutline%29%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%20188%29%20%20%2F%2F%20%3C%20for%20smaller%20fonts%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Esmaller%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%20190%29%20%20%2F%2F%20%3E%20for%20larger%20fonts%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Ebigger%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%20189%20%7C%7C%20key%20%3D%3D%20109%29%20%20%2F%2F%20%2D%20for%20smaller%20fonts%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Esmaller%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%20187%20%7C%7C%20key%20%3D%3D%20191%20%7C%7C%20key%20%3D%3D%20107%29%20%20%2F%2F%20%3D%20%2B%20%20for%20larger%20fonts%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Ebigger%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2083%29%20%20%2F%2F%20S%20for%20smaller%20fonts%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Esmaller%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2066%29%20%20%2F%2F%20B%20for%20larger%20fonts%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Ebigger%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2090%29%20%20%2F%2F%20Z%20for%20last%20slide%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Elast%5Fslide%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2070%29%20%20%2F%2F%20F%20for%20toggle%20toolbar%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Etoggle%5Ftoolbar%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2065%29%20%20%2F%2F%20A%20for%20toggle%20view%20single%2Fall%20slides%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Etoggle%5Fview%28%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2075%29%20%20%2F%2F%20toggle%20action%20of%20left%20click%20for%20next%20page%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Emouse%5Fclick%5Fenabled%20%3D%20%21w3c%5Fslidy%2Emouse%5Fclick%5Fenabled%3B%0A%20%20%20%20%20%20var%20alert%5Fmsg%20%3D%20%28w3c%5Fslidy%2Emouse%5Fclick%5Fenabled%20%3F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22enabled%22%20%3A%20%22disabled%22%29%20%2B%20%20%22%20mouse%20click%20advance%22%3B%0A%0A%20%20%20%20%20%20alert%28w3c%5Fslidy%2Elocalize%28alert%5Fmsg%29%29%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2084%20%7C%7C%20key%20%3D%3D%2067%29%20%20%2F%2F%20T%20or%20C%20for%20table%20of%20contents%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Etoc%29%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Etoggle%5Ftable%5Fof%5Fcontents%28%29%3B%0A%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28key%20%3D%3D%2072%29%20%2F%2F%20H%20for%20help%0A%20%20%20%20%7B%0A%20%20%20%20%20%20window%2Elocation%20%3D%20w3c%5Fslidy%2Ehelp%5Fpage%3B%0A%20%20%20%20%20%20return%20w3c%5Fslidy%2Ecancel%28event%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20%2F%2Felse%20alert%28%22key%20code%20is%20%22%2B%20key%29%3B%0A%0A%20%20%20%20return%20true%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20safe%20for%20both%20text%2Fhtml%20and%20application%2Fxhtml%2Bxml%0A%20%20create%5Felement%3A%20function%20%28name%29%20%7B%0A%20%20%20%20if%20%28this%2Exhtml%20%26%26%20%28typeof%20document%2EcreateElementNS%20%21%3D%20%27undefined%27%29%29%0A%20%20%20%20%20%20return%20document%2EcreateElementNS%28%22http%3A%2F%2Fwww%2Ew3%2Eorg%2F1999%2Fxhtml%22%2C%20name%29%0A%0A%20%20%20%20return%20document%2EcreateElement%28name%29%3B%0A%20%20%7D%2C%0A%0A%20%20get%5Felement%5Fstyle%3A%20function%20%28elem%2C%20IEStyleProp%2C%20CSSStyleProp%29%20%7B%0A%20%20%20%20if%20%28elem%2EcurrentStyle%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20return%20elem%2EcurrentStyle%5BIEStyleProp%5D%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28window%2EgetComputedStyle%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20compStyle%20%3D%20window%2EgetComputedStyle%28elem%2C%20%22%22%29%3B%0A%20%20%20%20%20%20return%20compStyle%2EgetPropertyValue%28CSSStyleProp%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20%22%22%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20the%20string%20str%20is%20a%20whitespace%20separated%20list%20of%20tokens%0A%20%20%2F%2F%20test%20if%20str%20contains%20a%20particular%20token%2C%20e%2Eg%2E%20%22slide%22%0A%20%20has%5Ftoken%3A%20function%20%28str%2C%20token%29%20%7B%0A%20%20%20%20if%20%28str%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%2F%2F%20define%20pattern%20as%20regular%20expression%0A%20%20%20%20%20%20var%20pattern%20%3D%20%2F%5Cw%2B%2Fg%3B%0A%0A%20%20%20%20%20%20%2F%2F%20check%20for%20matches%0A%20%20%20%20%20%20%2F%2F%20place%20result%20in%20array%0A%20%20%20%20%20%20var%20result%20%3D%20str%2Ematch%28pattern%29%3B%0A%0A%20%20%20%20%20%20%2F%2F%20now%20check%20if%20desired%20token%20is%20present%0A%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20result%2Elength%3B%20i%2B%2B%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20%28result%5Bi%5D%20%3D%3D%20token%29%0A%20%20%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20false%3B%0A%20%20%7D%2C%0A%0A%20%20get%5Fclass%5Flist%3A%20function%20%28element%29%20%7B%0A%20%20%20%20if%20%28typeof%20element%2EclassName%20%21%3D%20%27undefined%27%29%0A%20%20%20%20%20%20return%20element%2EclassName%3B%0A%0A%20%20%20%20return%20element%2EgetAttribute%28%22class%22%29%3B%0A%20%20%7D%2C%0A%0A%20%20has%5Fclass%3A%20function%20%28element%2C%20name%29%20%7B%0A%20%20%20%20if%20%28element%2EnodeType%20%21%3D%201%29%0A%20%20%20%20%20%20return%20false%3B%0A%0A%20%20%20%20var%20regexp%20%3D%20new%20RegExp%28%22%28%5E%7C%20%29%22%20%2B%20name%20%2B%20%22%5CW%2A%22%29%3B%0A%0A%20%20%20%20if%20%28typeof%20element%2EclassName%20%21%3D%20%27undefined%27%29%0A%20%20%20%20%20%20return%20regexp%2Etest%28element%2EclassName%29%3B%0A%0A%20%20%20%20return%20regexp%2Etest%28element%2EgetAttribute%28%22class%22%29%29%3B%0A%20%20%7D%2C%0A%0A%20%20remove%5Fclass%3A%20function%20%28element%2C%20name%29%20%7B%0A%20%20%20%20var%20regexp%20%3D%20new%20RegExp%28%22%28%5E%7C%20%29%22%20%2B%20name%20%2B%20%22%5CW%2A%22%29%3B%0A%20%20%20%20var%20clsval%20%3D%20%22%22%3B%0A%0A%20%20%20%20if%20%28typeof%20element%2EclassName%20%21%3D%20%27undefined%27%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20clsval%20%3D%20element%2EclassName%3B%0A%0A%20%20%20%20%20%20if%20%28clsval%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20clsval%20%3D%20clsval%2Ereplace%28regexp%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20element%2EclassName%20%3D%20clsval%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20else%0A%20%20%20%20%7B%0A%20%20%20%20%20%20clsval%20%3D%20element%2EgetAttribute%28%22class%22%29%3B%0A%0A%20%20%20%20%20%20if%20%28clsval%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20clsval%20%3D%20clsval%2Ereplace%28regexp%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20element%2EsetAttribute%28%22class%22%2C%20clsval%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20add%5Fclass%3A%20function%20%28element%2C%20name%29%20%7B%0A%20%20%20%20if%20%28%21this%2Ehas%5Fclass%28element%2C%20name%29%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28typeof%20element%2EclassName%20%21%3D%20%27undefined%27%29%0A%20%20%20%20%20%20%20%20element%2EclassName%20%2B%3D%20%22%20%22%20%2B%20name%3B%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20clsval%20%3D%20element%2EgetAttribute%28%22class%22%29%3B%0A%20%20%20%20%20%20%20%20clsval%20%3D%20clsval%20%3F%20clsval%20%2B%20%22%20%22%20%2B%20name%20%3A%20name%3B%0A%20%20%20%20%20%20%20%20element%2EsetAttribute%28%22class%22%2C%20clsval%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20HTML%20elements%20that%20can%20be%20used%20with%20class%3D%22incremental%22%0A%20%20%2F%2F%20note%20that%20you%20can%20also%20put%20the%20class%20on%20containers%20like%0A%20%20%2F%2F%20up%2C%20ol%2C%20dl%2C%20and%20div%20to%20make%20their%20contents%20appear%0A%20%20%2F%2F%20incrementally%2E%20Upper%20case%20is%20used%20since%20this%20is%20what%0A%20%20%2F%2F%20browsers%20report%20for%20HTML%20node%20names%20%28text%2Fhtml%29%2E%0A%20%20incremental%5Felements%3A%20null%2C%0A%20%20okay%5Ffor%5Fincremental%3A%20function%20%28name%29%20%7B%0A%20%20%20%20if%20%28%21this%2Eincremental%5Felements%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20inclist%20%3D%20new%20Array%28%29%3B%0A%20%20%20%20%20%20inclist%5B%22p%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22pre%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22li%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22blockquote%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22dt%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22dd%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22h2%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22h3%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22h4%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22h5%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22h6%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22span%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22address%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22table%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22tr%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22th%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22td%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22img%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20inclist%5B%22object%22%5D%20%3D%20true%3B%0A%20%20%20%20%20%20this%2Eincremental%5Felements%20%3D%20inclist%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20this%2Eincremental%5Felements%5Bname%2EtoLowerCase%28%29%5D%3B%0A%20%20%7D%2C%0A%0A%20%20next%5Fincremental%5Fitem%3A%20function%20%28node%29%20%7B%0A%20%20%20%20var%20br%20%3D%20this%2Eis%5Fxhtml%20%3F%20%22br%22%20%3A%20%22BR%22%3B%0A%20%20%20%20var%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%0A%20%20%20%20for%20%28%3B%3B%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20node%20%3D%20w3c%5Fslidy%2Enext%5Fnode%28slide%2C%20node%29%3B%0A%0A%20%20%20%20%20%20if%20%28node%20%3D%3D%20null%20%7C%7C%20node%2EparentNode%20%3D%3D%20null%29%0A%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20if%20%28node%2EnodeType%20%3D%3D%201%29%20%20%2F%2F%20ELEMENT%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20%28node%2EnodeName%20%3D%3D%20br%29%0A%20%20%20%20%20%20%20%20%20%20continue%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Ehas%5Fclass%28node%2C%20%22incremental%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20w3c%5Fslidy%2Eokay%5Ffor%5Fincremental%28node%2EnodeName%29%29%0A%20%20%20%20%20%20%20%20%20%20return%20node%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Ehas%5Fclass%28node%2EparentNode%2C%20%22incremental%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20%21w3c%5Fslidy%2Ehas%5Fclass%28node%2C%20%22non%2Dincremental%22%29%29%0A%20%20%20%20%20%20%20%20%20%20return%20node%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20node%3B%0A%20%20%7D%2C%0A%0A%20%20previous%5Fincremental%5Fitem%3A%20function%20%28node%29%20%7B%0A%20%20%20%20var%20br%20%3D%20this%2Eis%5Fxhtml%20%3F%20%22br%22%20%3A%20%22BR%22%3B%0A%20%20%20%20var%20slide%20%3D%20w3c%5Fslidy%2Eslides%5Bw3c%5Fslidy%2Eslide%5Fnumber%5D%3B%0A%0A%20%20%20%20for%20%28%3B%3B%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20node%20%3D%20w3c%5Fslidy%2Eprevious%5Fnode%28slide%2C%20node%29%3B%0A%0A%20%20%20%20%20%20if%20%28node%20%3D%3D%20null%20%7C%7C%20node%2EparentNode%20%3D%3D%20null%29%0A%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20if%20%28node%2EnodeType%20%3D%3D%201%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20%28node%2EnodeName%20%3D%3D%20br%29%0A%20%20%20%20%20%20%20%20%20%20continue%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Ehas%5Fclass%28node%2C%20%22incremental%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20w3c%5Fslidy%2Eokay%5Ffor%5Fincremental%28node%2EnodeName%29%29%0A%20%20%20%20%20%20%20%20%20%20return%20node%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28w3c%5Fslidy%2Ehas%5Fclass%28node%2EparentNode%2C%20%22incremental%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20%21w3c%5Fslidy%2Ehas%5Fclass%28node%2C%20%22non%2Dincremental%22%29%29%0A%20%20%20%20%20%20%20%20%20%20return%20node%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20node%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20set%20visibility%20for%20all%20elements%20on%20current%20slide%20with%0A%20%20%2F%2F%20a%20parent%20element%20with%20attribute%20class%3D%22incremental%22%0A%20%20set%5Fvisibility%5Fall%5Fincremental%3A%20function%20%28value%29%20%7B%0A%20%20%20%20var%20node%20%3D%20this%2Enext%5Fincremental%5Fitem%28null%29%3B%0A%0A%20%20%20%20if%20%28value%20%3D%3D%20%22hidden%22%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20while%20%28node%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eadd%5Fclass%28node%2C%20%22invisible%22%29%3B%0A%20%20%20%20%20%20%20%20node%20%3D%20w3c%5Fslidy%2Enext%5Fincremental%5Fitem%28node%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20else%20%2F%2F%20value%20%3D%3D%20%22visible%22%0A%20%20%20%20%7B%0A%20%20%20%20%20%20while%20%28node%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20w3c%5Fslidy%2Eremove%5Fclass%28node%2C%20%22invisible%22%29%3B%0A%20%20%20%20%20%20%20%20node%20%3D%20w3c%5Fslidy%2Enext%5Fincremental%5Fitem%28node%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20reveal%20the%20next%20hidden%20item%20on%20the%20slide%0A%20%20%2F%2F%20node%20is%20null%20or%20the%20node%20that%20was%20last%20revealed%0A%20%20reveal%5Fnext%5Fitem%3A%20function%20%28node%29%20%7B%0A%20%20%20%20node%20%3D%20w3c%5Fslidy%2Enext%5Fincremental%5Fitem%28node%29%3B%0A%0A%20%20%20%20if%20%28node%20%26%26%20node%2EnodeType%20%3D%3D%201%29%20%20%2F%2F%20an%20element%0A%20%20%20%20%20%20w3c%5Fslidy%2Eremove%5Fclass%28node%2C%20%22invisible%22%29%3B%0A%0A%20%20%20%20return%20node%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20exact%20inverse%20of%20revealNextItem%28node%29%0A%20%20hide%5Fprevious%5Fitem%3A%20function%20%28node%29%20%7B%0A%20%20%20%20if%20%28node%20%26%26%20node%2EnodeType%20%3D%3D%201%29%20%20%2F%2F%20an%20element%0A%20%20%20%20%20%20w3c%5Fslidy%2Eadd%5Fclass%28node%2C%20%22invisible%22%29%3B%0A%0A%20%20%20%20return%20this%2Eprevious%5Fincremental%5Fitem%28node%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20left%20to%20right%20traversal%20of%20root%27s%20content%0A%20%20next%5Fnode%3A%20function%20%28root%2C%20node%29%20%7B%0A%20%20%20%20if%20%28node%20%3D%3D%20null%29%0A%20%20%20%20%20%20return%20root%2EfirstChild%3B%0A%0A%20%20%20%20if%20%28node%2EfirstChild%29%0A%20%20%20%20%20%20return%20node%2EfirstChild%3B%0A%0A%20%20%20%20if%20%28node%2EnextSibling%29%0A%20%20%20%20%20%20return%20node%2EnextSibling%3B%0A%0A%20%20%20%20for%20%28%3B%3B%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20node%20%3D%20node%2EparentNode%3B%0A%0A%20%20%20%20%20%20if%20%28%21node%20%7C%7C%20node%20%3D%3D%20root%29%0A%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20if%20%28node%20%26%26%20node%2EnextSibling%29%0A%20%20%20%20%20%20%20%20return%20node%2EnextSibling%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20null%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20right%20to%20left%20traversal%20of%20root%27s%20content%0A%20%20previous%5Fnode%3A%20function%20%28root%2C%20node%29%20%7B%0A%20%20%20%20if%20%28node%20%3D%3D%20null%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20node%20%3D%20root%2ElastChild%3B%0A%0A%20%20%20%20%20%20if%20%28node%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20while%20%28node%2ElastChild%29%0A%20%20%20%20%20%20%20%20%20%20node%20%3D%20node%2ElastChild%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20return%20node%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28node%2EpreviousSibling%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20node%20%3D%20node%2EpreviousSibling%3B%0A%0A%20%20%20%20%20%20while%20%28node%2ElastChild%29%0A%20%20%20%20%20%20%20%20node%20%3D%20node%2ElastChild%3B%0A%0A%20%20%20%20%20%20return%20node%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28node%2EparentNode%20%21%3D%20root%29%0A%20%20%20%20%20%20return%20node%2EparentNode%3B%0A%0A%20%20%20%20return%20null%3B%0A%20%20%7D%2C%0A%0A%20%20previous%5Fsibling%5Felement%3A%20function%20%28el%29%20%7B%0A%20%20%20%20el%20%3D%20el%2EpreviousSibling%3B%0A%0A%20%20%20%20while%20%28el%20%26%26%20el%2EnodeType%20%21%3D%201%29%0A%20%20%20%20%20%20el%20%3D%20el%2EpreviousSibling%3B%0A%0A%20%20%20%20return%20el%3B%0A%20%20%7D%2C%0A%0A%20%20next%5Fsibling%5Felement%3A%20function%20%28el%29%20%7B%0A%20%20%20%20el%20%3D%20el%2EnextSibling%3B%0A%0A%20%20%20%20while%20%28el%20%26%26%20el%2EnodeType%20%21%3D%201%29%0A%20%20%20%20%20%20el%20%3D%20el%2EnextSibling%3B%0A%0A%20%20%20%20return%20el%3B%0A%20%20%7D%2C%0A%0A%20%20first%5Fchild%5Felement%3A%20function%20%28el%29%20%7B%0A%20%20%20%20var%20node%3B%0A%0A%20%20%20%20for%20%28node%20%3D%20el%2EfirstChild%3B%20node%3B%20node%20%3D%20node%2EnextSibling%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28node%2EnodeType%20%3D%3D%201%29%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20node%3B%0A%20%20%7D%2C%0A%0A%20%20first%5Ftag%3A%20function%20%28element%2C%20tag%29%20%7B%0A%20%20%20%20var%20node%3B%0A%0A%20%20%20%20if%20%28%21this%2Eis%5Fxhtml%29%0A%20%20%20%20%20%20tag%20%3D%20tag%2EtoUpperCase%28%29%3B%0A%0A%20%20%20%20for%20%28node%20%3D%20element%2EfirstChild%3B%20node%3B%20node%20%3D%20node%2EnextSibling%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28node%2EnodeType%20%3D%3D%201%20%26%26%20node%2EnodeName%20%3D%3D%20tag%29%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20node%3B%0A%20%20%7D%2C%0A%0A%20%20hide%5Fselection%3A%20function%20%28%29%20%7B%0A%20%20%20%20if%20%28window%2EgetSelection%29%20%2F%2F%20Firefox%2C%20Chromium%2C%20Safari%2C%20Opera%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20selection%20%3D%20window%2EgetSelection%28%29%3B%0A%0A%20%20%20%20%20%20if%20%28selection%2ErangeCount%20%3E%200%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20range%20%3D%20selection%2EgetRangeAt%280%29%3B%0A%20%20%20%20%20%20%20%20range%2Ecollapse%20%28false%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20else%20%2F%2F%20Internet%20Explorer%0A%20%20%20%20%7B%0A%20%20%20%20%20%20var%20textRange%20%3D%20document%2Eselection%2EcreateRange%20%28%29%3B%0A%20%20%20%20%20%20textRange%2Ecollapse%20%28false%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20get%5Fselected%5Ftext%3A%20function%20%28%29%20%7B%0A%20%20%20%20try%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28window%2EgetSelection%29%0A%20%20%20%20%20%20%20%20return%20window%2EgetSelection%28%29%2EtoString%28%29%3B%0A%0A%20%20%20%20%20%20if%20%28document%2EgetSelection%29%0A%20%20%20%20%20%20%20%20return%20document%2EgetSelection%28%29%2EtoString%28%29%3B%0A%0A%20%20%20%20%20%20if%20%28document%2Eselection%29%0A%20%20%20%20%20%20%20%20return%20document%2Eselection%2EcreateRange%28%29%2Etext%3B%0A%20%20%20%20%7D%0A%20%20%20%20catch%20%28e%29%0A%20%20%20%20%7B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20%22%22%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20make%20note%20of%20length%20of%20selected%20text%0A%20%20%2F%2F%20as%20this%20evaluates%20to%20zero%20in%20click%20event%0A%20%20mouse%5Fbutton%5Fup%3A%20function%20%28e%29%20%7B%0A%20%20%20%20w3c%5Fslidy%2Eselected%5Ftext%5Flen%20%3D%20w3c%5Fslidy%2Eget%5Fselected%5Ftext%28%29%2Elength%3B%0A%20%20%7D%2C%0A%0A%20%20mouse%5Fbutton%5Fdown%3A%20function%20%28e%29%20%7B%0A%20%20%20%20w3c%5Fslidy%2Eselected%5Ftext%5Flen%20%3D%20w3c%5Fslidy%2Eget%5Fselected%5Ftext%28%29%2Elength%3B%0A%20%20%20%20w3c%5Fslidy%2Emouse%5Fx%20%3D%20e%2EclientX%3B%0A%20%20%20%20w3c%5Fslidy%2Emouse%5Fy%20%3D%20e%2EclientY%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20right%20mouse%20button%20click%20is%20reserved%20for%20context%20menus%0A%20%20%2F%2F%20it%20is%20more%20reliable%20to%20detect%20rightclick%20than%20leftclick%0A%20%20mouse%5Fbutton%5Fclick%3A%20function%20%28e%29%20%7B%0A%20%20%20%20if%20%28%21e%29%0A%20%20%20%20%20%20var%20e%20%3D%20window%2Eevent%3B%0A%0A%20%20%20%20if%20%28Math%2Eabs%28e%2EclientX%20%2Dw3c%5Fslidy%2Emouse%5Fx%29%20%2B%0A%20%20%20%20%20%20%20%20Math%2Eabs%28e%2EclientY%20%2Dw3c%5Fslidy%2Emouse%5Fy%29%20%3E%2010%29%0A%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20if%20%28w3c%5Fslidy%2Eselected%5Ftext%5Flen%20%3E%200%29%0A%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20var%20rightclick%20%3D%20false%3B%0A%20%20%20%20var%20leftclick%20%3D%20false%3B%0A%20%20%20%20var%20middleclick%20%3D%20false%3B%0A%20%20%20%20var%20target%3B%0A%0A%20%20%20%20if%20%28%21e%29%0A%20%20%20%20%20%20var%20e%20%3D%20window%2Eevent%3B%0A%0A%20%20%20%20if%20%28e%2Etarget%29%0A%20%20%20%20%20%20target%20%3D%20e%2Etarget%3B%0A%20%20%20%20else%20if%20%28e%2EsrcElement%29%0A%20%20%20%20%20%20target%20%3D%20e%2EsrcElement%3B%0A%0A%20%20%20%20%2F%2F%20work%20around%20Safari%20bug%0A%20%20%20%20if%20%28target%2EnodeType%20%3D%3D%203%29%0A%20%20%20%20%20%20target%20%3D%20target%2EparentNode%3B%0A%0A%20%20%20%20if%20%28e%2Ewhich%29%20%2F%2F%20all%20browsers%20except%20IE%0A%20%20%20%20%7B%0A%20%20%20%20%20%20leftclick%20%3D%20%28e%2Ewhich%20%3D%3D%201%29%3B%0A%20%20%20%20%20%20middleclick%20%3D%20%28e%2Ewhich%20%3D%3D%202%29%3B%0A%20%20%20%20%20%20rightclick%20%3D%20%28e%2Ewhich%20%3D%3D%203%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28e%2Ebutton%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%2F%2F%20Konqueror%20gives%201%20for%20left%2C%204%20for%20middle%0A%20%20%20%20%20%20%2F%2F%20IE6%20gives%200%20for%20left%20and%20not%201%20as%20I%20expected%0A%0A%20%20%20%20%20%20if%20%28e%2Ebutton%20%3D%3D%204%29%0A%20%20%20%20%20%20%20%20middleclick%20%3D%20true%3B%0A%0A%20%20%20%20%20%20%2F%2F%20all%20browsers%20agree%20on%202%20for%20right%20button%0A%20%20%20%20%20%20rightclick%20%3D%20%28e%2Ebutton%20%3D%3D%202%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%0A%20%20%20%20%20%20leftclick%20%3D%20true%3B%0A%0A%20%20%20%20if%20%28w3c%5Fslidy%2Eselected%5Ftext%5Flen%20%3E%200%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Estop%5Fpropagation%28e%29%3B%0A%20%20%20%20%20%20e%2Ecancel%20%3D%20true%3B%0A%20%20%20%20%20%20e%2EreturnValue%20%3D%20false%3B%0A%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20dismiss%20table%20of%20contents%0A%20%20%20%20w3c%5Fslidy%2Ehide%5Ftable%5Fof%5Fcontents%28false%29%3B%0A%0A%20%20%20%20%2F%2F%20check%20if%20target%20is%20something%20that%20probably%20want%27s%20clicks%0A%20%20%20%20%2F%2F%20e%2Eg%2E%20a%2C%20embed%2C%20object%2C%20input%2C%20textarea%2C%20select%2C%20option%0A%20%20%20%20var%20tag%20%3D%20target%2EnodeName%2EtoLowerCase%28%29%3B%0A%0A%20%20%20%20if%20%28w3c%5Fslidy%2Emouse%5Fclick%5Fenabled%20%26%26%20leftclick%20%26%26%0A%20%20%20%20%20%20%20%20%21w3c%5Fslidy%2Especial%5Felement%28target%29%20%26%26%0A%20%20%20%20%20%20%20%20%21target%2Eonclick%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20w3c%5Fslidy%2Enext%5Fslide%28true%29%3B%0A%20%20%20%20%20%20w3c%5Fslidy%2Estop%5Fpropagation%28e%29%3B%0A%20%20%20%20%20%20e%2Ecancel%20%3D%20true%3B%0A%20%20%20%20%20%20e%2EreturnValue%20%3D%20false%3B%0A%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20true%3B%0A%20%20%7D%2C%0A%0A%20%20special%5Felement%3A%20function%20%28element%29%20%7B%0A%20%20%20%20if%20%28this%2Ehas%5Fclass%28element%2C%20%22non%2Dinteractive%22%29%29%0A%20%20%20%20%20%20return%20false%3B%0A%0A%20%20%20%20var%20tag%20%3D%20element%2EnodeName%2EtoLowerCase%28%29%3B%0A%0A%20%20%20%20return%20element%2Eonkeydown%20%7C%7C%0A%20%20%20%20%20%20element%2Eonclick%20%7C%7C%0A%20%20%20%20%20%20tag%20%3D%3D%20%22a%22%20%7C%7C%0A%20%20%20%20%20%20tag%20%3D%3D%20%22embed%22%20%7C%7C%0A%20%20%20%20%20%20tag%20%3D%3D%20%22object%22%20%7C%7C%0A%20%20%20%20%20%20tag%20%3D%3D%20%22video%22%20%7C%7C%0A%20%20%20%20%20%20tag%20%3D%3D%20%22audio%22%20%7C%7C%0A%20%20%20%20%20%20tag%20%3D%3D%20%22svg%22%20%7C%7C%0A%20%20%20%20%20%20tag%20%3D%3D%20%22canvas%22%20%7C%7C%0A%20%20%20%20%20%20tag%20%3D%3D%20%22input%22%20%7C%7C%0A%20%20%20%20%20%20tag%20%3D%3D%20%22textarea%22%20%7C%7C%0A%20%20%20%20%20%20tag%20%3D%3D%20%22select%22%20%7C%7C%0A%20%20%20%20%20%20tag%20%3D%3D%20%22option%22%3B%0A%20%20%7D%2C%0A%0A%20%20slidy%5Fchrome%3A%20function%20%28el%29%20%7B%0A%20%20%20%20while%20%28el%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20if%20%28el%20%3D%3D%20w3c%5Fslidy%2Etoc%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20el%20%3D%3D%20w3c%5Fslidy%2Etoolbar%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20w3c%5Fslidy%2Ehas%5Fclass%28el%2C%20%22outline%22%29%29%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20%20%20el%20%3D%20el%2EparentNode%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20false%3B%0A%20%20%7D%2C%0A%0A%20%20get%5Fkey%3A%20function%20%28e%29%0A%20%20%7B%0A%20%20%20%20var%20key%3B%0A%0A%20%20%20%20%2F%2F%20kludge%20around%20NS%2FIE%20differences%20%0A%20%20%20%20if%20%28typeof%20window%2Eevent%20%21%3D%20%22undefined%22%29%0A%20%20%20%20%20%20key%20%3D%20window%2Eevent%2EkeyCode%3B%0A%20%20%20%20else%20if%20%28e%2Ewhich%29%0A%20%20%20%20%20%20key%20%3D%20e%2Ewhich%3B%0A%0A%20%20%20%20return%20key%3B%0A%20%20%7D%2C%0A%0A%20%20get%5Ftarget%3A%20function%20%28e%29%20%7B%0A%20%20%20%20var%20target%3B%0A%0A%20%20%20%20if%20%28%21e%29%0A%20%20%20%20%20%20e%20%3D%20window%2Eevent%3B%0A%0A%20%20%20%20if%20%28e%2Etarget%29%0A%20%20%20%20%20%20target%20%3D%20e%2Etarget%3B%0A%20%20%20%20else%20if%20%28e%2EsrcElement%29%0A%20%20%20%20%20%20target%20%3D%20e%2EsrcElement%3B%0A%0A%20%20%20%20if%20%28target%2EnodeType%20%21%3D%201%29%0A%20%20%20%20%20%20target%20%3D%20target%2EparentNode%3B%0A%0A%20%20%20%20return%20target%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20does%20display%20property%20provide%20correct%20defaults%3F%0A%20%20is%5Fblock%3A%20function%20%28elem%29%20%7B%0A%20%20%20%20var%20tag%20%3D%20elem%2EnodeName%2EtoLowerCase%28%29%3B%0A%0A%20%20%20%20return%20tag%20%3D%3D%20%22ol%22%20%7C%7C%20tag%20%3D%3D%20%22ul%22%20%7C%7C%20tag%20%3D%3D%20%22p%22%20%7C%7C%20tag%20%3D%3D%20%22dl%22%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20tag%20%3D%3D%20%22li%22%20%7C%7C%20tag%20%3D%3D%20%22table%22%20%7C%7C%20tag%20%3D%3D%20%22pre%22%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20tag%20%3D%3D%20%22h1%22%20%7C%7C%20tag%20%3D%3D%20%22h2%22%20%7C%7C%20tag%20%3D%3D%20%22h3%22%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20tag%20%3D%3D%20%22h4%22%20%7C%7C%20tag%20%3D%3D%20%22h5%22%20%7C%7C%20tag%20%3D%3D%20%22h6%22%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20tag%20%3D%3D%20%22blockquote%22%20%7C%7C%20tag%20%3D%3D%20%22address%22%3B%20%0A%20%20%7D%2C%0A%0A%20%20add%5Flistener%3A%20function%20%28element%2C%20event%2C%20handler%29%20%7B%0A%20%20%20%20if%20%28window%2EaddEventListener%29%0A%20%20%20%20%20%20element%2EaddEventListener%28event%2C%20handler%2C%20false%29%3B%0A%20%20%20%20else%0A%20%20%20%20%20%20element%2EattachEvent%28%22on%22%2Bevent%2C%20handler%29%3B%0A%20%20%7D%2C%0A%0A%20%20%2F%2F%20used%20to%20prevent%20event%20propagation%20from%20field%20controls%0A%20%20stop%5Fpropagation%3A%20function%20%28event%29%20%7B%0A%20%20%20%20event%20%3D%20event%20%3F%20event%20%3A%20window%2Eevent%3B%0A%20%20%20%20event%2EcancelBubble%20%3D%20true%3B%20%20%2F%2F%20for%20IE%0A%0A%20%20%20%20if%20%28event%2EstopPropagation%29%0A%20%20%20%20%20%20event%2EstopPropagation%28%29%3B%0A%0A%20%20%20%20return%20true%3B%0A%20%20%7D%2C%0A%0A%20%20cancel%3A%20function%20%28event%29%20%7B%0A%20%20%20%20if%20%28event%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20event%2Ecancel%20%3D%20true%3B%0A%20%20%20%20%20%20%20event%2EreturnValue%20%3D%20false%3B%0A%0A%20%20%20%20%20%20if%20%28event%2EpreventDefault%29%0A%20%20%20%20%20%20%20%20event%2EpreventDefault%28%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20w3c%5Fslidy%2Ekey%5Fwanted%20%3D%20false%3B%0A%20%20%20%20return%20false%3B%0A%20%20%7D%2C%0A%0A%2F%2F%20for%20each%20language%20define%20an%20associative%20array%0A%2F%2F%20and%20also%20the%20help%20text%20which%20is%20longer%0A%0A%20%20strings%5Fes%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22p%C3%A1g%2E%22%2C%0A%20%20%20%20%22help%3F%22%3A%22Ayuda%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22%C3%8Dndice%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22tabla%20de%20contenidos%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22Tabla%20de%20Contenidos%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22Reiniciar%20presentaci%C3%B3n%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22Inicio%22%0A%20%20%7D%2C%0A%20%20help%5Fes%3A%0A%20%20%20%20%22Utilice%20el%20rat%C3%B3n%2C%20barra%20espaciadora%2C%20teclas%20Izda%2FDcha%2C%20%22%20%2B%0A%20%20%20%20%22o%20Re%20p%C3%A1g%20y%20Av%20p%C3%A1g%2E%20Use%20S%20y%20B%20para%20cambiar%20el%20tama%C3%B1o%20de%20fuente%2E%22%2C%0A%0A%20%20strings%5Fca%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22p%C3%A0g%2E%2E%22%2C%0A%20%20%20%20%22help%3F%22%3A%22Ajuda%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22%C3%8Dndex%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22taula%20de%20continguts%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22Taula%20de%20Continguts%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22Reiniciar%20presentaci%C3%B3%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22Inici%22%0A%20%20%7D%2C%0A%20%20help%5Fca%3A%0A%20%20%20%20%22Utilitzi%20el%20ratol%C3%AD%2C%20barra%20espaiadora%2C%20tecles%20Esq%2E%2FDta%2E%20%22%20%2B%0A%20%20%20%20%22o%20Re%20p%C3%A0g%20y%20Av%20p%C3%A0g%2E%20Usi%20S%20i%20B%20per%20canviar%20grand%C3%A0ria%20de%20font%2E%22%2C%0A%0A%20%20strings%5Fcs%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22sn%C3%ADmek%22%2C%0A%20%20%20%20%22help%3F%22%3A%22n%C3%A1pov%C4%9Bda%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22obsah%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22obsah%20prezentace%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22Obsah%20prezentace%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22znovu%20spustit%20prezentaci%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22restart%22%0A%20%20%7D%2C%0A%20%20help%5Fcs%3A%0A%20%20%20%20%22Prezentaci%20m%C5%AF%C5%BEete%20proch%C3%A1zet%20pomoc%C3%AD%20kliknut%C3%AD%20my%C5%A1i%2C%20mezern%C3%ADku%2C%20%22%20%2B%0A%20%20%20%20%22%C5%A1ipek%20vlevo%20a%20vpravo%20nebo%20kl%C3%A1ves%20PageUp%20a%20PageDown%2E%20P%C3%ADsmo%20se%20%22%20%2B%0A%20%20%20%20%22d%C3%A1%20zv%C4%9Bt%C5%A1it%20a%20zmen%C5%A1it%20pomoc%C3%AD%20kl%C3%A1ves%20B%20a%20S%2E%22%2C%0A%0A%20%20strings%5Fnl%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22pagina%22%2C%0A%20%20%20%20%22help%3F%22%3A%22Help%3F%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22Inhoud%3F%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22inhoudsopgave%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22Inhoudsopgave%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22herstart%20presentatie%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22Herstart%3F%22%0A%20%20%7D%2C%0A%20%20help%5Fnl%3A%0A%20%20%20%20%20%22Navigeer%20d%2Em%2Ev%2E%20het%20muis%2C%20spatiebar%2C%20Links%2FRechts%20toetsen%2C%20%22%20%2B%0A%20%20%20%20%20%22of%20PgUp%20en%20PgDn%2E%20Gebruik%20S%20en%20B%20om%20de%20karaktergrootte%20te%20veranderen%2E%22%2C%0A%0A%20%20strings%5Fde%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22Seite%22%2C%0A%20%20%20%20%22help%3F%22%3A%22Hilfe%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22%C3%9Cbersicht%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22Inhaltsverzeichnis%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22Inhaltsverzeichnis%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22Pr%C3%A4sentation%20neu%20starten%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22Neustart%22%0A%20%20%7D%2C%0A%20%20help%5Fde%3A%0A%20%20%20%20%22Benutzen%20Sie%20die%20Maus%2C%20Leerschlag%2C%20die%20Cursortasten%20links%2Frechts%20oder%20%22%20%2B%0A%20%20%20%20%22Page%20up%2FPage%20Down%20zum%20Wechseln%20der%20Seiten%20und%20S%20und%20B%20f%C3%BCr%20die%20Schriftgr%C3%B6sse%2E%22%2C%0A%0A%20%20strings%5Fpl%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22slajd%22%2C%0A%20%20%20%20%22help%3F%22%3A%22pomoc%3F%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22spis%20tre%C5%9Bci%3F%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22spis%20tre%C5%9Bci%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22Spis%20Tre%C5%9Bci%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22Restartuj%20prezentacj%C4%99%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22restart%3F%22%0A%20%20%7D%2C%0A%20%20help%5Fpl%3A%0A%20%20%20%20%22Zmieniaj%20slajdy%20klikaj%C4%85c%20mysz%C4%85%2C%20naciskaj%C4%85c%20spacj%C4%99%2C%20strza%C5%82ki%20lewo%2Fprawo%22%20%2B%0A%20%20%20%20%22lub%20PgUp%20%2F%20PgDn%2E%20U%C5%BCyj%20klawiszy%20S%20i%20B%2C%20aby%20zmieni%C4%87%20rozmiar%20czczionki%2E%22%2C%0A%0A%20%20strings%5Ffr%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22page%22%2C%0A%20%20%20%20%22help%3F%22%3A%22Aide%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22Index%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22table%20des%20mati%C3%A8res%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22Table%20des%20mati%C3%A8res%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22Recommencer%20l%27expos%C3%A9%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22D%C3%A9but%22%0A%20%20%7D%2C%0A%20%20help%5Ffr%3A%0A%20%20%20%20%22Naviguez%20avec%20la%20souris%2C%20la%20barre%20d%27espace%2C%20les%20fl%C3%A8ches%20%22%20%2B%0A%20%20%20%20%22gauche%2Fdroite%20ou%20les%20touches%20Pg%20Up%2C%20Pg%20Dn%2E%20Utilisez%20%22%20%2B%0A%20%20%20%20%22les%20touches%20S%20et%20B%20pour%20modifier%20la%20taille%20de%20la%20police%2E%22%2C%0A%0A%20%20strings%5Fhu%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22oldal%22%2C%0A%20%20%20%20%22help%3F%22%3A%22seg%C3%ADts%C3%A9g%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22tartalom%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22tartalomjegyz%C3%A9k%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22Tartalomjegyz%C3%A9k%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22bemutat%C3%B3%20%C3%BAjraind%C3%ADt%C3%A1sa%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22%C3%BAjraind%C3%ADt%C3%A1s%22%0A%20%20%7D%2C%0A%20%20help%5Fhu%3A%0A%20%20%20%20%22Az%20oldalak%20k%C3%B6zti%20l%C3%A9pked%C3%A9shez%20kattintson%20az%20eg%C3%A9rrel%2C%20vagy%20%22%20%2B%0A%20%20%20%20%22haszn%C3%A1lja%20a%20sz%C3%B3k%C3%B6z%2C%20a%20bal%2C%20vagy%20a%20jobb%20ny%C3%ADl%2C%20illetve%20a%20Page%20Down%2C%20%22%20%2B%0A%20%20%20%20%22Page%20Up%20billenty%C5%B1ket%2E%20Az%20S%20%C3%A9s%20a%20B%20billenty%C5%B1kkel%20v%C3%A1ltoztathatja%20%22%20%2B%0A%20%20%20%20%22a%20sz%C3%B6veg%20m%C3%A9ret%C3%A9t%2E%22%2C%0A%0A%20%20strings%5Fit%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22pag%2E%22%2C%0A%20%20%20%20%22help%3F%22%3A%22Aiuto%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22Indice%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22indice%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22Indice%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22Ricominciare%20la%20presentazione%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22Inizio%22%0A%20%20%7D%2C%0A%20%20help%5Fit%3A%0A%20%20%20%20%22Navigare%20con%20mouse%2C%20barra%20spazio%2C%20frecce%20sinistra%2Fdestra%20o%20%22%20%2B%0A%20%20%20%20%22PgUp%20e%20PgDn%2E%20Usare%20S%20e%20B%20per%20cambiare%20la%20dimensione%20dei%20caratteri%2E%22%2C%0A%0A%20%20strings%5Fel%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22%CF%83%CE%B5%CE%BB%CE%AF%CE%B4%CE%B1%22%2C%0A%20%20%20%20%22help%3F%22%3A%22%CE%B2%CE%BF%CE%AE%CE%B8%CE%B5%CE%B9%CE%B1%3B%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22%CF%80%CE%B5%CF%81%CE%B9%CE%B5%CF%87%CF%8C%CE%BC%CE%B5%CE%BD%CE%B1%3B%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22%CF%80%CE%AF%CE%BD%CE%B1%CE%BA%CE%B1%CF%82%20%CF%80%CE%B5%CF%81%CE%B9%CE%B5%CF%87%CE%BF%CE%BC%CE%AD%CE%BD%CF%89%CE%BD%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22%CE%A0%CE%AF%CE%BD%CE%B1%CE%BA%CE%B1%CF%82%20%CE%A0%CE%B5%CF%81%CE%B9%CE%B5%CF%87%CE%BF%CE%BC%CE%AD%CE%BD%CF%89%CE%BD%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22%CE%B5%CF%80%CE%B1%CE%BD%CE%B5%CE%BA%CE%BA%CE%AF%CE%BD%CE%B7%CF%83%CE%B7%20%CF%80%CE%B1%CF%81%CE%BF%CF%85%CF%83%CE%AF%CE%B1%CF%83%CE%B7%CF%82%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22%CE%B5%CF%80%CE%B1%CE%BD%CE%B5%CE%BA%CE%BA%CE%AF%CE%BD%CE%B7%CF%83%CE%B7%3B%22%0A%20%20%7D%2C%0A%20%20help%5Fel%3A%0A%20%20%20%20%22%CE%A0%CE%BB%CE%BF%CE%B7%CE%B3%CE%B7%CE%B8%CE%B5%CE%AF%CF%84%CE%B5%20%CE%BC%CE%B5%20%CF%84%CE%BF%20%CE%BA%CE%BB%CE%AF%CE%BA%20%CF%84%CE%BF%CF%85%20%CF%80%CE%BF%CE%BD%CF%84%CE%B9%CE%BA%CE%B9%CE%BF%CF%8D%2C%20%CF%84%CE%BF%20space%2C%20%CF%84%CE%B1%20%CE%B2%CE%AD%CE%BB%CE%B7%20%CE%B1%CF%81%CE%B9%CF%83%CF%84%CE%B5%CF%81%CE%AC%2F%CE%B4%CE%B5%CE%BE%CE%B9%CE%AC%2C%20%22%20%2B%0A%20%20%20%20%22%CE%AE%20Page%20Up%20%CE%BA%CE%B1%CE%B9%20Page%20Down%2E%20%CE%A7%CF%81%CE%B7%CF%83%CE%B9%CE%BC%CE%BF%CF%80%CE%BF%CE%B9%CE%AE%CF%83%CF%84%CE%B5%20%CF%84%CE%B1%20%CF%80%CE%BB%CE%AE%CE%BA%CF%84%CF%81%CE%B1%20S%20%CE%BA%CE%B1%CE%B9%20B%20%CE%B3%CE%B9%CE%B1%20%CE%BD%CE%B1%20%CE%B1%CE%BB%CE%BB%CE%AC%CE%BE%CE%B5%CF%84%CE%B5%20%22%20%2B%0A%20%20%20%20%22%CF%84%CE%BF%20%CE%BC%CE%AD%CE%B3%CE%B5%CE%B8%CE%BF%CF%82%20%CF%84%CE%B7%CF%82%20%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%BF%CF%83%CE%B5%CE%B9%CF%81%CE%AC%CF%82%2E%22%2C%0A%0A%20%20strings%5Fja%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%89%22%2C%0A%20%20%20%20%22help%3F%22%3A%22%E3%83%98%E3%83%AB%E3%83%97%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22%E7%9B%AE%E6%AC%A1%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22%E7%9B%AE%E6%AC%A1%E3%82%92%E8%A1%A8%E7%A4%BA%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22%E7%9B%AE%E6%AC%A1%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22%E6%9C%80%E5%88%9D%E3%81%8B%E3%82%89%E5%86%8D%E7%94%9F%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22%E6%9C%80%E5%88%9D%E3%81%8B%E3%82%89%22%0A%20%20%7D%2C%0A%20%20help%5Fja%3A%0A%20%20%20%20%20%22%E3%83%9E%E3%82%A6%E3%82%B9%E5%B7%A6%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%20%E3%83%BB%20%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%20%E3%83%BB%20%E5%B7%A6%E5%8F%B3%E3%82%AD%E3%83%BC%20%22%20%2B%0A%20%20%20%20%20%22%E3%81%BE%E3%81%9F%E3%81%AF%20Page%20Up%20%E3%83%BB%20Page%20Down%E3%81%A7%E6%93%8D%E4%BD%9C%EF%BC%8C%20S%20%E3%83%BB%20B%E3%81%A7%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E3%82%B5%E3%82%A4%E3%82%BA%E5%A4%89%E6%9B%B4%22%2C%0A%0A%20%20strings%5Fzh%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22%E5%B9%BB%E7%81%AF%E7%89%87%22%2C%0A%20%20%20%20%22help%3F%22%3A%22%E5%B8%AE%E5%8A%A9%3F%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22%E5%86%85%E5%AE%B9%3F%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22%E7%9B%AE%E5%BD%95%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22%E7%9B%AE%E5%BD%95%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E5%B1%95%E7%A4%BA%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%3F%22%0A%20%20%7D%2C%0A%20%20help%5Fzh%3A%0A%20%20%20%20%22%E7%94%A8%E9%BC%A0%E6%A0%87%E7%82%B9%E5%87%BB%2C%20%E7%A9%BA%E6%A0%BC%E6%9D%A1%2C%20%E5%B7%A6%E5%8F%B3%E7%AE%AD%E5%A4%B4%2C%20Pg%20Up%20%E5%92%8C%20Pg%20Dn%20%E5%AF%BC%E8%88%AA%2E%20%22%20%2B%0A%20%20%20%20%22%E7%94%A8%20S%2C%20B%20%E6%94%B9%E5%8F%98%E5%AD%97%E4%BD%93%E5%A4%A7%E5%B0%8F%2E%22%2C%0A%0A%20%20strings%5Fru%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22%D1%81%D0%BB%D0%B0%D0%B9%D0%B4%22%2C%0A%20%20%20%20%22help%3F%22%3A%22%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%3F%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B0%D0%BD%D0%B8%D0%B5%3F%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22%D0%BE%D0%B3%D0%BB%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22%D0%9E%D0%B3%D0%BB%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22%D0%BF%D0%B5%D1%80%D0%B5%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C%20%D0%BF%D1%80%D0%B5%D0%B7%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8E%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22%D0%BF%D0%B5%D1%80%D0%B5%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%3F%22%0A%20%20%7D%2C%0A%20%20help%5Fru%3A%0A%20%20%20%20%22%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%89%D0%B0%D0%B9%D1%82%D0%B5%D1%81%D1%8C%20%D0%BA%D0%BB%D0%B8%D0%BA%D0%B0%D1%8F%20%D0%BC%D1%8B%D1%88%D0%BA%D0%BE%D0%B9%2C%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F%20%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D1%88%D1%83%20%D0%BF%D1%80%D0%BE%D0%B1%D0%B5%D0%BB%2C%20%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%BA%D0%B8%22%20%2B%0A%20%20%20%20%22%D0%B2%D0%BB%D0%B5%D0%B2%D0%BE%2F%D0%B2%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%20%D0%B8%D0%BB%D0%B8%20Pg%20Up%20%D0%B8%20Pg%20Dn%2E%20%D0%9A%D0%BB%D0%B0%D0%B2%D0%B8%D1%88%D0%B8%20S%20%D0%B8%20B%20%D0%BC%D0%B5%D0%BD%D1%8F%D1%8E%D1%82%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%20%D1%88%D1%80%D0%B8%D1%84%D1%82%D0%B0%2E%22%2C%0A%0A%20%20strings%5Fsv%3A%20%7B%0A%20%20%20%20%22slide%22%3A%22sida%22%2C%0A%20%20%20%20%22help%3F%22%3A%22hj%C3%A4lp%22%2C%0A%20%20%20%20%22contents%3F%22%3A%22inneh%C3%A5ll%22%2C%0A%20%20%20%20%22table%20of%20contents%22%3A%22inneh%C3%A5llsf%C3%B6rteckning%22%2C%0A%20%20%20%20%22Table%20of%20Contents%22%3A%22Inneh%C3%A5llsf%C3%B6rteckning%22%2C%0A%20%20%20%20%22restart%20presentation%22%3A%22visa%20presentationen%20fr%C3%A5n%20b%C3%B6rjan%22%2C%0A%20%20%20%20%22restart%3F%22%3A%22b%C3%B6rja%20om%22%0A%20%20%7D%2C%0A%20%20help%5Fsv%3A%0A%20%20%20%20%22Bl%C3%A4ddra%20med%20ett%20klick%20med%20v%C3%A4nstra%20musknappen%2C%20mellanslagstangenten%2C%20%22%20%2B%0A%20%20%20%20%22v%C3%A4nster%2D%20och%20h%C3%B6gerpiltangenterna%20eller%20tangenterna%20Pg%20Up%2C%20Pg%20Dn%2E%20%22%20%2B%0A%20%20%20%20%22Anv%C3%A4nd%20tangenterna%20S%20och%20B%20f%C3%B6r%20att%20%C3%A4ndra%20textens%20storlek%2E%22%2C%0A%0A%20%20strings%3A%20%7B%20%7D%2C%0A%0A%20%20localize%3A%20function%20%28src%29%20%7B%0A%20%20%20%20if%20%28src%20%3D%3D%20%22%22%29%0A%20%20%20%20%20%20return%20src%3B%0A%0A%20%20%20%20%20%2F%2F%20try%20full%20language%20code%2C%20e%2Eg%2E%20en%2DUS%0A%20%20%20%20%20var%20s%2C%20lookup%20%3D%20w3c%5Fslidy%2Estrings%5Bw3c%5Fslidy%2Elang%5D%3B%0A%0A%20%20%20%20%20if%20%28lookup%29%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20s%20%3D%20lookup%5Bsrc%5D%3B%0A%0A%20%20%20%20%20%20%20if%20%28s%29%0A%20%20%20%20%20%20%20%20return%20s%3B%0A%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%2F%2F%20strip%20country%20code%20suffix%2C%20e%2Eg%2E%0A%20%20%20%20%20%2F%2F%20try%20en%20if%20undefined%20for%20en%2DUS%0A%20%20%20%20%20var%20lg%20%3D%20w3c%5Fslidy%2Elang%2Esplit%28%22%2D%22%29%3B%0A%0A%20%20%20%20%20if%20%28lg%2Elength%20%3E%201%29%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20lookup%20%3D%20w3c%5Fslidy%2Estrings%5Blg%5B0%5D%5D%3B%0A%0A%20%20%20%20%20%20%20if%20%28lookup%29%0A%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20s%20%3D%20lookup%5Bsrc%5D%3B%0A%0A%20%20%20%20%20%20%20%20%20if%20%28s%29%0A%20%20%20%20%20%20%20%20%20%20return%20s%3B%0A%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%2F%2F%20otherwise%20string%20as%20is%0A%20%20%20%20%20return%20src%3B%0A%20%20%7D%2C%0A%0A%20%20init%5Flocalization%3A%20function%20%28%29%20%7B%0A%20%20%20%20var%20i18n%20%3D%20w3c%5Fslidy%3B%0A%20%20%20%20var%20help%5Ftext%20%3D%20w3c%5Fslidy%2Ehelp%5Ftext%3B%0A%0A%20%20%20%20%2F%2F%20each%20such%20language%20array%20is%20declared%20in%20the%20localize%20array%0A%20%20%20%20%2F%2F%20this%20is%20used%20as%20in%20%20w3c%5Fslidy%2Elocalize%28%22foo%22%29%3B%0A%20%20%20%20this%2Estrings%20%3D%20%7B%0A%20%20%20%20%20%20%22es%22%3Athis%2Estrings%5Fes%2C%0A%20%20%20%20%20%20%22ca%22%3Athis%2Estrings%5Fca%2C%0A%20%20%20%20%20%20%22cs%22%3Athis%2Estrings%5Fcs%2C%0A%20%20%20%20%20%20%22nl%22%3Athis%2Estrings%5Fnl%2C%0A%20%20%20%20%20%20%22de%22%3Athis%2Estrings%5Fde%2C%0A%20%20%20%20%20%20%22pl%22%3Athis%2Estrings%5Fpl%2C%0A%20%20%20%20%20%20%22fr%22%3Athis%2Estrings%5Ffr%2C%0A%20%20%20%20%20%20%22hu%22%3Athis%2Estrings%5Fhu%2C%0A%20%20%20%20%20%20%22it%22%3Athis%2Estrings%5Fit%2C%0A%20%20%20%20%20%20%22el%22%3Athis%2Estrings%5Fel%2C%0A%20%20%20%20%20%20%22jp%22%3Athis%2Estrings%5Fja%2C%0A%20%20%20%20%20%20%22zh%22%3Athis%2Estrings%5Fzh%2C%0A%20%20%20%20%20%20%22ru%22%3Athis%2Estrings%5Fru%2C%0A%20%20%20%20%20%20%22sv%22%3Athis%2Estrings%5Fsv%0A%20%20%20%20%7D%2C%0A%0A%20%20%20%20i18n%2Estrings%5Fes%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fes%3B%0A%20%20%20%20i18n%2Estrings%5Fca%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fca%3B%0A%20%20%20%20i18n%2Estrings%5Fcs%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fcs%3B%0A%20%20%20%20i18n%2Estrings%5Fnl%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fnl%3B%0A%20%20%20%20i18n%2Estrings%5Fde%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fde%3B%0A%20%20%20%20i18n%2Estrings%5Fpl%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fpl%3B%0A%20%20%20%20i18n%2Estrings%5Ffr%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Ffr%3B%0A%20%20%20%20i18n%2Estrings%5Fhu%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fhu%3B%0A%20%20%20%20i18n%2Estrings%5Fit%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fit%3B%0A%20%20%20%20i18n%2Estrings%5Fel%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fel%3B%0A%20%20%20%20i18n%2Estrings%5Fja%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fja%3B%0A%20%20%20%20i18n%2Estrings%5Fzh%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fzh%3B%0A%20%20%20%20i18n%2Estrings%5Fru%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fru%3B%0A%20%20%20%20i18n%2Estrings%5Fsv%5Bhelp%5Ftext%5D%20%3D%20i18n%2Ehelp%5Fsv%3B%0A%0A%20%20%20%20w3c%5Fslidy%2Elang%20%3D%20document%2Ebody%2EparentNode%2EgetAttribute%28%22lang%22%29%3B%0A%0A%20%20%20%20if%20%28%21w3c%5Fslidy%2Elang%29%0A%20%20%20%20%20%20w3c%5Fslidy%2Elang%20%3D%20document%2Ebody%2EparentNode%2EgetAttribute%28%22xml%3Alang%22%29%3B%0A%0A%20%20%20%20if%20%28%21w3c%5Fslidy%2Elang%29%0A%20%20%20%20%20%20w3c%5Fslidy%2Elang%20%3D%20%22en%22%3B%0A%20%20%7D%0A%7D%3B%0A%0A%2F%2F%20hack%20for%20back%20button%20behavior%0Aif%20%28w3c%5Fslidy%2Eie6%20%7C%7C%20w3c%5Fslidy%2Eie7%29%0A%7B%0A%20%20document%2Ewrite%28%22%3Ciframe%20id%3D%27historyFrame%27%20%22%20%2B%0A%20%20%22src%3D%27javascript%3A%5C%22%3Chtml%22%2B%22%3E%3C%2F%22%2B%22html%3E%5C%22%27%20%22%20%2B%0A%20%20%22height%3D%271%27%20width%3D%271%27%20%22%20%2B%0A%20%20%22style%3D%27position%3Aabsolute%3Bleft%3A%2D800px%27%3E%3C%2Fiframe%3E%22%29%3B%0A%7D%0A%0A%2F%2F%20attach%20event%20listeners%20for%20initialization%0Aw3c%5Fslidy%2Eset%5Fup%28%29%3B%0A%0A%2F%2F%20hide%20the%20slides%20as%20soon%20as%20body%20element%20is%20available%0A%2F%2F%20to%20reduce%20annoying%20screen%20mess%20before%20the%20onload%20event%0AsetTimeout%28w3c%5Fslidy%2Ehide%5Fslides%2C%2050%29%3B%0A%0A" charset="utf-8" type="text/javascript"></script>
</head>
<body>
<div class="slide titlepage">
<h1 class="title">Tomo</h1>
<p class="subtitle">How Languages Get Made</p>
</div>
<div id="quick-summary" class="slide section level1">
<h1>Quick Summary</h1>
<p>Tomo is the programming language I’ve been working on:</p>
<ul>
<li>Statically typed</li>
<li>Imperative</li>
<li>Cross-compiles to C</li>
<li>Focus on safety, simplicity, speed</li>
</ul>
<p>This talk is going to be about how Tomo got made and how you can make your
own languages.</p>
</div>
<div id="tomo-compiler-overview" class="slide section level1">
<h1>Tomo Compiler Overview</h1>
<pre><code> 76 text files.
76 unique files.
34 files ignored.
*******************************************************************************
Language files blank comment code
*******************************************************************************
C 73 2373 807 20002
Markdown 2 7 0 40
Text 1 3 0 21
*******************************************************************************
SUM: 76 2383 807 20063
*******************************************************************************</code></pre>
</div>
<div id="ideation" class="slide section level1">
<h1>Ideation</h1>
<p>When making a language, my first step is to write pseudocode:</p>
<pre><code>hello = func(Text name)->Text {
return "Hello {name}"
}
say(hello("world"))</code></pre>
<p>(For example)</p>
<p>This language exists only in my brain and can’t be parsed (let alone
executed) by a computer yet.</p>
</div>
<div id="iteration" class="slide section level1">
<h1>Iteration</h1>
<p>Working with pseudocode lets you iterate on language design <em>really
fast!</em></p>
<p>It costs you almost nothing to explore how different variations feel to type
and read:</p>
<pre><code>Text hello(Text name) {
return "Hello " ++ name
}</code></pre>
<pre><code>hello := (name Text) -> Text:
return "Hello " ++ name</code></pre>
<pre><code>func hello(name: Text -> Text)
return "Hello " ++ name</code></pre>
</div>
<div id="proof-of-concept" class="slide section level1">
<h1>Proof of Concept</h1>
<p>For most language ideas, you’re not trying to do something radically
different from any pre-existing language.</p>
<p>If there’s a pre-existing language with similar semantics, it can be fairly
easy to translate your language’s syntax into your target language’s syntax.</p>
<p>For example, if we picked C, the examples would look like this:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb6-1"><a href="#cb6-1" tabindex="-1"></a><span class="dt">const</span> <span class="dt">char</span> <span class="op">*</span>hello<span class="op">(</span><span class="dt">const</span> <span class="dt">char</span> <span class="op">*</span>name<span class="op">)</span> <span class="op">{</span></span>
<span id="cb6-2"><a href="#cb6-2" tabindex="-1"></a> <span class="cf">return</span> asprintf<span class="op">(</span><span class="st">"</span><span class="sc">%s%s</span><span class="st">"</span><span class="op">,</span> <span class="st">"Hello "</span><span class="op">,</span> name<span class="op">);</span></span>
<span id="cb6-3"><a href="#cb6-3" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
<p>If we picked Python, it would look like:</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb7-1"><a href="#cb7-1" tabindex="-1"></a><span class="kw">def</span> hello(name:<span class="bu">str</span>)<span class="op">-></span><span class="bu">str</span>:</span>
<span id="cb7-2"><a href="#cb7-2" tabindex="-1"></a> <span class="cf">return</span> <span class="st">"Hello "</span> <span class="op">+</span> <span class="bu">str</span>(name)</span></code></pre></div>
<p>It should be pretty obvious how you could perform this kind of translation
<em>manually</em>.</p>
</div>
<div id="parsing" class="slide section level1">
<h1>Parsing</h1>
<p>At this point, it’s a good idea to pick a language and parsing technology
that you’re comfortable with, and begin implementing a parser for a very limited
subset of the language.</p>
<p>I personally really like the Lua parsing library <a href="https://www.inf.puc-rio.br/~roberto/lpeg/" target="_blank" rel="noreferrer">LPEG</a>.</p>
<p>I also like writing parsers in C.</p>
<p>Racket also has some good parsing tools.</p>
<p><strong>DO NOT ATTEMPT TO PARSE YOUR LANGUAGE WITH REGEX</strong></p>
<p>It is <em>impossible</em> to parse most programming languages with regex, and
it’s a waste of time to try. Learn a better tool and you’ll thank me for it
later.</p>
</div>
<div id="fancy-parsing-tools" class="slide section level1">
<h1>Fancy Parsing Tools</h1>
<p>One approach to take is using parser generators or other tools that let you
write a grammar file.</p>
<p>You might write a grammar that looks like this:</p>
<pre><code>file <- (__ statement)* __
statement <- functiondef / return / functioncall
functiondef <- "func" _ name _ "(" arg_signatures _ "->" _ type ")"
__ "return" _ expression
arg_signatures <- (arg_signature (_ "," _ arg_signature)*)?
arg_signature <- name _ ":" _ type
type <- name
expression <- name / expr _ "+" _ expr / string
string <- '"' [^"]* '"'
name <- [a-zA-Z_][a-zA-Z_0-9]*
_ <- [ \t]*
__ <- [ \t\r\n]*</code></pre>
<p>Most of these tools are built with the expectation that you don’t care about
whitespace… but I usually <em>do</em> care.</p>
</div>
<div id="handwriting-a-parser" class="slide section level1">
<h1>Handwriting a Parser</h1>
<p>The approach I like using in C is inspired by the approach used in the Lua
parser.</p>
<p>Use a variable for the current position in the text being parsed, and use two
types of functions: low-level functions that match exact strings or simple
string patterns, and high-level functions that match abstract syntax trees:</p>
<div class="sourceCode" id="cb9"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb9-1"><a href="#cb9-1" tabindex="-1"></a><span class="dt">void</span> spaces<span class="op">(</span><span class="dt">const</span> <span class="dt">char</span> <span class="op">**</span>pos<span class="op">)</span> <span class="op">{</span></span>
<span id="cb9-2"><a href="#cb9-2" tabindex="-1"></a> <span class="cf">while</span> <span class="op">(</span>isspace<span class="op">(**</span>pos<span class="op">))</span></span>
<span id="cb9-3"><a href="#cb9-3" tabindex="-1"></a> <span class="op">*</span>pos <span class="op">+=</span> <span class="dv">1</span><span class="op">;</span></span>
<span id="cb9-4"><a href="#cb9-4" tabindex="-1"></a><span class="op">}</span></span>
<span id="cb9-5"><a href="#cb9-5" tabindex="-1"></a></span>
<span id="cb9-6"><a href="#cb9-6" tabindex="-1"></a><span class="dt">bool</span> match_str<span class="op">(</span><span class="dt">const</span> <span class="dt">char</span> <span class="op">**</span>pos<span class="op">,</span> <span class="dt">const</span> <span class="dt">char</span> <span class="op">*</span>target<span class="op">)</span> <span class="op">{</span></span>
<span id="cb9-7"><a href="#cb9-7" tabindex="-1"></a> <span class="cf">if</span> <span class="op">(</span>strncmp<span class="op">(*</span>pos<span class="op">,</span> target<span class="op">,</span> strlen<span class="op">(</span>target<span class="op">))</span> <span class="op">!=</span> <span class="dv">0</span><span class="op">)</span></span>
<span id="cb9-8"><a href="#cb9-8" tabindex="-1"></a> <span class="cf">return</span> <span class="kw">false</span><span class="op">;</span></span>
<span id="cb9-9"><a href="#cb9-9" tabindex="-1"></a> <span class="co">// Advance the position:</span></span>
<span id="cb9-10"><a href="#cb9-10" tabindex="-1"></a> <span class="op">*</span>pos <span class="op">+=</span> strlen<span class="op">(</span>target<span class="op">);</span></span>
<span id="cb9-11"><a href="#cb9-11" tabindex="-1"></a> <span class="cf">return</span> <span class="kw">true</span><span class="op">;</span></span>
<span id="cb9-12"><a href="#cb9-12" tabindex="-1"></a><span class="op">}</span></span>
<span id="cb9-13"><a href="#cb9-13" tabindex="-1"></a></span>
<span id="cb9-14"><a href="#cb9-14" tabindex="-1"></a>ast_t <span class="op">*</span>match_var<span class="op">(</span><span class="dt">const</span> <span class="dt">char</span> <span class="op">**</span>pos<span class="op">)</span> <span class="op">{</span></span>
<span id="cb9-15"><a href="#cb9-15" tabindex="-1"></a> <span class="cf">if</span> <span class="op">(!</span>isalpha<span class="op">(**</span>pos<span class="op">)</span> <span class="op">&&</span> <span class="op">**</span>pos <span class="op">!=</span> <span class="ch">'_'</span><span class="op">)</span></span>
<span id="cb9-16"><a href="#cb9-16" tabindex="-1"></a> <span class="cf">return</span> NULL<span class="op">;</span></span>
<span id="cb9-17"><a href="#cb9-17" tabindex="-1"></a></span>
<span id="cb9-18"><a href="#cb9-18" tabindex="-1"></a> <span class="dt">size_t</span> len <span class="op">=</span> <span class="dv">1</span><span class="op">;</span></span>
<span id="cb9-19"><a href="#cb9-19" tabindex="-1"></a> <span class="cf">while</span> <span class="op">(</span>isalpha<span class="op">((*</span>pos<span class="op">)[</span>len<span class="op">])</span> <span class="op">||</span> <span class="op">(*</span>pos<span class="op">)[</span>len<span class="op">]</span> <span class="op">==</span> <span class="ch">'_'</span> <span class="op">||</span> isdigit<span class="op">((*</span>pos<span class="op">)[</span>len<span class="op">]))</span></span>
<span id="cb9-20"><a href="#cb9-20" tabindex="-1"></a> len <span class="op">+=</span> <span class="dv">1</span><span class="op">;</span></span>
<span id="cb9-21"><a href="#cb9-21" tabindex="-1"></a></span>
<span id="cb9-22"><a href="#cb9-22" tabindex="-1"></a> <span class="dt">const</span> <span class="dt">char</span> <span class="op">*</span>name <span class="op">=</span> strndup<span class="op">(**</span>pos<span class="op">,</span> len<span class="op">);</span></span>
<span id="cb9-23"><a href="#cb9-23" tabindex="-1"></a> <span class="op">*</span>pos <span class="op">+=</span> len<span class="op">;</span></span>
<span id="cb9-24"><a href="#cb9-24" tabindex="-1"></a> <span class="cf">return</span> NewAST<span class="op">(</span>Var<span class="op">,</span> <span class="op">.</span>name<span class="op">=</span>name<span class="op">);</span></span>
<span id="cb9-25"><a href="#cb9-25" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
</div>
<div id="setting-expectations" class="slide section level1">
<h1>Setting Expectations</h1>
<p>A common pattern is mandatory patterns. Cases where if something isn’t
present, it’s a syntax error.</p>
<div class="sourceCode" id="cb10"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb10-1"><a href="#cb10-1" tabindex="-1"></a>ast_t <span class="op">*</span>expect<span class="op">(</span><span class="dt">const</span> <span class="dt">char</span> <span class="op">**</span>pos<span class="op">,</span> match_fn_t matcher<span class="op">,</span> <span class="dt">const</span> <span class="dt">char</span> <span class="op">*</span>msg<span class="op">)</span> <span class="op">{</span></span>
<span id="cb10-2"><a href="#cb10-2" tabindex="-1"></a> ast_t <span class="op">*</span>match <span class="op">=</span> matcher<span class="op">(</span>pos<span class="op">);</span></span>
<span id="cb10-3"><a href="#cb10-3" tabindex="-1"></a> <span class="cf">if</span> <span class="op">(!</span>match<span class="op">)</span> errx<span class="op">(</span><span class="dv">1</span><span class="op">,</span> msg<span class="op">);</span></span>
<span id="cb10-4"><a href="#cb10-4" tabindex="-1"></a> <span class="cf">return</span> match<span class="op">;</span></span>
<span id="cb10-5"><a href="#cb10-5" tabindex="-1"></a><span class="op">}</span></span>
<span id="cb10-6"><a href="#cb10-6" tabindex="-1"></a></span>
<span id="cb10-7"><a href="#cb10-7" tabindex="-1"></a><span class="dt">void</span> expect_str<span class="op">(</span><span class="dt">const</span> <span class="dt">char</span> <span class="op">**</span>pos<span class="op">,</span> <span class="dt">const</span> <span class="dt">char</span> <span class="op">*</span>str<span class="op">,</span> <span class="dt">const</span> <span class="dt">char</span> <span class="op">*</span>msg<span class="op">)</span> <span class="op">{</span></span>
<span id="cb10-8"><a href="#cb10-8" tabindex="-1"></a> <span class="cf">if</span> <span class="op">(!</span>match_str<span class="op">(</span>pos<span class="op">,</span> str<span class="op">))</span> errx<span class="op">(</span><span class="dv">1</span><span class="op">,</span> msg<span class="op">);</span></span>
<span id="cb10-9"><a href="#cb10-9" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
<p>This lets us use shorthand like:</p>
<div class="sourceCode" id="cb11"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb11-1"><a href="#cb11-1" tabindex="-1"></a>ast_t <span class="op">*</span>var <span class="op">=</span> expect<span class="op">(</span>pos<span class="op">,</span> match_var<span class="op">,</span> <span class="st">"Oh no, I was expecting a var here"</span><span class="op">);</span></span></code></pre></div>
</div>
<div id="more-advanced-example" class="slide section level1">
<h1>More Advanced Example</h1>
<div class="sourceCode" id="cb12"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb12-1"><a href="#cb12-1" tabindex="-1"></a>ast_t <span class="op">*</span>match_func_def<span class="op">(</span><span class="dt">const</span> <span class="dt">char</span> <span class="op">**</span>pos<span class="op">)</span> <span class="op">{</span></span>
<span id="cb12-2"><a href="#cb12-2" tabindex="-1"></a> <span class="cf">if</span> <span class="op">(!</span>match_word<span class="op">(</span>pos<span class="op">,</span> <span class="st">"func"</span><span class="op">))</span></span>
<span id="cb12-3"><a href="#cb12-3" tabindex="-1"></a> <span class="cf">return</span> NULL<span class="op">;</span></span>
<span id="cb12-4"><a href="#cb12-4" tabindex="-1"></a></span>
<span id="cb12-5"><a href="#cb12-5" tabindex="-1"></a> spaces<span class="op">(</span>pos<span class="op">);</span></span>
<span id="cb12-6"><a href="#cb12-6" tabindex="-1"></a> ast_t <span class="op">*</span>name <span class="op">=</span> expect<span class="op">(</span>pos<span class="op">,</span> match_var<span class="op">,</span> <span class="st">"No function name provided!"</span><span class="op">);</span></span>
<span id="cb12-7"><a href="#cb12-7" tabindex="-1"></a> spaces<span class="op">(</span>pos<span class="op">);</span></span>
<span id="cb12-8"><a href="#cb12-8" tabindex="-1"></a> expect_str<span class="op">(</span>pos<span class="op">,</span> <span class="st">"("</span><span class="op">,</span> <span class="st">"I expected a parenthesis!"</span><span class="op">);</span></span>
<span id="cb12-9"><a href="#cb12-9" tabindex="-1"></a> ast_list_t args <span class="op">=</span> <span class="op">{};</span></span>
<span id="cb12-10"><a href="#cb12-10" tabindex="-1"></a> <span class="cf">while</span> <span class="op">(</span><span class="dv">1</span><span class="op">)</span> <span class="op">{</span></span>
<span id="cb12-11"><a href="#cb12-11" tabindex="-1"></a> spaces<span class="op">(</span>pos<span class="op">);</span></span>
<span id="cb12-12"><a href="#cb12-12" tabindex="-1"></a> ast_t <span class="op">*</span>arg <span class="op">=</span> match_arg_def<span class="op">(</span>pos<span class="op">);</span></span>
<span id="cb12-13"><a href="#cb12-13" tabindex="-1"></a> <span class="cf">if</span> <span class="op">(!</span>arg<span class="op">)</span> <span class="cf">break</span><span class="op">;</span></span>
<span id="cb12-14"><a href="#cb12-14" tabindex="-1"></a> append_arg<span class="op">(&</span>args<span class="op">,</span> arg<span class="op">);</span></span>
<span id="cb12-15"><a href="#cb12-15" tabindex="-1"></a> spaces<span class="op">(</span>pos<span class="op">);</span></span>
<span id="cb12-16"><a href="#cb12-16" tabindex="-1"></a> <span class="cf">if</span> <span class="op">(!</span>match_str<span class="op">(</span>pos<span class="op">,</span> <span class="st">","</span><span class="op">))</span> <span class="cf">break</span><span class="op">;</span></span>
<span id="cb12-17"><a href="#cb12-17" tabindex="-1"></a> spaces<span class="op">(</span>pos<span class="op">);</span></span>
<span id="cb12-18"><a href="#cb12-18" tabindex="-1"></a> <span class="op">}</span></span>
<span id="cb12-19"><a href="#cb12-19" tabindex="-1"></a> <span class="op">...</span></span>
<span id="cb12-20"><a href="#cb12-20" tabindex="-1"></a> <span class="cf">return</span> NewAST<span class="op">(</span>FunctionDef<span class="op">,</span> <span class="op">.</span>name<span class="op">=</span>name<span class="op">,</span> <span class="op">.</span>args<span class="op">=</span>args<span class="op">);</span></span>
<span id="cb12-21"><a href="#cb12-21" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
</div>
<div id="parsing-alternatives" class="slide section level1">
<h1>Parsing Alternatives</h1>
<p>Here’s how you can parse <code>A or B or C</code>:</p>
<div class="sourceCode" id="cb13"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb13-1"><a href="#cb13-1" tabindex="-1"></a>ast_t <span class="op">*</span>match_expr<span class="op">(</span><span class="dt">const</span> <span class="dt">char</span> <span class="op">**</span>pos<span class="op">)</span> <span class="op">{</span></span>
<span id="cb13-2"><a href="#cb13-2" tabindex="-1"></a> ast_t <span class="op">*</span>expr<span class="op">;</span></span>
<span id="cb13-3"><a href="#cb13-3" tabindex="-1"></a> <span class="cf">if</span> <span class="op">(</span> <span class="op">(</span>expr<span class="op">=</span>match_int<span class="op">(</span>pos<span class="op">))</span></span>
<span id="cb13-4"><a href="#cb13-4" tabindex="-1"></a> <span class="op">||</span> <span class="op">(</span>expr<span class="op">=</span>match_var<span class="op">(</span>pos<span class="op">))</span></span>
<span id="cb13-5"><a href="#cb13-5" tabindex="-1"></a> <span class="op">||</span> <span class="op">(</span>expr<span class="op">=</span>match_function_call<span class="op">(</span>pos<span class="op">))</span></span>
<span id="cb13-6"><a href="#cb13-6" tabindex="-1"></a> <span class="op">||</span> <span class="op">(</span>expr<span class="op">=</span>match_addition<span class="op">))</span></span>
<span id="cb13-7"><a href="#cb13-7" tabindex="-1"></a> <span class="cf">return</span> expr<span class="op">;</span></span>
<span id="cb13-8"><a href="#cb13-8" tabindex="-1"></a> <span class="cf">return</span> NULL<span class="op">;</span></span>
<span id="cb13-9"><a href="#cb13-9" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
</div>
<div id="advantages-of-handwriting-a-parser" class="slide section level1">
<h1>Advantages of Handwriting a Parser</h1>
<p>Although handwriting a parser is a lot more verbose, it also lets you have a
lot more fine-grained control. This is <em>not necessary</em> for prototyping or
for small projects, but it’s useful for bigger projects.</p>
<p>Fine-grained control lets you be explicit about things like where spaces are
or aren’t allowed. It also lets us freely intermix standard parsing idioms with
bespoke, more complicated logic (e.g. custom string escaping rules or format
strings).</p>
<p>But one of the most important benefits is that it lets you write <em>really
good</em> custom parser error messages.</p>
</div>
<div id="parser-errors" class="slide section level1">
<h1>Parser Errors</h1>
<p>Within a parser, you need a bit of contextual information, like filename and
maybe some line number information. This info can be stored as a global variable
or passed as an argument to parsing functions.</p>
<p>With this information, you can print the offending source code with
highlights.</p>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA9IAAADOCAYAAADSbzqjAAAgAElEQVR4nOzdd3wc1b3//9fsrnovVrFlWe6WC7ZxwdjG2IDpLcANIcA3kFySACEhBJIL5Ca5vyQk3CQECIRcSEK9od0khF4MroCNuy3LVZKLrN7r1pnfH1qr2LKt1a5Xlv1+Ph5+wK52dj6z58w585k5c8YYOzzLQkRERERERET6xDbQAYiIiIiIiIgMJkqkRURERERERAKgRFpEREREREQkAEqkRURERERERAKgRFpEREREREQkAEqkRURERERERAKgRFpEREREREQkAEqkRURERERERAKgRFpEREREREQkAEqkRURERERERAKgRFpEREREREQkAEqkRURERERERAKgRFpEREREREQkAEqkRURERERERAKgRFpEREREREQkAEqkRURERERERALg6OsHt33t5hMZh4iIiIiIiEhAJj3/4oCsV1ekRURERERERALQ5yvSIiIiMkAsN2WNbbQCYBAXm8jQSGOAg5ITTuU+uKn8RE5pSqRFREROcpb7AD9/+zNW+ABszJ97LX8aG40OyU9tKvfBTeUncmoLMpH2UVq6nT9t38faumaqXB48FlhAVO58Vi0aSWxIwhQR6Q8nr3/0d35WZgJqlwTw7ee+V5bzrhfAxuyzvsRfJsTqPqeQ0XEBcBrWM5W7iJx+gkqknVWbuX3pNorNUIVz8vA27OPPexvwARjxLJg4mikRAx2Vn+VmX1UZyw+UsrKilt3NbdR7TCIio8lOSmdO7mi+Oi6HkSGM191ez7ryCr6oqGRtZRXbmlx4ALAxY/ZVPJcfP/AHCD0OXI7lJIr5FHdS70dyylA9O3nouOD0pHIf3Nyln3Lux8U0AVHD57H8vFEkDHRQclI6HfaHQASRSJtsKi5mb2ej6SAzJYXcyI7UJCI5ZlAnKd6GvTy9eT8uAFsmKWNGMSXi5BiM4ylbz40f76He6vm+19VGcdV+iqv28/edefz4/Llck2QPwRotdm1fwbe3NnXsOCJ9dDLvR3LqUD07Wei44PSkchc5XWh/6CmIRNpNabOLQ+1mRNaZvHzheDJP399ygBjERMeQ5jCpa3XS5k+uXc17+fnyRMZfPpVJg7kHExERjKjRPHXT6IEO4zh0XBBqKvfBbXCUn4j0V/8TacuHq9vlSUdMDClqNMMm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/JSUI87UJefM5i9psfx60x5WN7gwopOYMWIC35k6mvzDhn0FGmd39tgcHrjkCi7Ys4PXSsrY0NBCndvEERnD8JQhzM8byw1j4o5yJjGw/ah/cdoYOeFcXoop4NGCEtbUt+OLTGB63kTumT6ULcsKjrK2fnKk8a3FlzCqYCsvlZSzo9WN1x7DqIwcvjR5MgvrP+WyE5VIE0C5D0CcwdSz4ISnve7X9hmxXDp7IXFlFXxRUc2O5jZqnE4aPRAdFUteagbnjpnAzXmpJIYkyDCvL5hQB6x/76+T+LhgEJV74rBZ/GlBBL/ZUsLaRhdWVBKzR0/hR1PgsZI9J2Sd4ezH+mtQ7A/hrmcD0I8lZp3Jsxcn8cdNO/iwqolan53stOHcPHM6I/a8zWeVHZ8zetwXHf56PSj620HULvWXMXZ4Vp9OoG772s0nOhYROQZv5Vou+WBHx702RhLfvOwKvpd2cpyZlhNH5S4iIjLArDZe+eif/KLcxAKihs3lkwtGd5vVWwbSpOdfHJD1Ds7r6CIiIiIiIiFjcXDvJn5buJ9tbd6uK92Wm5171vNshekftmwwIj31pJi7QQbW4Htgl4iIiIiISIg5mw7y4satPLsWbPZI0qIjsNzt1HrMznt/DUc6V45MHoAJh+Vko0RaRERERESkG9Pnprq15zOvDCOG+TPm8NWTZNI3GVhKpEVERERE5DRnkJEziTudpaytqqWk1UmD24MLO0mxiUzIHMpl4/O5cki0rkYLoMnGREREREREZJAaqMnG+pxIi4iIiIiIiIhm7RYREREREREJiBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQAokRYREREREREJgBJpERERERERkQA4gv2CnKkGd1xoMHsEZMRBhA0MwLXB4uzHLNpCEKSIiIiIiIjIySKoRDp6rMH/fNdgdNDp+MnHMczgttlgBzBhxYcWW9oHOioREREREREZaEGlwNPnGozs9g0V+y0O+C9Be0otzGC+fM7njFIAACAASURBVIA5cuDbVxtEAXgt6leiRFpERERERESCSKQNGJ7RdZO1Z7vFVx62qLBCE5iIiIiIiIjIySioycYiu6Xh3iaoUxItIiIiIiIipzhj7PCsvqe/DoOHHjO4Jv74H+11sjE7nDHX4GvnGMzKgeRIaKqz2LwV/vaexac1R/my/i4XoKvvtvHr6X37bPkSk8UvgjfG4I9/MDgvAjb93eLlZLhrrkFik8XrL1s8UWZw778bXDUS3NUWr/7N4g9bGdTD3kVERERERE5nYZsmzIiBW+60ce8U/wRefumZBudnwqJ5Bs//0eQ3W3ommf1dbiCMON/gF8kQARBj8PVvG8yogak5HTOZM9TgW9+Egh9afKz7rUVERERERAalwBJpy6JkN6yN6XiZmWuQG9vx/74m2FDWdXG7x2RjBiz+Ws9k2PJBiwfiojvGl9ti4Gt3GJT/l8UL5UEu10/VB63ObTMSDc4c6h/7bsG+YosqT9dnayvh8Ev5KclQVmRRn2YwMRmMaJg2DEp2WPiGG4yOA1uCwfyRFh8XBheriIiIiIiIDIzAhnb3WBJuvt/Gg+M7XravsTjrjxbuXj7qGGnwxk8MxvjvyK7caHHnMxYFbZA32+CJ2wzGRHT8rfYzi0uetmiy+r9cKESfZbDmjq5Zu39+n8X/1vXywW5Du816i3+/z2LTGQZL7zJIMsC71+Kq/7JoO9/gw5sMIoBPnzX5xrLQxCkiIiIiIiLhFdRkY301abbBSP+arDaL3z9rUdAKWLB3jcXPl4PP/9nUqTAnKrjlBopZD2U+cFVDpT+h91bDQRNqa8Dp/1xywoCFKCIiIiIiIkE68Ym0AeNHdA3NdhfBiqaeH9m40aLen3gaMQaTsoJYbgBZPvBZgAdchxJpT8e925YPvP73IiMGKkIREREREREJVlgS6fRuV2Cba6H5sOHXvnqoNLs+n5YYxHKDgN1+/M+IiIiIiIjIySksQ7ulJ2OgAxAREREREZF+O/GJtAU1zV0vE9Ig4bBM0p4CmbZun28KYjkRERERERGRE+jEP0fagh37wDep437nyNGwIBHeaOz6yPTpBin+JNlqtyisCGK5XuSfbbBwSFc865ZbrD1O0m35ej7eyqZr9yIiIiIiIkKYhnYXfmFR4r+X2Yg1uPsWg0lxgAEjZhv8+NyuScVqN8NqV3DL9WDAlPkG37vW/+8agznJx4/ZbO92T7bdYNooDckWERERERGRcFyRpuNZyo+vMfj92R2Jb9aZBv/3B4NmN8THdGXzVrvF0292PQu6v8uFJOaDsNsLQyIAAy79lo3Jl1pU+ZP12vUWP/iw6/FbIiIiIiIicnoIz4BlCz563uR3BV2Jp2GHxG7JsNkOz//R4qXyECwXipAbLV7+ott6HTBipMGsCR3/pmbqCrWIiIiIiMjpKCxXpAGsdvjrIybr5xvcMt9gZg6kREJjncXmrfC3dy1W1YRuueADho+eM/lehcFXZhrkZ0JydNdQchERERERETk9GWOHZ4VwQLSIiIiIiIjIqa3PV6R3vqBpq0Np/P8zBzoEERERERER6QddkRYREREREREJgC4zi4iIiIiIiARAibSIiIiIiIhIAJRIi4iIiIiIiARgkCXSDtJHDWXyxHRSw/bgLhEREREREZEugyuRNhyk5WWTPz6VlIiBDkZEREREREROR4MrkRYREREREREZYEqkRURERERERAKgRFpEREREREQkAOGbsstwkJAWz5C0eNLS4klLiyU+0oZhtbN9aSEF9VbYQhERERERERHpr7Al0kZsGjMXDCf98Gvgyp9FRERERERkEAnrQ6Qsr5uGhhZqalqoc8aSPy2dhHAGICIiIiIiIhKksCXSVlsVK96qxPRfgTYSsxkXrpWLiIiIiIiIhEj4rkhbFmbYViYiIiIiIiJyYmjWbhEREREREZEAKJEWERERERERCYASaREREREREZEAKJEWERERERERCYASaREREREREZEAKJEWERERERERCYASaREREREREZEAKJEWERERERERCYASaREREREREZEAKJEWERERERERCYAjfKsysEfYcfhTdyPShtH5voOoKAsAyzTxeEys8AUmIiIiIiIi0mfhS6SNaMafO5FJycZhf4hm3IKpjPO/MhvKWPJxGY3KpEVEREREROQkpKHdIiIiIiIiIgEI3xVpq53CJespDNsKRUREREREREJP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" /></p>
<p>It’s not hard to print good and colorful error messages, but you
<em>need</em> to have contextual information when you decide something has gone
wrong. The best error messages are the ones that clearly describe what it was
expecting (and didn’t get) and maybe a suggestion if there’s an obvious fix.</p>
<p>Some tools like Haskell’s <code>parsec</code> do a decent job of generating
informative parser errors showing what the parser expected, but still not as
good as full natural language explaining how the user might fix the problem.</p>
</div>
<div id="abstract-syntax-trees" class="slide section level1">
<h1>Abstract Syntax Trees</h1>
<p>What does the parser return? An abstract syntax tree!</p>
<p>There are roughly two approaches:</p>
<ul>
<li>Tagged unions (AKA sum types or enums)</li>
<li>S-expressions</li>
</ul>
</div>
<div id="tagged-unions" class="slide section level1">
<h1>Tagged Unions</h1>
<p>AKA: sum types or enums</p>
<div class="sourceCode" id="cb14"><pre class="sourceCode rust"><code class="sourceCode rust"><span id="cb14-1"><a href="#cb14-1" tabindex="-1"></a><span class="kw">enum</span> AST <span class="op">{</span></span>
<span id="cb14-2"><a href="#cb14-2" tabindex="-1"></a> Var <span class="op">{</span> name<span class="op">:</span> <span class="dt">str</span> <span class="op">},</span></span>
<span id="cb14-3"><a href="#cb14-3" tabindex="-1"></a> Addition <span class="op">{</span> lhs<span class="op">:</span> AST<span class="op">,</span> rhs<span class="op">:</span> AST <span class="op">},</span></span>
<span id="cb14-4"><a href="#cb14-4" tabindex="-1"></a> Return <span class="op">{</span> value<span class="op">:</span> AST <span class="op">},</span></span>
<span id="cb14-5"><a href="#cb14-5" tabindex="-1"></a> If <span class="op">{</span> condition<span class="op">:</span> AST<span class="op">,</span> body<span class="op">:</span> AST<span class="op">,</span> else_body<span class="op">:</span> AST <span class="op">},</span></span>
<span id="cb14-6"><a href="#cb14-6" tabindex="-1"></a> <span class="op">...</span></span>
<span id="cb14-7"><a href="#cb14-7" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
<p>Great if you’re making a statically typed language.</p>
</div>
<div id="s-expressions" class="slide section level1">
<h1>S-Expressions</h1>
<p>In a language like Lisp, there isn’t really any difference between
<code>if</code> and a function call and a list. <em>Everything is
lists!</em></p>
<p>So, naturally, Lisp represents syntax trees as lists too:</p>
<div class="sourceCode" id="cb15"><pre class="sourceCode lisp"><code class="sourceCode commonlisp"><span id="cb15-1"><a href="#cb15-1" tabindex="-1"></a>(If (LessThan (Var <span class="st">"x"</span>) (Var <span class="st">"y"</span>)) (Return (Var <span class="st">"x"</span>)) (Return (Var <span class="st">"y"</span>)))</span></code></pre></div>
</div>
<div id="tagged-unions-in-c" class="slide section level1">
<h1>Tagged Unions in C</h1>
<p>In C, you can implement tagged unions like this:</p>
<div class="sourceCode" id="cb16"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb16-1"><a href="#cb16-1" tabindex="-1"></a><span class="kw">typedef</span> <span class="kw">struct</span> ast_s ast_t<span class="op">;</span></span>
<span id="cb16-2"><a href="#cb16-2" tabindex="-1"></a></span>
<span id="cb16-3"><a href="#cb16-3" tabindex="-1"></a><span class="kw">struct</span> ast_s <span class="op">{</span></span>
<span id="cb16-4"><a href="#cb16-4" tabindex="-1"></a> <span class="kw">enum</span> <span class="op">{</span> Var<span class="op">,</span> Addition<span class="op">,</span> Return<span class="op">,</span> If<span class="op">,</span> <span class="op">...</span> <span class="op">}</span> tag<span class="op">;</span></span>
<span id="cb16-5"><a href="#cb16-5" tabindex="-1"></a> <span class="kw">union</span> <span class="op">{</span></span>
<span id="cb16-6"><a href="#cb16-6" tabindex="-1"></a> <span class="kw">struct</span> <span class="op">{</span> <span class="dt">const</span> <span class="dt">char</span> <span class="op">*</span>name<span class="op">;</span> <span class="op">}</span> Var<span class="op">;</span></span>
<span id="cb16-7"><a href="#cb16-7" tabindex="-1"></a> <span class="kw">struct</span> <span class="op">{</span> ast_t <span class="op">*</span>lhs<span class="op">,</span> <span class="op">*</span>rhs<span class="op">;</span> <span class="op">}</span> Addition<span class="op">;</span></span>
<span id="cb16-8"><a href="#cb16-8" tabindex="-1"></a> <span class="kw">struct</span> <span class="op">{</span> ast_t <span class="op">*</span>value<span class="op">;</span> <span class="op">}</span> Return<span class="op">;</span></span>
<span id="cb16-9"><a href="#cb16-9" tabindex="-1"></a> <span class="kw">struct</span> <span class="op">{</span> ast_t <span class="op">*</span>condition<span class="op">,</span> <span class="op">*</span>body<span class="op">,</span> <span class="op">*</span>else_body<span class="op">;</span> <span class="op">}</span> If<span class="op">;</span></span>
<span id="cb16-10"><a href="#cb16-10" tabindex="-1"></a> <span class="op">...</span></span>
<span id="cb16-11"><a href="#cb16-11" tabindex="-1"></a> <span class="op">}</span></span>
<span id="cb16-12"><a href="#cb16-12" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
<p>You can use them like this:</p>
<div class="sourceCode" id="cb17"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb17-1"><a href="#cb17-1" tabindex="-1"></a><span class="cf">switch</span> <span class="op">(</span>ast<span class="op">-></span>tag<span class="op">)</span> <span class="op">{</span></span>
<span id="cb17-2"><a href="#cb17-2" tabindex="-1"></a><span class="cf">case</span> If<span class="op">:</span> <span class="op">{</span></span>
<span id="cb17-3"><a href="#cb17-3" tabindex="-1"></a> do_thing<span class="op">(</span>ast<span class="op">-></span>If<span class="op">.</span>condition<span class="op">);</span></span>
<span id="cb17-4"><a href="#cb17-4" tabindex="-1"></a> do_thing<span class="op">(</span>ast<span class="op">-></span>If<span class="op">.</span>body<span class="op">);</span></span>
<span id="cb17-5"><a href="#cb17-5" tabindex="-1"></a> do_thing<span class="op">(</span>ast<span class="op">-></span>If<span class="op">.</span>else_body<span class="op">);</span></span>
<span id="cb17-6"><a href="#cb17-6" tabindex="-1"></a> <span class="cf">break</span><span class="op">;</span></span>
<span id="cb17-7"><a href="#cb17-7" tabindex="-1"></a><span class="op">}</span></span>
<span id="cb17-8"><a href="#cb17-8" tabindex="-1"></a><span class="op">...</span></span>
<span id="cb17-9"><a href="#cb17-9" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
</div>
<div id="metadata" class="slide section level1">
<h1>Metadata</h1>
<p>It’s also good to attach source information to your ASTs so that you can use
it to print good error messages.</p>
<p>I keep track of:</p>
<ul>
<li>Filename</li>
<li>Start byte offset</li>
<li>End byte offset</li>
</ul>
<p>This information is enough to print out source code excerpts with line
numbers and highlighted regions.</p>
</div>
<div id="tree-walking-interpreters" class="slide section level1">
<h1>Tree Walking Interpreters</h1>
<p>At this point, you could decide that you don’t actually need a compiler. You
just want to run the AST itself as code. This is a pretty viable approach for
small projects.</p>
<p>For example, if you’re building a calculator tool, you can just parse an
equation into a tree structure and then evaluate each part of the tree to get
your final answer:</p>
<div class="sourceCode" id="cb18"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb18-1"><a href="#cb18-1" tabindex="-1"></a><span class="dt">int</span> eval<span class="op">(</span>ast_t <span class="op">*</span>ast<span class="op">)</span> <span class="op">{</span></span>
<span id="cb18-2"><a href="#cb18-2" tabindex="-1"></a> <span class="cf">switch</span> <span class="op">(</span>ast<span class="op">-></span>tag<span class="op">)</span> <span class="op">{</span></span>
<span id="cb18-3"><a href="#cb18-3" tabindex="-1"></a> <span class="cf">case</span> IntLiteral<span class="op">:</span> <span class="cf">return</span> ast<span class="op">-></span>IntLiteral<span class="op">.</span>value<span class="op">;</span></span>
<span id="cb18-4"><a href="#cb18-4" tabindex="-1"></a> <span class="cf">case</span> Addition<span class="op">:</span> <span class="cf">return</span> eval<span class="op">(</span>ast<span class="op">-></span>Addition<span class="op">.</span>lhs<span class="op">)</span> <span class="op">+</span> eval<span class="op">(</span>ast<span class="op">-></span>Addition<span class="op">.</span>rhs<span class="op">);</span></span>
<span id="cb18-5"><a href="#cb18-5" tabindex="-1"></a> <span class="cf">case</span> Subtraction<span class="op">:</span> <span class="cf">return</span> eval<span class="op">(</span>ast<span class="op">-></span>Addition<span class="op">.</span>lhs<span class="op">)</span> <span class="op">-</span> eval<span class="op">(</span>ast<span class="op">-></span>Addition<span class="op">.</span>rhs<span class="op">);</span></span>
<span id="cb18-6"><a href="#cb18-6" tabindex="-1"></a> <span class="op">...</span></span>
<span id="cb18-7"><a href="#cb18-7" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
</div>
<div id="cross-compiling" class="slide section level1">
<h1>Cross-Compiling</h1>
<p>Unless you’re making a tree-walking interpreter, a compiler is going to be
converting an AST into a structured data format that can be handed off to a
program that will figure out how to get your computer to follow the
instructions. The line between compilers and cross-compilers is very blurry.</p>
<p>Common approaches:</p>
<ul>
<li>Output assembly code, use an assembler to make machine code</li>
<li>Output “bytecode” that is kinda like assembly (e.g. LLVM bytecode, QBE,
JVM)</li>
<li>Output a simple intermediate language (e.g. GCC’s Gimple)</li>
<li>Output code in a full language like C or Javascript</li>
</ul>
<p>This is a tradeoff between low-level output formats that require you to do a
lot of the work yourself vs. high-level formats that take care of a lot of
things for you, but limit what you can do and add performance overhead.</p>
</div>
<div id="compilation" class="slide section level1">
<h1>Compilation</h1>
<p>In Tomo, I’m cross-compiling into C code and the process looks something like
this (<code>CORD</code> is a string datastructure that has efficient
concatenation):</p>
<div class="sourceCode" id="cb19"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb19-1"><a href="#cb19-1" tabindex="-1"></a>CORD compile<span class="op">(</span>env_t <span class="op">*</span>env<span class="op">,</span> ast_t <span class="op">*</span>ast<span class="op">)</span> <span class="op">{</span></span>
<span id="cb19-2"><a href="#cb19-2" tabindex="-1"></a> <span class="cf">switch</span> <span class="op">(</span>ast<span class="op">-></span>tag<span class="op">)</span> <span class="op">{</span></span>
<span id="cb19-3"><a href="#cb19-3" tabindex="-1"></a> <span class="cf">case</span> Var<span class="op">:</span> <span class="cf">return</span> ast<span class="op">-></span>Var<span class="op">.</span>name<span class="op">;</span></span>
<span id="cb19-4"><a href="#cb19-4" tabindex="-1"></a> <span class="cf">case</span> Addition<span class="op">:</span></span>
<span id="cb19-5"><a href="#cb19-5" tabindex="-1"></a> <span class="cf">return</span> CORD_all<span class="op">(</span></span>
<span id="cb19-6"><a href="#cb19-6" tabindex="-1"></a> <span class="st">"("</span><span class="op">,</span> compile<span class="op">(</span>env<span class="op">,</span> ast<span class="op">-></span>Addition<span class="op">.</span>lhs<span class="op">),</span></span>
<span id="cb19-7"><a href="#cb19-7" tabindex="-1"></a> <span class="st">" + "</span><span class="op">,</span> </span>
<span id="cb19-8"><a href="#cb19-8" tabindex="-1"></a> compile<span class="op">(</span>env<span class="op">,</span> ast<span class="op">-></span>Addition<span class="op">.</span>rhs<span class="op">),</span> <span class="st">")"</span><span class="op">);</span></span>
<span id="cb19-9"><a href="#cb19-9" tabindex="-1"></a> <span class="cf">case</span> If<span class="op">:</span> <span class="op">{</span></span>
<span id="cb19-10"><a href="#cb19-10" tabindex="-1"></a> CORD code <span class="op">=</span> CORD_all<span class="op">(</span></span>
<span id="cb19-11"><a href="#cb19-11" tabindex="-1"></a> <span class="st">"if ("</span><span class="op">,</span> compile<span class="op">(</span>env<span class="op">,</span> ast<span class="op">-></span>If<span class="op">.</span>condition<span class="op">),</span> <span class="st">") {</span><span class="sc">\n</span><span class="st">"</span><span class="op">,</span></span>
<span id="cb19-12"><a href="#cb19-12" tabindex="-1"></a> compile<span class="op">(</span>env<span class="op">,</span> ast<span class="op">-></span>If<span class="op">.</span>body<span class="op">),</span></span>
<span id="cb19-13"><a href="#cb19-13" tabindex="-1"></a> <span class="st">"}</span><span class="sc">\n</span><span class="st">"</span><span class="op">);</span></span>
<span id="cb19-14"><a href="#cb19-14" tabindex="-1"></a> <span class="cf">if</span> <span class="op">(</span>ast<span class="op">-></span>If<span class="op">.</span>else_body<span class="op">)</span> <span class="op">{</span></span>
<span id="cb19-15"><a href="#cb19-15" tabindex="-1"></a> code <span class="op">=</span> CORD_all<span class="op">(</span>code<span class="op">,</span> <span class="st">"else {</span><span class="sc">\n</span><span class="st">"</span><span class="op">,</span> compile<span class="op">(</span>env<span class="op">,</span> ast<span class="op">-></span>If<span class="op">.</span>else_body<span class="op">),</span> <span class="st">"}</span><span class="sc">\n</span><span class="st">"</span><span class="op">);</span></span>
<span id="cb19-16"><a href="#cb19-16" tabindex="-1"></a> <span class="op">}</span></span>
<span id="cb19-17"><a href="#cb19-17" tabindex="-1"></a> <span class="cf">return</span> code<span class="op">;</span></span>
<span id="cb19-18"><a href="#cb19-18" tabindex="-1"></a> <span class="op">}</span></span>
<span id="cb19-19"><a href="#cb19-19" tabindex="-1"></a> <span class="op">...</span></span>
<span id="cb19-20"><a href="#cb19-20" tabindex="-1"></a> <span class="op">}</span></span>
<span id="cb19-21"><a href="#cb19-21" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
</div>
<div id="typechecking" class="slide section level1">
<h1>Typechecking</h1>
<p>So far, I’ve omitted an important part of the process for a statically typed
language like Tomo: typechecking. It’s also possible to do some basic type
checking for dynamic languages to catch issues like the use of undefined
variables.</p>
<p>Typechecking involves two main parts:</p>
<ul>
<li>Keep track of variables and scopes</li>
<li>Given variable bindings and an AST, determine the AST’s type</li>
</ul>
</div>
<div id="variable-bindings" class="slide section level1">
<h1>Variable Bindings</h1>
<p>You can think of variable bindings as a map from some kind of symbol (e.g.
<code>foo</code>) to a type associated with it (e.g. <code>Int</code>).</p>
<p>Variable bindings are typically <em>scoped</em>, so it’s common to represent
them as either a hash table with a pointer to its parent scope, or some kind of
immutable datastructure like a linked list or tree.</p>
</div>
<div id="binding-example" class="slide section level1">
<h1>Binding Example</h1>
<div class="sourceCode" id="cb20"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb20-1"><a href="#cb20-1" tabindex="-1"></a><span class="dt">int</span> x <span class="op">=</span> <span class="dv">1</span><span class="op">;</span></span>
<span id="cb20-2"><a href="#cb20-2" tabindex="-1"></a><span class="cf">if</span> <span class="op">(</span>x <span class="op"><</span> <span class="dv">0</span><span class="op">)</span> <span class="op">{</span></span>
<span id="cb20-3"><a href="#cb20-3" tabindex="-1"></a> <span class="dt">int</span> y <span class="op">=</span> <span class="dv">2</span><span class="op">;</span></span>
<span id="cb20-4"><a href="#cb20-4" tabindex="-1"></a> printf<span class="op">(</span><span class="st">"</span><span class="sc">%d</span><span class="st"> </span><span class="sc">%d\n</span><span class="st">"</span><span class="op">,</span> x<span class="op">,</span> y<span class="op">);</span></span>
<span id="cb20-5"><a href="#cb20-5" tabindex="-1"></a><span class="op">}</span></span>
<span id="cb20-6"><a href="#cb20-6" tabindex="-1"></a>printf<span class="op">(</span><span class="st">"</span><span class="sc">%d\n</span><span class="st">"</span><span class="op">,</span> x<span class="op">);</span></span></code></pre></div>
<p>As you read through the code, the compiler will do something like:</p>
<ul>
<li>Bind variable <code>x</code> to type <code>int</code></li>
<li>Compile the expression <code>x < 0</code> and make sure the types make
sense</li>
<li>Create a new scope for the block inside the condition</li>
<li>Use the new scope to compile the block inside the condition</li>
<li>Bind variable <code>y</code> to type <code>int</code> in the new scope</li>
<li>Compile the rest of the block</li>
<li>Keep compiling using the old scope</li>
</ul>
</div>
<div id="checking-types" class="slide section level1">
<h1>Checking Types</h1>
<p>Along the way, it’s useful to check for places where undefined variables are
referenced and places where a value of one type is expected, but a different
type is used.</p>
<p>To solve this, you need something like these functions:</p>
<div class="sourceCode" id="cb21"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb21-1"><a href="#cb21-1" tabindex="-1"></a>type_t <span class="op">*</span>get_type<span class="op">(</span>env_t <span class="op">*</span>env<span class="op">,</span> ast_t <span class="op">*</span>ast<span class="op">)</span> <span class="op">{</span></span>
<span id="cb21-2"><a href="#cb21-2" tabindex="-1"></a> <span class="cf">switch</span> <span class="op">(</span>ast<span class="op">-></span>tag<span class="op">)</span> <span class="op">{</span></span>
<span id="cb21-3"><a href="#cb21-3" tabindex="-1"></a> <span class="cf">case</span> Var<span class="op">:</span> <span class="op">{</span></span>
<span id="cb21-4"><a href="#cb21-4" tabindex="-1"></a> type_t <span class="op">*</span>binding <span class="op">=</span> get_binding<span class="op">(</span>env<span class="op">,</span> ast<span class="op">-></span>Var<span class="op">.</span>name<span class="op">);</span></span>
<span id="cb21-5"><a href="#cb21-5" tabindex="-1"></a> <span class="cf">if</span> <span class="op">(</span>binding <span class="op">==</span> NULL<span class="op">)</span></span>
<span id="cb21-6"><a href="#cb21-6" tabindex="-1"></a> type_error<span class="op">(</span>ast<span class="op">,</span> <span class="st">"This variable isn't defined anywhere"</span><span class="op">);</span></span>
<span id="cb21-7"><a href="#cb21-7" tabindex="-1"></a> <span class="cf">return</span> binding<span class="op">;</span></span>
<span id="cb21-8"><a href="#cb21-8" tabindex="-1"></a> <span class="op">}</span></span>
<span id="cb21-9"><a href="#cb21-9" tabindex="-1"></a> <span class="cf">case</span> IntLiteral<span class="op">:</span> <span class="cf">return</span> Type<span class="op">(</span>IntType<span class="op">);</span></span>
<span id="cb21-10"><a href="#cb21-10" tabindex="-1"></a> <span class="cf">case</span> TextLiteral<span class="op">:</span> <span class="cf">return</span> Type<span class="op">(</span>TextType<span class="op">);</span></span>
<span id="cb21-11"><a href="#cb21-11" tabindex="-1"></a> <span class="cf">case</span> Addition<span class="op">:</span> <span class="op">{</span></span>
<span id="cb21-12"><a href="#cb21-12" tabindex="-1"></a> type_t <span class="op">*</span>lhs <span class="op">=</span> get_type<span class="op">(</span>env<span class="op">,</span> ast<span class="op">-></span>Addition<span class="op">.</span>lhs<span class="op">);</span></span>
<span id="cb21-13"><a href="#cb21-13" tabindex="-1"></a> type_t <span class="op">*</span>rhs <span class="op">=</span> get_type<span class="op">(</span>env<span class="op">,</span> ast<span class="op">-></span>Addition<span class="op">.</span>rhs<span class="op">);</span></span>
<span id="cb21-14"><a href="#cb21-14" tabindex="-1"></a> <span class="cf">if</span> <span class="op">(!</span>type_eq<span class="op">(</span>lhs<span class="op">,</span> Type<span class="op">(</span>IntType<span class="op">))</span> <span class="op">||</span> <span class="op">!</span>type_eq<span class="op">(</span>rhs<span class="op">,</span> Type<span class="op">(</span>IntType<span class="op">)))</span></span>
<span id="cb21-15"><a href="#cb21-15" tabindex="-1"></a> type_error<span class="op">(</span>ast<span class="op">,</span> <span class="st">"I only support addition between Ints, not between "</span><span class="op">,</span> lhs<span class="op">,</span> <span class="st">" and "</span><span class="op">,</span> rhs<span class="op">);</span></span>
<span id="cb21-16"><a href="#cb21-16" tabindex="-1"></a> <span class="cf">return</span> Type<span class="op">(</span>TextType<span class="op">);</span></span>
<span id="cb21-17"><a href="#cb21-17" tabindex="-1"></a> <span class="op">}</span></span>
<span id="cb21-18"><a href="#cb21-18" tabindex="-1"></a> <span class="op">...</span></span>
<span id="cb21-19"><a href="#cb21-19" tabindex="-1"></a> <span class="op">}</span></span>
<span id="cb21-20"><a href="#cb21-20" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
</div>
<div id="environments" class="slide section level1">
<h1>Environments</h1>
<p>Along the way, you may end up needing more contextual information besides
just the bindings of variables to types. For this, it’s nice to use a context or
environment value that gets passed around to various functions. In the Tomo
compiler, it looks like this:</p>
<div class="sourceCode" id="cb22"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb22-1"><a href="#cb22-1" tabindex="-1"></a><span class="kw">typedef</span> <span class="kw">struct</span> env_s <span class="op">{</span></span>
<span id="cb22-2"><a href="#cb22-2" tabindex="-1"></a> Table_t <span class="op">*</span>types<span class="op">,</span> <span class="op">*</span>globals<span class="op">,</span> <span class="op">*</span>namespace_bindings<span class="op">,</span> <span class="op">*</span>locals<span class="op">;</span></span>
<span id="cb22-3"><a href="#cb22-3" tabindex="-1"></a> <span class="co">// Lookup table for env_t* where the key is:</span></span>
<span id="cb22-4"><a href="#cb22-4" tabindex="-1"></a> <span class="co">// - Resolved path for local imports (so that `use ./foo.tm` is the same as `use ./baz/../foo.tm`)</span></span>
<span id="cb22-5"><a href="#cb22-5" tabindex="-1"></a> <span class="co">// - Raw 'use' string for module imports</span></span>
<span id="cb22-6"><a href="#cb22-6" tabindex="-1"></a> Table_t <span class="op">*</span>imports<span class="op">;</span></span>
<span id="cb22-7"><a href="#cb22-7" tabindex="-1"></a> compilation_unit_t <span class="op">*</span>code<span class="op">;</span></span>
<span id="cb22-8"><a href="#cb22-8" tabindex="-1"></a> type_t <span class="op">*</span>fn_ret<span class="op">;</span></span>
<span id="cb22-9"><a href="#cb22-9" tabindex="-1"></a> loop_ctx_t <span class="op">*</span>loop_ctx<span class="op">;</span></span>
<span id="cb22-10"><a href="#cb22-10" tabindex="-1"></a> deferral_t <span class="op">*</span>deferred<span class="op">;</span></span>
<span id="cb22-11"><a href="#cb22-11" tabindex="-1"></a> CORD libname<span class="op">;</span> <span class="co">// Currently compiling library name (if any)</span></span>
<span id="cb22-12"><a href="#cb22-12" tabindex="-1"></a> namespace_t <span class="op">*</span>namespace<span class="op">;</span></span>
<span id="cb22-13"><a href="#cb22-13" tabindex="-1"></a> Closure_t <span class="op">*</span>comprehension_action<span class="op">;</span></span>
<span id="cb22-14"><a href="#cb22-14" tabindex="-1"></a> <span class="dt">bool</span> do_source_mapping<span class="op">:</span><span class="dv">1</span><span class="op">;</span></span>
<span id="cb22-15"><a href="#cb22-15" tabindex="-1"></a><span class="op">}</span> env_t<span class="op">;</span></span></code></pre></div>
<p>It’s a mix of some global information like user-defined types and global
bindings, plus some contextual information, like if we’re compiling a function,
what the expected return type of that function is.</p>
</div>
<div id="making-a-compiler-program" class="slide section level1">
<h1>Making a Compiler Program</h1>
<p>Once you actually glue all the parts together, you end up with a program like
this (for a compiled language):</p>
<div class="sourceCode" id="cb23"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb23-1"><a href="#cb23-1" tabindex="-1"></a><span class="dt">int</span> main<span class="op">(</span><span class="dt">int</span> argc<span class="op">,</span> <span class="dt">char</span> <span class="op">*</span>argv<span class="op">[])</span> <span class="op">{</span></span>
<span id="cb23-2"><a href="#cb23-2" tabindex="-1"></a> env_t <span class="op">*</span>env <span class="op">=</span> load_global_environment<span class="op">();</span></span>
<span id="cb23-3"><a href="#cb23-3" tabindex="-1"></a></span>
<span id="cb23-4"><a href="#cb23-4" tabindex="-1"></a> <span class="cf">for</span> <span class="op">(</span><span class="dt">int</span> i <span class="op">=</span> <span class="dv">1</span><span class="op">;</span> i <span class="op"><</span> argc<span class="op">;</span> i<span class="op">++)</span> <span class="op">{</span></span>
<span id="cb23-5"><a href="#cb23-5" tabindex="-1"></a> <span class="dt">const</span> <span class="dt">char</span> <span class="op">*</span>filename <span class="op">=</span> argv<span class="op">[</span>i<span class="op">];</span></span>
<span id="cb23-6"><a href="#cb23-6" tabindex="-1"></a> <span class="dt">const</span> <span class="dt">char</span> <span class="op">*</span>source_code <span class="op">=</span> read_file<span class="op">(</span>filename<span class="op">);</span></span>
<span id="cb23-7"><a href="#cb23-7" tabindex="-1"></a> ast_t <span class="op">*</span>ast <span class="op">=</span> parse_file<span class="op">(</span>filename<span class="op">,</span> source_code<span class="op">);</span></span>
<span id="cb23-8"><a href="#cb23-8" tabindex="-1"></a> env_t <span class="op">*</span>file_env <span class="op">=</span> fresh_scope<span class="op">(</span>env<span class="op">);</span></span>
<span id="cb23-9"><a href="#cb23-9" tabindex="-1"></a> CORD code <span class="op">=</span> compile<span class="op">(</span>file_env<span class="op">,</span> ast<span class="op">);</span></span>
<span id="cb23-10"><a href="#cb23-10" tabindex="-1"></a> write_to_file<span class="op">(</span><span class="st">"/tmp/foo.c"</span><span class="op">,</span> code<span class="op">);</span></span>
<span id="cb23-11"><a href="#cb23-11" tabindex="-1"></a> system<span class="op">(</span><span class="st">"gcc -c /tmp/foo.c -o /tmp/foo"</span><span class="op">);</span></span>
<span id="cb23-12"><a href="#cb23-12" tabindex="-1"></a> system<span class="op">(</span><span class="st">"/tmp/foo"</span><span class="op">);</span></span>
<span id="cb23-13"><a href="#cb23-13" tabindex="-1"></a> <span class="op">}</span></span>
<span id="cb23-14"><a href="#cb23-14" tabindex="-1"></a> <span class="cf">return</span> <span class="dv">0</span><span class="op">;</span></span>
<span id="cb23-15"><a href="#cb23-15" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
<p>For an interpreted language, you would replace the compilation part with
<code>eval(env, ast);</code></p>
<p><em>(I’ve omitted configurable compiler flags)</em></p>
</div>
<div id="standard-library" class="slide section level1">
<h1>Standard Library</h1>
<p>Typically, a language is going to need some kind of standard library. In
Tomo, there are various built-in types that each have their own methods and
various top-level functions.</p>
<p>For an interpreted language, these built-in functions and variables can be
implemented inside the interpreter itself. For a compiled language, these will
typically use either the target language’s dependency management tools or use
<strong>linking</strong>.</p>
<p>Tomo uses dynamic linking (for now), so that’s what I’ll focus on.</p>
</div>
<div id="linking" class="slide section level1">
<h1>Linking</h1>
<p>A <strong>linker</strong> is a tool that lets you take multiple compiled
object files and hook up the wires between them.</p>
<p>You can write a C program like this:</p>
<div class="sourceCode" id="cb24"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb24-1"><a href="#cb24-1" tabindex="-1"></a><span class="kw">extern</span> <span class="dt">int</span> foo<span class="op">(</span><span class="dt">int</span> x<span class="op">,</span> <span class="dt">int</span> y<span class="op">);</span></span>
<span id="cb24-2"><a href="#cb24-2" tabindex="-1"></a></span>
<span id="cb24-3"><a href="#cb24-3" tabindex="-1"></a><span class="dt">int</span> doop<span class="op">(</span><span class="dt">int</span> a<span class="op">,</span> <span class="dt">int</span> b<span class="op">,</span> <span class="dt">int</span> c<span class="op">)</span> <span class="op">{</span></span>
<span id="cb24-4"><a href="#cb24-4" tabindex="-1"></a> <span class="cf">return</span> foo<span class="op">(</span>a<span class="op">,</span> b<span class="op">)</span> <span class="op">+</span> foo<span class="op">(</span>b<span class="op">,</span> c<span class="op">);</span></span>
<span id="cb24-5"><a href="#cb24-5" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
<p>If you compile this program with <code>gcc -c doop.c -o doop.o</code> it will
produce a big blob of machine code that does the body of the <code>doop()</code>
function, but it will have a placeholder for
<code><insert foo here></code> because this source file doesn’t actually
define <code>foo()</code> anywhere, it just says that it’s some external
function that will be hooked up later.</p>
<p>If you separately compile a file <code>gcc -c foo.c -o foo.o</code> that
defines its own implementation of <code>foo()</code>, you can later link the two
together using your C compiler <code>gcc main.c foo.o doop.o -o main</code>.
Your C compiler will invoke a linker (typically <code>ld</code>) which will find
all the <code><insert foo here></code>s and plug in the actual address of
the function.</p>
</div>
<div id="dynamic-linking" class="slide section level1">
<h1>Dynamic Linking</h1>
<p>What I’ve described so far is <em>static linking</em>. You end up with a
binary file that will run just fine if you put the file on a USB drive, wipe
your hard drive, reinstall the OS, and try running the program off the USB
drive.</p>
<p>That’s because it puts <em>everything you need</em> into a single static
binary file.</p>
<p>However, you sometimes don’t want to do that for something like a language’s
standard library. If you know the user’s computer is going to have the standard
library installed, you can created a <em>shared library</em>.</p>
<p>For a language like C, that might be <code>/usr/lib/libc.so</code> (or
<code>.dylib</code> on Mac or <code>.dll</code> on Windows).</p>
<p>You compile the program without plugging in all the placeholders, but instead
do the linking when the program runs. This means compilation is a bit faster and
you don’t have to ship the entire standard library inside every executable you
build.</p>
</div>
<div id="including-the-standard-library" class="slide section level1">
<h1>Including the Standard Library</h1>
<p>In Tomo, this means that I add <code>~/.local/lib/libtomo.so</code> to the C
compiler flags when I build the program, as well as adding
<code>#include "~/.local/include/tomo/tomo.h"</code> at the top of generated
files so the C compiler knows the function signatures in the standard
library.</p>
<p>I also link against some dependencies, like the GNU Mulitple Precision
library for bigints, the Boehm GC for garbage collection, libunistring for
unicode support, etc.</p>
<p>You may also be familiar with <code>-lm -lexecinfo</code> and similar
compiler flags. Those are basically just <code>-l<name></code> and the
compiler will search in various system paths for something like
<code>/usr/lib/lib<name>.so</code>,
<code>/usr/local/lib/lib<name>.so</code> and so forth.</p>
<p>You can also prepackage an archive of object files for static linking in the
<code>.a</code> file format and your compiler can do static linking instead of
dynamic linking if that’s what you want.</p>
</div>
<div id="recapping" class="slide section level1">
<h1>Recapping</h1>
<p>So, to summarize what’s going on:</p>
<ul>
<li>Parse text into an AST</li>
<li>Convert AST into C code</li>
<li>Invoke user’s favorite C compiler to make a binary</li>
<li>Link against the standard library and dependencies</li>
<li>Run the binary</li>
</ul>
</div>
<div id="bells-and-whistles" class="slide section level1">
<h1>Bells and Whistles</h1>
<p>If there’s enough time I can cover some more stuff:</p>
<ul>
<li>Storing generated C files</li>
<li>Source mapping</li>
<li>Debugging symbols</li>
<li>Namespaces in C (dollar sign hack)</li>
<li>Dependency trees</li>
<li>Optimization</li>
</ul>
</div>
<div id="storing-generated-c-files" class="slide section level1">
<h1>Storing Generated C Files</h1>
<p>The approach I took with Tomo is storing generated C files in a
<code>.build</code> directory next to your source files. This lets you inspect
the generated code to see what’s going on.</p>
<p><img src="data:image/png;base64,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" /></p>
<p>Each Tomo source file is also compiled into a <code>.o</code> object file,
and I also store which compiler flags were used to build it.</p>
<p>Since each Tomo source file could be run either as a standalone file or as an
imported file somewhere else, Tomo source files don’t define a
<code>main()</code> function, but I instead print out a wrapper C file that has
a <code>main()</code> function that calls the properly namespaced main function
in your Tomo code.</p>
</div>
<div id="source-mapping" class="slide section level1">
<h1>Source Mapping</h1>
<p>For debugging purposes, it’s nice to tell the compiler the relationship
between the generated C code and the Tomo source file that produced it. In C,
this can be done with the <code>#line</code> compiler directive. It looks
something like this:</p>
<div class="sourceCode" id="cb25"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb25-1"><a href="#cb25-1" tabindex="-1"></a><span class="pp">#line 1 "/home/bruce/software/tomo/example/foo.tm"</span></span>
<span id="cb25-2"><a href="#cb25-2" tabindex="-1"></a></span>
<span id="cb25-3"><a href="#cb25-3" tabindex="-1"></a><span class="pp">#line 1</span></span>
<span id="cb25-4"><a href="#cb25-4" tabindex="-1"></a>public <span class="dt">void</span> _$foo$main<span class="op">()</span> <span class="op">{</span></span>
<span id="cb25-5"><a href="#cb25-5" tabindex="-1"></a><span class="pp">#line 2</span></span>
<span id="cb25-6"><a href="#cb25-6" tabindex="-1"></a> <span class="op">(</span><span class="dt">void</span><span class="op">)</span>say<span class="op">(</span>Text<span class="op">(</span><span class="st">"Hello"</span><span class="op">),</span> yes<span class="op">);</span></span>
<span id="cb25-7"><a href="#cb25-7" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
</div>
<div id="debugging-symbols" class="slide section level1">
<h1>Debugging Symbols</h1>
<p>Once you have source mapping, it’s nice to also add in debugging symbols. In
a C compiler, you can add <code>-ggdb</code> to add GDB (GNU Debugger)
information to your binaries. This preserves information like variable names and
line numbers.</p>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABx8AAAGQCAYAAAB/BK4DAAAgAElEQVR4nOzdeVxWVf7A8c+9z8a+I6uICAhuqLjvu5XZptW0ZzNOY9M0jdVM/crWqWba96aaptXSVjPTFjNTS3EDxX1DBAREkB2e7d7fH6IigsLDo4B936+Xrwl4zr3nfM/d5nyfc66S0DlcxyUmOg9N5dpLejK0ZyciAkxQW03B/hx++SGdz7/bw95y7eQiqidJE4dy8yXJpMYHEGDWqCg6zOZfN/Hh3A2sL3I2vivVl6ue/yv3pULa0y8w66tKmldpBd+4ZK6ansKY/lHEhnpgctRQVFhGzt4c1qzayrercjlkdS0CJ+3Jrw/Pf3E5o82VfHnPizya5qireydm/vdWbkuE7W/9h+vfK+KkqCgWEieN4tYrezCgqx/eio1DWdksW7CStxaXM/m5xttt7hTN2HHJDO8fQ6+EECICLRidVkryC0n/dTMfz8tgU0mD+Le2jZ6hTLpxLNdPiCU+1IzjcCGrF//MC/M0Zn56LZf5HObtP/6HV3Y23G8L+0Hx4rKnZ/PQENj44ivM/LT05JgZwrntnZnM7Opgyf1P8X8rGh43Lva7K8eZi/13MiOdRw5n1tW9GJgQSJCXAVUB7Pv599XvM+9Qw1KutU/xCmXyDWO4dnxX4kON2IoKWL14Fa9+6mTGx9dxRUApH/z5FZ7LbOVxo3gz7dm/8cAgWPfcy9y3O5E/3TKQMT2D8NWrydmyk8/fX84nm6o47Z7UYG7+z238tYdCzrx3mPZKDvbW1cxt/C4rYeoMG+z05et7vWl4qWuUohH/YBFDU+HQf0P4fqHh5OPBYKfvC8X0jlHIerITq9Yop5QPGlNFz0lWwro68TCBrdhI0XpPtn3uSWGxcuq++qnsuD+UdVsBNOIeKGL4QIXdD4WyJkMBdGL/cYiRwxT2/TOUX9advE9zl1q6T62hc287fsE6BodCdZGBiv1mDq71YH+aiWpb6+OS8HARQ/pB4RshrNhnJeWaamK6OzHrKuU7Lez+xIedW9XGzx/FSffHDjOoDxS8FsoP36rN2Ckofna631RB0iA7Pj5gzTNz4BsfNi2FpOdO0w8A6Hj3riHpglqiejjw9tPRK1Uq80wU/OLFjh/MVNpOLXVO4gkYQux0HlFLVB8bwV2d+ARoqE6V2kIjh9Z5sP0rL4qONBWYFhxnjRVPrODSf1fhW+3Jspv8yXM0r86g4zu4ipTLagnv6sTDU0dRAIeZdX8MYsfheh/1rWHs/8qINqvseSSU1Rvr6qQ66PPcYVLioOTDEBZ/Yjz5mFF0AsdUkjK1lrAYJyZFpfqAiQNLfMj8USX2kdMcRy4eZ3Du+v1kLYgnnPvriwvHWZvEhZb3X6vOv1bU8zhPB92uq6DHCBt+gfrR5wmniQ23BbMt/1glbQx6s4Tuoc2I2C5fFv69Lt6tuF67o//UvuVMe6QaDwW0NQHMf8KDRi8xrbyvtPj+4Go8G9Oc/qv32a5XVpI0wkZAsI6z2Ej+jz6kfw29/nOEBD8D2+8LZf32E0Xc0Q8tvs67el9p5f3IVaaBF7P42VRCVLCu/IJx92VSfVb2JIQQQgghhBDnN8X15KMQRyl+Kbyw4DJGKVk8Pv19Pitu6xqJ84ES1JcX51/KSHNRE0ntNmK2MeCVEpLDVLKfDmHFquYnIc5rEhf3knj+Nkm/N07i0rFJ/7UP0g9CCCGEEEIIIc4h+X+dotV8+najlxGcB3LILG3r2ojzg0KXCwcw2APsuzfzze52kngEPIZU0y0M9HxPdqTJJfQYiYt7STx/m6TfGydx6dik/9oH6QchhBBCCCGEEOeSsa0rIDoGJTCRP1wXyJ6l21i9s4JaHUDBL6Ef/3d7TwIVGxsXbWJ3EyvnCtES3t0Gcfc1kZix8evCzWS3m9yjjoduYsc8I9YdnhS1l3Vg25zExb0knr9N0u+Nk7h0bNJ/7YP0gxBCCCGEEEKIc0uWXRXNonYaxBvzL2SACeyV5eQV1uD09qNzmCdmnOT//A2zHkknWwYzhKvUUG545hqu6WohMNgLDxVqtv/E729fwXY3vJdVCCGEEEIIIYQQQgghhBBnn8x8FM2ilWcx7500ivt3oVd8EFGxPmi11RzM3MbPS1bzweJcimXWo2gNxYBviD8RIQrWiiNk/LqOl19ZI4lHIYQQQgghhBBCCCGEEKIDkZmPQgghhBBCCCGEEEIIIYQQQgi3UNu6AkIIIYQQQgghhBBCCCGEEEKI84MkH4UQQgghhBBCCCGEEEIIIYQQbiHJRyGEEEIIIYQQQgghhBBCCCGEW0jyUQghhBBCCCGEEEIIIYQQQgjhFpJ8FOcxA6Pn3MvGVXP4bGYEhrauTntl6sachQ+SvuIOZvduT5eEs9x/iheXPfMA6ase4O0rAzrQxfD8Oq7V6GG8v/wh0lfV/zeHj24K7UB9Is5bijfTnjt6nXjzCj85Jpur3d5XhBBCCCGEEEIIIcS5YGzZx81c+OQ9PDHy5GK6pmGrqiIvK5e1yzcyd+EecmvdWEvhfmoQY67pTZK5hvRF60gr0tu6Rr9N0g/uJfHseKxlbM/IxmYEUAiM7UxcwDnYr8mX/hcO4apJ8fSNCyTIS8FWUUHOvnw2pe9hxfIdpO2vwXm8gIHRc+7h+ckWlNNt157F41e+z2eHT/2T4h3CmMsGc9mYOHp18cffpFFx+DDbNuxg4efr+GF3DVoTm/WfeDXfPJiEtwKO7T9y5a2r2N/IhxW/vrz01aWMMNX7pQ6aw0ZFaTn7d2SxbFEan/5STE29j5jHTGfFYz2x1GucruvYa6o5lFPAxl83M//zTLaVHjunFKJ/dwtf3B5N/V2diVa4lj9evYQNjhYUOguaG88OSa6DQgghhBBCCCGEEKKNtTD52DhFVbH4+hLXJ5m4PslcMmUt9/7tW1aWyIBXu2UIZsy1o7nUp4R309aft4OTNcUlZB8wklfqoF228DfSD65qcf/9RuLZ7o/rFtCKtvLknVvrfjIy6bF/8O+xZ3emlBLQlT8/OZ0ZvbxQ6yXbTIGBJKUGkpTag+kTg7jxxh/Z5mx6Oy3h2W0Ajz05mXGRxnrJSwMBEREMuziCoRcOYMA9L/L42sZ2aCZ1WBc8cWKzGzDFJzAs7Bf25zez9xVQTWb8Q0NICQ0hZURfLl/8JbP+vZ2C0yTcFEXB7OVNdPduRHfvxpRL+vD8PfOZu8vessa3O62MZ3v3G7kOCiGEEEIIIYQQQoj2y+Xko/XnL5j4yHasAKqRgIhIRl85ntsvjsSv20AevSuX6Q9kUixjXqLNOFn72ptc/lpb10O4RvqvcRKXVlF9uejv05nR2wvK8vjs7Z+YvyKX7CMOzP7+xPWIY+zkVKbGNCzo5NdnXmTsS8rR5KGpG/fNvYJJ3k42vPIG9yypqksEO6kub7DLkJ48+MxFjAtVcBTtY+6bK/hqTT4HK8EnrBP9hqfwu6t6EeirAo0kHy0xjEz1QKneyRfLw7nqokhGDPTm44WVTSefdQdLH3mG+1cc3Z5qNBEQHs7Qy8fzt0ujiL3wYu5cs5/7fqo5eRv2fTxx9cd8VQooKl5BwfQZNZjbb+lDQnA37nxoNJtnLCXTpnPwiw+ZuMRw8kxQUxx/f/8KLvTTSH/9Te5adHIddc1OZRvPenQpnkIIIYQQQgghhBBCiGZzfeajpmGzObAB4OBQ1j4+fTqfAvVWXrjYH/9hqUwO38JH58tMAiGEEB2e2jmFa4Z5oWpH+PThD3hynfV4wsleUkLmqhIyV23gf5180BvMCrTX1FB2bK1Sk5Vj8/8cNTWUllU3nrhSPBh562QmhSroJbt44vb5LMg7seGS3Fx+nJ/Lsm/W09238WmWph4JDAlQsK3fw9yVVi64MIWUoXH4fb2ZstPcYjWHA5utbps2BwX7svjyhYWE9LyV2xK9GDoiBtNPO+vu48foOOwObHW/tOXns2L+AraVWvjs/iT8O6dwWd/lZK51oNmslNka7NRkxaYfi0stZWXVTS4l21ZcjacQQgghhBBCCCGEEKJ53LLs6nF6DasXbSPvoqF0NobRo5sB8utNcVB9uer5v3JfKqQ9/QK3faMycPoYbpmaSK8oT4zWKg5s38PC937kw/SqEwO5qgfdJw7j5qlJpMYHEGDWKD9UxObVm/jww41sLG5iaNMjhIk3jOWGiV1JCDVjLy4kbfFynv1YY+b867gioJQP/vwKz2U2KO9CPVWfEAaP7cm4wbH07BpIWKgPfkYHpQVFbE7LZP7HG1h7qN7AsuLFZU/P5qFBlXz65FJsF43j0mRvqrK28voTS1jmmcr9dw9nZBcTpTs28eLj3/H9wdYM4SrEXvd7Pp0V1aDTg7n5zTncXP9X9v38++r3mXeo4Sisgn9ib667ui9j+4UTFWhGryona+tuFs37hc/Ty2l0Mb6WxDND59LWxMXUg6e+u5KJ5voV0Nj73n+5+q38xuYUneiLIbDxxVeYtTyQa2aO5rJhkUR565TlHOCH+Ut5dXEhVQ1C0uJ+b8N+ULxCmXT9GK4bH0t8qAnb4ULWfPsLr33ipiUUjZ256+MZXB9Wzrw7XuLfGWc4XtUgbnztNv7W08nSh5/jnh+tLvSfO+JZV/3Qrs3u91ZRPUmeNIwbpyTSt1sgQZ5QU1pJUX4hG9N2sGRxJhlFDWLnynF9TEuvg+f0fDj3zHERxBlAO7KPHzOsTcx006k8VOGW/amdenPtWF9U3cGmj75jYV7j54VeWciOyka3QNLQeDqpGls37Cd/s50Mawqj+yYy0GszS6taWCFnKXmFGiSqWHwsmIGG+cPGHP51B5ucSYwyeRIf54u69ki7Syo2T2viqRDYexC3zkhlbM8gfPUacrbt4sv3lzM/o7Lx89DV55cWPYdU0+V8va8IIYQQQgghhBBCiA7JvclHQCsup9gJnU1GfLwNQBPrqxkCmfrIdOaM8sNwbM02oy/xA1K4Ysd6PkqvOjqQZ/Bn4r038NgFwVgU0Ow2qmwGAqOiGXtlNKPHdefp2Z8wb2+DgS7PKGY+dz1/6u2BqoPTasUZGMH4Gb8jOWoDu5r7SrFm1VMhdtoVvDQzAiOgaxrWGitVdhNBnaMZFxPNmEk9ePWej/jftgbDvIo3F9x5KSanFbvBTFhyP+572I+L/LrS17OGGsxEpAziwTvz2fiPDA63IglSW5jPxgwHhqMBokuvToQY7BTsPkhedb0POgo5ZG+wI8VM8vTpvHB7Ap0MoGsOqirtGH0D6Tl8ED2G9mDUq3O5a34BNZzGmeKZUdrKuFSxb1M2G0xHf/KP6Uy3oObHSA3twcOvj+eCMBXNqaEYVELi4rnmH5FE6m8ye3FZvQF31/q9LfpB8Ynhtuev5ffJFhRdx15rRQuNYtKMq+ifuJndhubHqEmOQjJ32NEjfOie6IeaUXr65IQ5jB5dDeDIJ3Pnsfi0vP9aFc86Lev3VlC8GXX3DJ6eGoxZAc1aS0mpHYO3H3G9A4nvk0CX0r3M+qrh8o8uHtetvA6ei/PhXFNUBRVQjCY8DdD4NybcJ3BQd1IsoDty+fYnFxJ2hk6MGByA6ixh/cYjOCsdpO1wMjollpEpJpb+2sIGmEKJj1EBnSP5ZdQ2t5ymoekACkaTOy4YbaQV8fTqM47Xb+tDvEWjttoOXr7ED0rl7tR4+vzzXe7/ofTkBKSrzy+n1PlMzyHV5+99RQghhBBCCCGEEEJ0SG5PPqrBfgQbAN1JZXVTM1wUgidMYnYPlc1fLuHdb/ey65ANY0AI/cYOZIL9xOeiLrmEBy8IxqyVsfy1L3nyy2wO2VT8E3pzxwNTuLxbPLMfHEnmH5ax9Xg5I31vuYw/9vKAylw+eGIBb6wqpkr1otclF/PvOwYwWlUar5pL9QTdWk7Gkp18s3Qna7YcoqBKAxQ8wzpzyaxLmT2+C7PuG8GaGcvYVj8fqxhwrF/A9DmbKe0ygjffHk9KtziS0xYz7d715IcM4OV3pzCkXyKpXhl819JZLidqSMHSb7h1ad2PpgQeXnANl/qU8+0z7/PittMPiQePnsLzf0kg1F7CD68v5uWv95FTpaN6+NNv6kQeuq0nQ2ZN49atb/DClqZe6NX8eLocF3s2//nbu3U/GBg95x6en2xqZowMJF0xhthdq7n77lX8vL8WU3gcN98/nZn9vBhx/UB6fL+U+s1reb+3RT+YGTjzMmYkWdBL9/PWYwt4Z20ZtUZf+k+7mCduS2GoAq1/2ZmdbVsLcYztTLekMMyUnjaxYYiNJNEDtKI8thTU7bzF/de6eB7bT0v73VWGxMHcOSUYk6OYRU9/xrPfF1DqABQDAV1iGD2xH/EVjXSES8d1a6+D5+J8OPesWQXsdybT3bc7N17bmfR3cyg7a1P4DCQkh2FSQC88yFYXvj2iRsUzvIuKdmQ/aXs00MpZv6EIZ78wBg+NxvxrVrNmLqpGM4HRUYy79gJ+F6Oi1x7ki8W5TX096BTeKV3pYQR0OwcPVnTQWY+tiaeBHuN7U7V9NXc9upyfc20o/hFccud07psQxKS7prA28yO+OHYtc/n5paHm3DfP5/uKEEIIIYQQQgghhOiImjv/r3kUT4ZMSSZKBd1RyPY9TSUfVeJ7hbD91ff403NrWbGtmILDFeTuyeLrtz7hbx/ULSNoiGDa9Fh8FJ28BQu4f342h2wAGmW7N/HEQz+TaQVT11SuHWo5UQ2/JK67OAQjNtL+8xkvrCimSgMc1Wz5YgGPLSpvZsubWU90subPY+bjP7MgraBuwP3o72sKDzD/qe/49oiOMSaZ8fENdqw7yVy5iyINbNm7WX1AAzS2rdhBnh2chftYk6WhmIPoGu7e7mo2UzQ33tqLMGpZ/dKH3DdvLzl16y1qtWVs+HQB939ShGYM5rLpCXg3uaHmxpM2i4vZuoenH1jKsv21OIHagn28+exqdjrAEBlLanj9ZE0r+t0VLvaDEpjMtRcEYtBrWfnq5/wnrYxaHbBXsHH+lzy+pBy9Obn4M9Ip2H6QIg284yOJPcOsF/+ECCJVqN2Zy642SkQd07J+d11gcjRRBnBsXcdr39YlHgF0J6X7s/jqrS94dlmVW8br3XEdbNfng4u0/em8u7ISTbHQb8YMvv7geh6aOZgLB0cS6ePmeikWwsM8UQFHwRHyW5yxUwgfnECCAaoy9rGlLtG0f8N+CjSF0EEJJDf1FSLFyKR/PkD6qodIX/UQG5bfx9IPb+S+iT7kr9/A07M/4u1dZ1oCV8HsG0CvcWN55u8phKqgHd7GwjRrSxvSTrQingC1+3nloR/4KdeGBjjL8vnyXwuYl6Oh+MRxzZQwjl/2XHx+OVUL7puuaPf3FSGEEEIIIYQQQgjREbk+0qqqmM3Go/88LITGxjH9ruv455QAVHTK0zbyfWHTQ+jOnPW8/OXhRmcYaM6j5dTOcQyOUsF5mO8WH6C6weec2Zv4erMDXfVk0KAojs0DMveOZ6A36DV7+frHhssl2lj//fZmDwI3p57A6b/dX1vIjgMaqP50jmiQkdFtlByxHy2uV1NSqoPupLikpu53NZSW66B4EuDfvDq7m6lnbyZFqWil2/nouyONDHQ62L5yD/magm+vLnQ/zeBt8+PZFnHRqUjbzPKSBvXKzWHzER1Uf6IbJjpd7XcXuNoPHr270d/r6PnwzcoGy3nqtaxZvJ0CN01jcuzJYXstqFERdPep+6Uawg0v3c3yRbcxu++xOBhI6B6GSdHYu/XgKef2ueVCv7u6J73u2ubnTcBZzr+1/jrYvs8Hl2kVfPvEBzy68CClmoJvl25cdtMFPPHsTBZ9fTefP3sR1w7wx3zmLZ2ZYsHX6+h/6jVWaurHxxDJX+bOOZ4cTF/1EBsWTmVo/QmtijdDh0ZiwkHmhhP3QMeufWwo01HD4xkR18IDyWDCz9cDb09D4w8Apm48+PWxOj1I2pK/8sGjoxgSouIszuI/D3/PqkbfTdkBtDKetemb+K6gwUFuzWPJT8U4UekysCsRdcVdfX5pTLPvmy7oCPcVIYQQQgghhBBCCNHxuLzsqmX0FaxY1vjfavZv5NFnN1PU5MCTTtH6Pew8w2wnY1QonQ2g1xSyPbuRjenV7Nxdjj4wCP+YYILUfRRqChGxIXir4MwtYFcjy5Q6sgrY64CoM7a+efU8xismkenT+zE2NZK4cB98zCoNVzX08jKiYK83UOeg1qYf/2+bHdAdWI+NMuoOrHYdMGIxtcU0AoWwpAiCVcASy5+euZkZjX3M4kcgoAT6EWqkiVd9tiSebREXnYP7i09dKlS3UlGpQ4gJT49TS7nW7y3laj8ohHcJxlMBZ24hexrJ8jn25bPHAZHuWIS5Jp/N+zTG9wgjuZvKVxs1lMAuDOvljb/Zk6EDQjFkFOBUA0hO9ELVKtm67QzvhjzrXOt3VxzZvJ+99jiSuw7lqX+b+GjRdtZsOkh2icPNMXDHdbA9nw+tVHOIr556ix8+6MLYcd0ZNqAr/Xt2IszLk7jBA7lnYB8umvcJf3l9H0facNlIxS+Okb2NKM5c0tKrT8TLlkNapp1LRgUzfGgwr+8qOvX40R18P+df/GP50XSSajITGBHB0ItHc8fVPbntX5FEzXmbR1edeaatrtWyY9G3PPTqZnZXddx1NFsVTzTydx/i1FWRNfbvOYRVD8UjOpQYA+Rqrj6/NFbrlj2HtEwHua8IIYQQQgghhBBCiA7HLcNCuq5jq64iPyuPtT9v5KMFu8iuOV0JjYKDDWfinMrDzxOLAnplNWVNJLPKSqvRCELx9cIPKETBL6BumbvyKkobGyetrabMSjNa37x6gkKnUVN4/cFU4jxAt9eSn1PAvnJ73SwCA6HdoojxBYOx4YwfHf1YHXUdp6YDGppW7+8aoKgY2mSykEJgkDcGQPUOpFffwDN8XMXYZFybG09om7jo1NQ09uKtY3VRUE+aFNOafm8pV/tBwdf/2PlQTXkj54Pe7POhGbRStuyoQOvlQ1KiP+rGI3j26UovQzl5hT506RdLmFrAQUsYyV1UdNtBMve09fSYlva767SsNTz8ciTP/jmJ6MFD+PvgIaBrVBUdYkv6bhZ9uprFO2rckIh0x3WwPZ8P7lGdn803c7P5Zi5g8CCmTxKXXz+Gawf50/N3l3PXlteYs6LG9SSpbqOyLjGjeJjxUOB47s55kNdufoI3FAXzqMtZ+lCPU2a/efdPpJ8HOA9ksS6//sxwKxvXH8Q+Mpb4IfFEflBE7hkOGs1uo/hANote+5hs/Q/879pOTP3zML5I+4HM+t1s38cTV3/MV6WgGC2EJ/Vg5uyJXHTxZP6vqITb382ho+YfWxdPnbKyxo8FR3kNVTp4eXniZwDsrj6/NKYl982W6iD3FSGEEEIIIYQQQgjR4bg8LGT96TNGz9mKq29+stY6zt6sFzdOEGxOPRW/JO68pz9xFgd7v1nE/a9msrO83lCh6s81L/2Fv/dtXdXa7PVJdTu2rf6KSX/PoKwVHXc2+r2t4nKu+v3EDo/+T4v7QT+XmQKNXVvyqZ2WRFxSGBbK6dk/Bo+i7TyzMJL7b4ylv+8aCqMiSfQA565ctrXtmqvnmJ1dX8xn2spoxo5LYkhKFL16RBEXGs7gyeEMGteT1Aff4dGGyxi64hyfGOf8fHA3Zy0H0jN4cfMBCp+/lb/392HshfH4rsxsNLnSLHotBYW1aHhj6BRAuArF9da1dNqdRxOzjsZ2YKL/0Fh8FFBiRvDhTyMa/F1BUYDuCQwNXsOnRc2tpJ1t328n63edSIhMYFTXH8ncVT+1peOwO7DZAJuD7I3reOheldC3L2DgTZcyK/0NnsloLCnd3p2teFLvgNbPynPNuXheat/3FSGEEEIIIYQQQgjR0Zzlt461Tm1FDTYdFB9v/BtNkyr4B3ihcnR2QTkAOuWltWiA6udFQGOj3BYv/C3uq6dH32RGBChoBRv513ObTh5wB1C8CQ1sl8PtzaBzpLgKJ6AG+xHaUZtxFpzbfne1H3TKy06cD/6NlFM83Hs+VO/MZa8TvOIjiTV3YkBfbyo27mFpWhY5xs4M6mkiID6cSFWneEceeW098bEN2Ipy+W7+Uh75v/e48vKnmHL7N3y91wamIKbeOoikVk8MlOugy5xHWLGyAAdgiQw+/g4/FzfGrh2F2HVQwyNICmhBUXM0IwYevb8pioKqNvx3NG+kmKIZMdCzRQldraScw0cPDiI6nbmkM3c9L39ZhGYIZvqtA+jSrp8cmtDqeCr4+zceZ6OvJ94KaJU1lNcll117fjnXOs59RQghhBBCCCGEEEJ0LO16CNGRW8QBJyh1SzSeQvGme6IfCjplB4op0QB0CvYfpkoDQ1QECV6nFjN2DSPObUuBKfiF+OKhgCP3EFm2Uz+hdoqhb2R7C7WGpgOKcsr72E6mU7izgGINDLFxDAjrAMmDc8Jd/X62+0GnIPsw1ToYosPo1tj5EBdBvBuXxtPy89haoqNGRpAc34UB0Q4y1udQvW8f60o86JcaTY+kMIw42LGloPHXg7q+92bGsx3RHRRsWs+j/1pLtvPodSvRp9Ub7aDXQR27Q0MHTEa1zWZIqoZje259DY6s28UWOyjmzkwY4dfsm66xewJDgxX0mp08cNEj9BvR8N8/uXVBBZpiov/QrrTkkFF8PPFRAF3D6TzjxwEn2z5fw5oasPQcwk2DzkJWyeRNbGIkPZIiSY71xd17aH08VSITwvA75ZBQiY3vhEUBZ24R2XXxdO35xV3Ov/uKEEIIIYQQQgghhOhY2ltG7CRazj7S8jQwBDP5ohgajm8ZuvRham8jilbDurQ8ji0EZ83czfpqULzimDqu4WCvif4Tk3FfLlCnqqIWpw7GiGCiGw62KR4MvHYgfdrbIJxupaISULwIDjz9NCv7li0sPaijmGK4YUYiTU5eUj2JjvBon0squp2b+v0c9IN18x42VBXY7x8AACAASURBVIPi2Y0pI31O7h/FgyEXJRPuziuBo4DMnQ4whjPkiniS9IOkZVjR7XmsSbcSltqXyUleqM4iNu+0unc5wRbEsy0YTpNQU4wGDAroTgdWN2RkO+Z1UOfwoQo0VMK6BOPhrurVr0pANKP6+mFu6gOmUCaNjcAI1OYUcbBZybmmaQWZzF9RhaaYGXTDeMaGNOcKqZIwJJ4IFRy795NR2dhnnGzdmEO1Dl79E0n1bG6NVDoPTyTRALrzMHsONC/rpRVtYf5PFWiqHxde35doNz89qCG9efCNmcz970w+eHQAsW49fd0TT0u/PkwKb9B/liguHBuMAY19a/dRUBdOV59f3KID3VcMiYN58pnrefXZ63lxRqzbk85CCCGEEEIIIYQQom206+Qjznw+/2w/VbpC1KWX8c+ruhBqBlDxj+/D/z0ymt4WsO/fyMdrTrx9Ui/byUffFOPEwpA/TWPWYP+jA82qhfgLL+b+qX5obpxlUL0li0wrqFH9ufvWRKLrRswNfp2YOOsa/nWpD7W17ez9SM5idmbZ0RULwy/pS9fTjfLbc3jvrW0U6QqRF17Bmw8MYnC0pe7gUfDqFMGoKybxwvt/4cVLg9r5QeU+bun3c9APetlOPv72CE7Fg5F/nsatg/2xKIDJh35XX879F/qhuPXwtLJtaxFO1Ycx42MxZe1j3WEdsJO+7gCOuF5MilPRSg+yJc/N50VL4nnOqcRddwNzH5/I1SMiifBWj//er2sP7ryjP1Eq1GzZS0ZN6/fWMa+DGrs37qdYA59hw5k5wBt3p5AV/1j++PztLHjlUmZOiadHpBfeJhWjhzexfVO446nrmNXDiKJVsHTxHurnqUyenvj7exHg70WAvwVT3e+Nnp51vzv6e3P9TIxezY9vLGVFiY4a3od/vnIVfxwXRZSfEaPRTKfEJG6e2hlT/TJqMMOHHk1o5WRkH09oNVSTmcU2B6i+cYzofWpmVzUaMZuP/rN4ehAa05mJN03jhT/EYFF0Kjdk8EN+c89BG6s/T2efEzz6DOG6vqYzF2kv3BRPPGL588MTGBNtRgEM/hFc9vdLubqzila+h48XF3F80y4+v7hFB7qvqP6hDBjUjWGDuzE40dft57sQQgghhBBCCCGEaBvtbT5eAzp5CxfyaM8beWxyEGPvuJnRs6xUWA34ehtRFdBK9vLiYyvIPGmZPzvpby/grZ7X88deMfzhmTu4rqySCtWLEF+VvCVr+XnYYMb7uaeWWn46L3/Uh9dnRNHrd9fw1TQrpZU63n4eWFQH+75awg9dLuLWfu7Zn1voNaxckMnBYalEDbuIT74azoGD1Vg1wHGQd+9bxPclxz/M4WUL+WuQief+nEj85Av5z6QLsFXXUqOY8fU01C3tprF/ZZu1CAxhXPPQBYwPOjGK7x9jAlQiJ0/lzRTb8Vl2zqz1PPj8FgpbkXxxS7+fk36wsf6tBbzT4zp+nxzLrc/8lRk1VuxGC14mnUMrM/g1JYXhvq7HokGjyNuWR7EWSZhJJWdjFscmV1Wk72ObszupJqjdmcvO+jP83NF/LYpnGzB4kjh6GPeOHsY/NCfVFbXUqhYCfY5ez5wle3jpxfSTkyMux6VjXgdr1/3KW+t6cN/gSG56fjZXltdQ4wScB3nzto/5pNnJsqYqqqFhIqJvX27r25fbGv1MLVs+/pIXVtfWm5lrYNjdf+X5yZYGs1cNpN5+G8tur/vRnsXjV77PZ4frbS4/gzn3evKvx8czLDqJWY8mMavBLnVHBWmfbTqa/IqMZ0RXFbRK0jOKaGrypVaczfosjUGJ3gwdFoVpbfaJZYwVIxMevpcJTZSt2Z/OI0+nN5mIa4xjz0Y+TR/KvQMCmHpdb97L2Nii8qflZeFYPt56uJxSN34vQY1wPZ4nZiQ62bZ0C6aRw3ju4yHUVNpQvTzwMIDuOMLiZ77h60P1K+3q84sbnJf3FSGEEEIIIYQQQgjRkbTz5CPgLOP7J/7LgXVDufmSZFLjAwiwaJTlH2Tzr5v4cO4G1hedOpSoV+fy5t/eZv+NY7l+Qizxod54HS7kx89+5oV5GjOHDwbdgc0tg352Mt/5gFvyRnHrlT0Y0NUPf28bh/bsZNmClby1uJzJz7ljP+5VkfYtsx6oYNbVvRiYEEhsvP/RQUa7lSCjAvUXxNRtbP90HldtSOaq6SmM6R9FbKgHHo4aDmaVkbM3hzWrtvLtqoNNDuyedYoHMT27kNrIe6s8wyPoH37iZ4d5txuWdHRPv5+LftArD/DaX//L3hvGcO34rsSHGnEU5fLd4lW8+qmTGR+ntDoa9Tn25LLDNpAwcxXr1594r6NWtJ+0LI3URMjadpCK+mP1buq/FsXznNLIXrSI+6uTGd4/hl4JIUQEeuHvtHI4O4/0Xzfz8bwMNjV8+Vsr4tIhr4NaCZ/PeQ/rH8Zz47gudAnyxksFHJ54uGFalJazmj/fXMiE8UkM7x9N9y6BhPqZMWl2yotL2LV5Lz8sXMvCjHLcmROq3LaaO27cx8RpQ7hkVCw9Y/zwMTgoP1zMtvU7+Oqztfy4txYNhU6DEkgygl6Tw/ptp1mDVytmw6ZytMQAwgYlkGjIZlsTH9U1J7UVleTuyyVtRQbzv95Dbm0LG6GVseSL7dzavw9BA4bxux6beWGLe97aGtQzhi7q0X0s/jizVV8MOZlCSCviubVePaozf+K+L/L40y0DGdMzCN/aCvZs2cnn7y/nk01VnFJlF59f3OF8vK8IIYQQQgghhBBCiI5DSegc3s7WAz37FL8UXlhwGaOULB6f/j6fFbd1jYQQ4tyS66BoP8yMf/hvPD3BA2vGt1x1Rxo5blwSWAghhBBCCCGEEEIIcW79Vl7PdxKfvt3oZQTngRwyS9u6NkIIce7JdVC0G8YIUntZULRyFn+QLolHIYQQQgghhBBCCCE6uPM2+agEJjLz9sGMTfLF4/hqhQp+Cf25//aeBCo2MhZtYnebrREqhBBnl1wHRUegxnShX4hC7ZY1vLfO3S9AFEIIIYQQQgghhBBCnGvn7bKraqdBvDH/QgaYwF5ZTl5hDU5vPzqHeWLGSf7P3zDrkXSy7W1dUyGEODvkOiiEEEIIIYQQQgghhBDiXDME+/s83NaVOBt0p41qu4auG/EO8CUizBdfg438HXv46r1FPPzWLvIdbV1LIYQ4e+Q6KIQQQgghhBBCCCGEEOJcO29nPgohhBBCCCGEEEIIIYQQQgghzq3z9p2PQgghhBBCCCGEEEIIIYQQQohzS5KPQgghhBBCCCGEEEIIIYQQQgi3kOSjEEIIIYQQQgghhBBCCCGEEMItJPkohBBCCCGEEEIIIYQQQgghhHALY1tXQIizyhhN6EX30G3YSPxDgzAYDSjYOTJvLKuXZKO3df3EecDA6Dn38PxkE/ve+y9Xv5WPs62rdD4whHDDK3/kzoQCXpjxDh/kNHG2Kl5MfOg2/jXWyvy/vsFTGbZzV0eTP8OvHcctk+LoHumNl1FBUZxsfuVVZsw7gnbuaiLaGSWiigteqyDEcPLvSz4MYfEnxhbce3Q6zz7EmDE6ZZ8E8/WHpsbLKhoJDxcxpB8UvhHCD98Yzur97XxvnxBCCCGEEEIIIYRondYlHz2SePzLq7mgag1/+N13pDvA2GsiX7w2jMBln3DBw9upOqmASqf+g5h5XV9G9gohxOyk9GA+a5au4a2Pd5Bd26rauJERj+SbiZ9yFZ3iu2Ex2bEXZXJ4zX/ZveQ7qqztZX/tuZyCacT/GD9zAoamNnecjv3X37P0jR9OHaz36EbY+D8QM3AU/pERmJQqbEdyqNj9E/k/vUPunsOnGYD0JvjquQyYFIeKA0dlEbVWBzoOrDWNpYdaGBfFG+9eUwnvNYjAuJ74hsdg8fYA62Fq8tIpSvuArOUrqbGfMQBHNxdyHQMfe4JQLxW95nM23H4nhY7mlT07jATf8AuDJ0SiNPURvYSc5waweXMTjWxh/yl+vQkbehnhKUMJ7NwVi7cFvfYwNTnrOPTrO2StWo+1mZm99hfPtqF4aAwZZOXCvg56R2oEeehYKw3s2mXii+8t/FSgNHoOuVrOXYLHjmVGTyOHFv3MF00lHgH0apZ9sJado8dyxayBfHrbL2Sdk+yvmQG33cAL04MxolFTXklhjYaOk6JqSTsepzro9VQx/RKg4I0Qli4+z5JGTbXPZqBkixln3Q3Qo7MNf/+2rKiLzvf2CfBw0PmiahJGWAmJ1jArCrXFBkp3WNj/rRd7d6jn1zkrhBBCCCGEEEKIc6JVyUdjfAy9vaEq7QA7HQAK4b1iCFecZGzOo+akTxuIveRK3rirO50MgK7j1AwEdenClN/HMHLQcm6/awWZ1a2pkTuY8B7zBkNumoCHqgBONM2EOWIIUZcPolOv51j7zEuU1rprKMbV/XWUcs3hpCov65TBLSX0EnrPfoboSM96ya8APMIC8AjriZ9zLXl7fm56UMxzDDEju6JqB8l74wo2r8k7zUwkF9qndiP62ieJj2xwGnmF45NwIT4Jk4ke+Q4Zzz3KodIzJCOUEMKvupsQr/NnJeQW95/vNPo/9Tzhng1Snd4R+CZdgm/SFKKHv8jGF1+gpOoMx9k5jmdNcQnZB4zklTra1SCtGmDj0burGevPSQlkk7+T/gOd9OtjZ+4bPry+++REoqvl3MYUwdU3JBHgLOD1z7IafInlVM59G/l47TAeGTqEW4Zu4MFVtWe/H7zjmX5RMEa9nCWP/o+HlpbRzO8Z/KYYe1WTGK9DqSc7lp9niUeabp9e7EHaHI9jPxH7j0OMHO5a6+0lRsrzdCrLm/wayFlzvrfvt04Nr2XInDK6da7fdzqekRqekXaCHCb27bCcd+etEEIIIYQQQgghzr5WJB8Vwnt1Pp5orAVQPEhJCcOoFZOxpfKkRI8hdjAP39GdTqqTnKXfcv9L6WwpMxE3eiyP/mMgPXqN5rGZ2VzzYnaDpOW5pUT+npRrJ+Ch2qlKe5iMufMorfTCN/Uu+txyEwEJd5IyLY1Vc9e4ZWlFV/fX/svp2Nf8hWWbzKdp+x8ZdO+f8XVu5GDavpMHt8x9SfjLs0RHWqByEzmLXiVncyY1NSbMwTH4dBtLqKH6tANiSnACPmYF3baOgg2nSzy6Ghc7ttyfyNmwmuJ926kuLqC2rBzdMxr/PteTcNk0/LvMIOWmLax86TOazssqmHrdTdJAX6oLcvEMj256pmGb0KhdMZNVn6w/Nd66htbY1E5X+s/ghdHkxJa3nIOrvubQjs1UllSg+CUSMmo2ieNTsXS/k3437GDlG0uwtZt4Oln72ptc/tpZ3YlrLBoR3gp7Myx8+ouJNfsNlOoaXXvYuOPKWvr5OvndlVaW/suDXZobyrmJz5DBXNFVxZaeztf7m7EDvZJlX+/gzqEpTLiqN6/9uo78szz5UA0PpasF9NoDLF0hicdGKRpdLqnFW4HSH7zIa/MvF7nZOWmfQsG7wXz17tnY9pl2fZ6377fObKfPvUcTj3qFib2ferN3g4nKGrCEOgjobiVSbV9PI0IIIYQQQgghhOg4XE8+Khb6pHTCqJWcSDQaI+nf04helkt6Vv2RXxMDrxxMbw9wZqcx51/ryawFcLJ32bf8I7gT8++IJeai4Uz6IJuvSlrXKNd5EjzpFgIsClr+O2z67weU2gDKqFj7COkBSYy8bijeI/9ExKI0csta+11wV/fXQco5KrFVNNV2I/59JuGj6mjbvyT/cP3jRcVr1H107eIBlSvZ9sQM9uedWPO0tiSL8t0/c/BM4TV7oiqAw4p22q5ysX3O7WS9esupmys9RG1+OqWVfoyeORlTnysJC/yC7JImsiHm/nS75mo8iuaSsSyWlGvbW/JRR7dVYKsoaebsBxf7z5pJ9muTObxxF476Oyot5MDcdKr4hkET47AMuImIT77rwPE8d/QqE2+8YGF9tlIv+a6yK92DB4xOPrnRjk8nB6lBsOtw68u5heLNuKnJBCl2Vv+wncJmJhGr1m/h5yN9uKxPfy6OXc9b+87uXB3FYsKsgG53nCYR/tumdK4mqb8GVgs7vzWdd+/AlPaJjsxnYgXJXXWosLD+vgB2HDhxp6w+bODIdgtZbVg/IYQQQgghhBBCdGyuJx+NkfRLNqGX5ZJRNzPFEBtDH38F6+psttV/t5opmvHDfVHR2LJ4Y13i8RidvO82sPoPsYz3imXcYC8WLjn9jLazxphKeL8wFByUrfy4LgF1jJPqX+Zy+IohhHsOJbx3ILmrSgAFc+pzjLh9Gh41K9n6yE1kN3yxnNKJiFmL6Tc4FMe2h/nlmXeocrq6vw5U7nRMA4keEodKFYW/LDl5VqDajchRgzBi48jiB8nOa+ZLNpUgOs9eR58+DWZb+lzFwLevqvcLO0fmjWX1kuyjx9nZaB86tr0bqdImE6BG4RWsQqPJMiO+kx8iNqKUwjdeosTy7Omb6BVP8MCphPcZQkBkDB5BnTAZbNiKd1K6eQH7l8yluOTUOViulnOJq/1Xk0HBhib+pldSsvp7asb/CW9jIr6RBrfE02WmHjz13ZVMPOlQ09j73n+5+q38xmdFK15c9vRsHhoCG198hVnLA7lm5mguGxZJlLdOWc4Bfpi/lFcXF3KmVWWbS680sLay8b9VFKmUaOCDjsXknnLuoAR1Z3J/Mzj28/PaqubfC2oP8PP6Gi6d3IlJY8P4374Ct8xOP1GxY/3X4C22/n15+ae+9X7hZPMrrzJj3pGTkzWqL1c9/1fuS4W0p1/gtm9UBk4fwy1TE+kV5YnRWsWB7XtY+N6PfJher92qB90nDuPmqUmkxgcQYNYoP1TE5tWb+PDDjWwsrreXY3UcVMmnTy7FdtE4Lk32piprK68/sYRlnqncf/dwRnYxUbpjEy8+/h3fHzxbKSWdiItrCDRCzXIvshomqRWN+AeLGJoKh/4bwvcLGyzJarDT94ViescoZD3ZiVVrlFPKB4+tosd4K526OvHwAEeZSnWhiUMbLWT96Mmh4kaqpTjp/thhBvWBgtdCWfqDTvjUSnpNtBISqaFaVcp3W9j7iS/bMk+3bPMZ2tcaplpGzSulS4Pzq+yTYL7+0NSsc8IjuZo+v6umc3cnZl2lYpeFPZ/6sGNLc9/fdz62T8erZw3JF9USmeTAJ0BHtamU7zORt8KLnT+ZqbI1WbhlXD4+NYJGV9FzkpWwrk4sZrAdNlK03pNtn3lx6Iib6qc66DrBhhGFw1/4svPAb/UrOkIIIYQQQgghhDhbWpB8NDDw9pk8PMbj6Cwi1UxQsILiSOahj+KODvJavAhTQe83kY8/HQc4SX/jbR7cHU3PAAW0UjI2Hznl2/N6ZS4b9zgZn2KkR+9wjEv2tckSdkpYPwJ8VdByObIr+9QBrOoNFOc4CE/0ICChJ+qqlWjo2DY+QuaKgQwYM4LuM27i8NNvH00uAqDiMeRReg4Kg8plbP/f+8f/5tr+Ok650zH2vJKIYAN61U/kZZyczFMChhMSZUR3pJ26HOvp6HZqc9MoNteNaHrGENAlEtVZRMWevdiPb8hBZfGJDPjZaB8omGJ746UC2hFsFY23Qgm9hh5TUtD3/JOda4vQR55umwa8J7zEwGm9UQFdd6DVVuBweGEJTyU8vD9hw6aw87kZ7N1b6YZyp+5f9fAAWxXaaQLgcv+dSW350RmRipOmOqBl8WyNKvZtymZD3aHmH9OZbkHNL62G9uDh18dzQZiK5tRQDCohcfFc849IIvU3mb247CzPMtJJ7O0gUgXtiJEtzU4suFqu+Xz7J5BiAW3vftKLW3L02Ni88SD2SfHEDulG9DsFZLsziLqTor3ZbPA4mnxUvALpkeCHxVnJ3i3FlB3/oMbeQ46mtnKUIZCpj0xnzig/DMfG/I2+xA9I4Yod6/koveroPdXgz8R7b+CxC4KxKKDZbVTZDARGRTP2ymhGj+vO07M/Yd7eBndMxZsL7rwUk9OK3WAmLLkf9z3sx0V+XenrWUMNZiJSBvHgnfls/EcGh8/Ct32UoFqSRjlRnEZ2L7K4956uaETfVsLoSQ5UBXSbSm0ZqF4aAcm1BPSw4ldu4Ydvz/DOV4ODbn8vY8gQJ8qxfvDSCEipIWG3F9szm05kndX26SplW80U1j2hWaJtBAQ0v7gxuZIJN9cQYAZHjYLi6SSgXzUD+lgJeSGIVT+f+d2b5137DE6ibyllxMV2TAqgg7NaxWl2EtDLSUBvK6HmEL7/2g3vJXX1+DQ46fKXI4wY66hbtUHBbgNLuJ3OU+1Ej7Cy/qEAduxvfaJQCbIR0QVwmshaaZR3OgohhBBCCCGEEMLtWjTz0cPPj4hwz5OXMDR50Cnc4+QPevsQ4Q3g5ICXijEymCgD4DhCdt0sC3NIOD1Da9m5o5RqrYIDeTa0FE/8o4IJVPdxqA3W91JC4/AyAI5sKouOZgjVgJ4EBJVRnpWLQy+k+lAVemIApk5dMSsrj87Y00spmvd3srt/SGzy3fSZtJK0JbuOJu6CrqDntRdioYiCufeRW+Rs9f46SrmmAx1ApxGTMCsatvQvKWowzUuJTMbHABzeTFl5KMGT7qTbmIkEdApAqS2gcveP5H77Ggd2FjYYMKugaP61FB3bTtz/MWrOLLxrfmLnU3fRVD7ALe1TVBRVBYwY/bsS0O8mEqddhFnRcez+koJDjczBUjoRcfVsgs172ffJB1Rp0PQbMuvYCziy6gfy0n6gaPcOamscgIoheADRVz9D8uDBJP7+Ng7PeYoypxvKHY0G5gFPMWZYNJ5eRtCqseauo/CXN9n74woavvLR9f47HQVj5954GUC3bqU0t5HOdCWerrJn85+/vVv3g4HRc+7h+cnNnQZoIOmKMcTuWs3dd6/i5/21mMLjuPn+6czs58WI6wfS4/ulbDlD/qo1IlNreGy8E4OusnyhhY3NzCy4Wq75DCSlROGp6FTsPkh2C6culu8+SI4WT7e4GPr4/kJ22ZnLNJ+VX17/gF+O1bTHBD5/fTidq/bw4t++YlWzY6EQPGESs3uobP5yCe9+u5ddh2wYA0LoN3YgE+wnPhd1ySU8eEEwZq2M5a99yZNfZnPIpuKf0Js7HpjC5d3imf3gSDL/sIyt9fevGHCsX8D0OZsp7TKCN98eT0q3OJLTFjPt3vXkhwzg5XenMKRfIqleGXxX5a4YnRAwuYpIT7Bv9Ga3m9duVLpV0X+CA9VpZN+r/qxfbsLqBBQdS7SdzqNrCDjd9ygA0PEYWUFqd52ixX5s/cnMkcMKir+TsOHVxJyhP89m+3CY2fTgsW8z6HSefYgxY5p7tdQJHlmDfbc3y5/zIfegAr524v9YyqBRTmL/VE7B9kB2Hzr9Vs6v9ukETS9l5MV2jJpKwZd+bFhooaRUAUXHq5uVbldW0slNzXP1+PSZVM7QsQ5UzUDOu/6sXWKm2gaWuBr63VlOQqyV1LuqKJrtQ3Err71KZwf+BtAPmSgp0wibWknvybWEROgo1SplOyzsXeDD7q2qLLcrhBBCCCGEEEIIl7Qg+ehk5RNP0f8JABOjHvgbz0+y8ckdL/PvDCcYo5k99xau99/KPZd/zo81J0oGTPHGQwHdUc2RClAjU3n+rSkM83Ow4913uentAkqPVKPjiRrgTYACZxgXOwsUjH7BR2eGOY9gq9JRQq9jwMNPEOpTS9lXV/HrF1uxlRWjEwB+oZhVqD02OF7zK7vefovgf8wi8PKn6br1SvbmdCL6pjmE+enUrJ7DltUH6yVbXN1fRyl3mlD7X0h0Hz8ULZ+CX1dyco5FwRAQhlEBvUwj8OYv6D48BkW34bRpqL4xBPS/Bf++FxH6wXVsXLarlQNj7mifgmn424yfOYGTF2R0YN3zDplvvEfVKZVUMPW5h+6pQVhX38u+PbVwxjcTOqn89hbWnDJGq+EsXkv2/x7FP+ltOkdcQHjMc5RlOVpZ7kRdDQGxeB37UfXCI2Y0XWJGEjHgZTY8/ywlxxPIZ6n/jIl0mTwOIxrWdXMpPGUmqSvxbDtm6x4ee2Apy+om/ToL9vHms6sZ9e44kiNjSQ1X2JJ7duaiRA6s5qXrbESqCumLvHliQ/MGl10t1yKqL4lxXqjo5OwvoaX5V2duEQccEG/qRPcuKl9vbo/D5irxvUJIe/lt7vj0MMdXeTxcQe6eLL4x1L1n0xDBtOmx+Cg6uQsWcP/8bKoB0CjbvYknHvIh/u0J9OmayrVDf+H+FfWWN9adZK7cRZEGevZuVh8YS0q8zrYVO8izg164jzVZGkOTg+garsJeN8fJ00rSJAeKbmD/1x5Uu/lQ9kiw42sAbasXGctMWI9tX1ew5pjZ82HzvnYQkOyk4O0gli00nliit8RAZZaZ/2fvvsOsKM/Gj39nTj/be18WWHpdOgoCUqwYYxf1VVFjeRNj1HRbNDH+1GgSE40a1LxqNBoVRYqCCAJSpC5tqcvCLmzvu6fOzO+PXdr2PXuW5v25Lv7gnLlnnmdmzjl7Pffcz7PfROsPR3Rz/7rMY2XTc2EcKmr8f42FPS9FEJ5ZzsAUD/2n+dj77zamNz3H+qfEuBn+Q1/DFKPvRbH0A8vx620o1O+1s/UZG7awNq55JwR0f5p89JnpwaJA7aIIVn5qPfb959nvYO1zOlEv1hCbXs+AkSHNpyHuJHOU1rBmbQXE3lfGiMkaCgp+D5jCNWLG1hMzykPya1F8s9Ac3CmshRBCCCGEEEII8b3QzpxkrTDFkzXIhuIqYNOexkqx+DSGxiv4dh9k20lLvCnY7WYUwPD6cRtgzuzBsHAFFAu9s1KJVsHjaRhmUWwWbKclZ6CgWhunlPW50QxQ0scRFaoCTsL6jcCqgOZt6JxicTQ7ef49L5L9+VZ0WxZ9Zt9P0vQ/0n9YFEbJh2x7d8HxAaguHe9siWuNinPstUTbFIzSnKA96wAAIABJREFU+Rze5W7yvoLJ7kQBlJRZZI6Ppuarn7Dyx/344kd9+fJn17FjYz6Gmkj8rOfISDa1dJBOCHb/jvLi2voim196mqLyFobtbKPIvOEaHJ5V7P1kMd6OF320zpNDdaEGagohcU0X8Qsszl+0nLwP7mP1IxNZck8mC+8aytdP3k3O2t34UbH2+QlZt1yC9dhntjuun43wS56hdy8bVC8m5+OvTphC9+gmAZ7P08KgZm02y5osHarnHyK7wgA1gtTEwL6a2xPe38XzsxoSiBs/D+UXi00dWl8y0LhOUyNITlDB0Cktre18ctNbS3GVAUooyQndsCBlkGiH1vPSJyckHk+gaw0nVk3rxdgUFbRSvlhwsDHxeMI+8rYwL9uPoToYMyaFk3preCmv8DV87I16yisNMDTKyl2Nr7morDZAcRAZEfz+OS+oJyMajAMOcrZ0ww96472nhOrYuvBRMfIdbJzfcmLFaCPb0u396yL/VgcHmj7B5bWSu6phes3w4V5C22j2udY/x2g3SQ6gys7WeZaWE2mGgqc6SH0N4P5Ukr0kJQGamQNfWZs9eGHkO9i3QwFFJzHLF+Af78dZHI3fM+n1DJ2kU7Egks9vTuC96xJ4/45o1q8xYagaqXdU0T+tiwcTQgghhBBCCCHE91Knpl09So1PY1iiin97HtmNFY4hA9PoY9Y5tPUQpU1HjJWTB3R8Gzfw7+wMZvWoZeGHORTrEBZIQ4KtSTv1ne+Su3s8GUnFHF68CI8BbQ9nu6n6/CH2DP6Efn3uJ6snoOWS9+ZTFLe05l+gxztb4lqi9iHl/CxU/NSu/YSKlkqbGo+nOEJh66/Z8PZcXI2nTytfQ+6rvyDk6bfpETOM9InDyP3Pxq5VK3S5fwa+lbezaCWgWrFE9SN6zJ30/cFDjHl6Orn/mE1OdskJbbQQftHj9Eg2qPn0jxwq6UyKRcGcNI306deTMGAoYXFxmC0mlJOq/AxMNjvg6mKcn6ovf8HJM1d6qN+3gH2vfEtV7VxGT+2NbfQ9pH76BfuPHF3MNJjXT8E67HGyrhyJyZ/LoTm/oqCs6fnqyvk8HQwOHyijadodw0NNrQGxFhz2luK6yKQx62oPPcyQ+3UIv+poAjHQuEAodsJDFUCjri6AeWcND3X1BigKYWE2VDxn4JSBBiXr97Krne6ZU+JIM4HhKmJnS4tXGvXs2lONMTqaiPQYotX9FJ2wrq37WAbej9cHGH48R7Odhh+PzwDM2CxBTi6ZfPS93IMZhfx5Tiq7oWTKvcNKpd9LdHodkx412LnYxpHtFqorlU79FriybVR0tn2noH9dVZdrbvEBjOpcM5rhx5zkJ8wENS3dg+dc/wwiM32oCmi7rRQ3++INvkDuTzXJT7gKuM2UHWphA0OlfL+KMVzDlurHrli7VpF6bI1TAzaFs+w1+7HvdX+plZ0vRhD+Ujl94330mepj51uWM/C7VAghhBBCCCGEEGeygJKPzkHp9DXr5G/Np2Gc38SAYSnYDRfZ2aVNnio3cLsaKjAUqxkbYNTm8fL/vsDLx7ZRsdkammJ4fE0qBE8VA93TUBWiWGwN02fWr2H3H0ax+9g2ZkxWW8PWPlfLAzH+HPa/9Q+SnnyICJOOa8Xj7NpeHcTjnS1xLVN7Xk1ymhlF28aRNTtaGIgz0L3uxtfrKF3x6bHE1THuNRRuKSX9wgQcmVnYlY3Nt+mw4PYP3YuvbCtFCx+g4rCH8x+4kZ53/z9qHr2T/PKGSCXhJgZcOhS17D1yFm3rxICein3k04y5ZxZhVgXDX4WrcDs1dS4MA8CCPS2LkBBQzOYgxLXBqKRs3hzKL/gDsZaBxPaNYv+RUoJ7/RTMvX/KqHtvItRURvHbs9m+ubT5VgGfz9PFwNV0oczG1xuuh4LaDYWPaoyfUXGgaGbmLjNT28HPTKBxgVEwmwB0tIAupI7W+AOkmrqnerTrdAoPV7V7n9rDHdgUMGrrqWoxUWlQVVmPTjRKmJNwoOiE94xjUz0aaLoB6Oj6Ce/rgKJi6mrxeBOWkfVkpoNR6iBnVfdcA+NgCN/O8TP5djehI+oYPaIODPCVWSjbamPfPCe5e9V2EpEKdYWmTj+4cir61zUKnuqW26XXqPgAs9PAZoaW5jU+F/tnj2y4yt4yE/5T8PdlIPenKVTHpIBRp+Jp5cEEb7UKaCihOlaFLiUfNU9j9tFQOLLE0fyBEpeFgxtU+l6iE9LPh1OxdPN3vxBCCCGEEEIIIc41HU4+/uyNn3BhSMNghTk0HKeiknT5tcy90AAUnDHhqIqfC39xH6P9gD+Pl+77lC+roL6yDrcBVrOT6HCgrOneFSKjGqZq1CrrqDxNyUd/TRk6YDJFYw1VaN4QBWtETMMUstUleFscPXYQMfYiQk0KoGIfcgUx4cspqm66r0CPd7bEtcRO9IQrCFENtL2fcPhwi5Pd4a+tbDiefoS6opbKFHRcpYcxSIDwBGwquAKuzghm/07er3frG+TnX0vf9Mmkj02jYGEehhJF4tUPEGOvovjdP1PamdHDkIvpf9uNhFk91Kz4DZvf+4TqE6vDlFQyfv0Ng/o1We0w0Lj2eli9g+pyndgEE/aYBBRKMYJ4/dTkm8n66QNE2uuomHsnm5bubZ6w6cr5/J5RHHrDVIS6QmVt98cFxo/LbYDNjM0aQEWeYsFmUwADt9sXlPXbuoPH7T9j2hbUukdFo9dMNw4UyhY5Key2KjOFivmRfLbGR9oEN0mDfMT29RER4yNxio/ECS4Sno1h9dq2k2eap3OVkqeuf93khIvd8vMe53j/Tpng3J/dyVejoBmg6iaqDrf0LaBQV2TCQEeJ0rCrUHsGVsEKIYQQQgghhBDizNXh5GNMSjSpISe/Zo+KJDXq5N1FJEQRAeArJ6RxXMVfUEaBBuGmKNKTVWg6baIaSnqKFRWDioIyKk5T6ZJRvJ96DSLUHoTEmaCyyePnSgLO+BAUdLzFuS1O+2Xu9zBDLx2M6tlJWX4C0b2vZvAty6h6+TPcTbYP9HhnS1wzjgtIGZWEgoeKb+dT38p1NkrycOudmMq1i4LWv2Y7LsFdpQNmQpJ7otCQfHTERqAoZhLuXMeld7YS67iaUXOuBqrIf3EEWzZ7MfW/hPhwFaPkPbb/34dUN10wTo3BFt6QeDlRoHHtU44N9hrG8dhgXD8l9gcMffBJ4iJ81Cy+l/Wfbmi5YqUL5/P7LNCB+W4f0NdrKSk3IFIlKsqBQk0nk0NOYiIUMHyUlbnPmARfINw1LrwGWEJDiGixSk0hItKJCmi19bRUX3+qqZn19BtsQL2dnMXmds+/0eYGBmZb2/FamYUDn1o48CmgGIQMdDH8nhp69dDo/T917F4fRlkQEyad7d/pYWAL14HmJa1qqN7wvVyn4m2huu5c7Z+7suH3zRqjYVY4ZWsCd+b+1GpVNAMsIXpD1WZLS0WHN85HUat2uQ96sZk6HSK7thshhBBCCCGEEEKIVnX4setHLvodWRN+x4gr57PWB/4dS7jygobXzvvNVqoMg/z35zB6QsNrWVPe4ZOKhli9oIDtlQaoEQwfGtXsoEpIGiMyTWD42b6tsKWZwE4Jo2gzlTU6qMlE9U1vXhHiHEF0mhlwU7l3R/MqrJBJ9L9jNqHmeio+/Qnr/vY7iqrBPvpJBk9Mbba/QI93tsSdTMGadS0J4SqG51sOrz/c6sCmUbiFqnod1CRCElpa/E7FEZvc0I6qQjxdTFYHp38tNTMZZ0zD3W5oXR0BV7FEJWAC9OLd1LYwa6cSPZrouKYDsoHGtU+JGEREtAr4cZccOXY9u3r9lIhpDHroTyTHGdSvepD1/15+ygaLz2XaERu/fDaMW593sKalWV+DHBcQrYLcfA0DleSUiBbSC21To6NItgNaObkFZ/4EvG3x55dwUAPFlsCAHi38VCsh9OsbjoJB1cEyyk93dxWd1CtcRJigdpmTg5XtbG8o+D0ABtawFhofqhEe3YnjGwp1252s/quTag2URD9Rzk7Et6ez/WtCa/zDRg1osvvOCe3lx9ZCMVt4Tz8mBfTDJqqb/iSds/1TqNxrRjfA1M9LgqP729eidu5P/YiZah2w+olJayFe0YnqraMAngJzs4fZOt2cAgvl9YCqEZHc0s4MQhK0hhkfKky4Tvf3ixBCCCGEEEIIIc46nZ7zyTGwBwPMBoXZB2kY21XpNyyNMMPNls1FLScOfYdY+m0NOioDL8li0EnVDAop00cwzgmG6wBL19afvqft/esp3FyEgZmICTcQYT3xTRPO8bOIcygY7tUUbi0/OVaJJWHWM6QnmPDv+hNbF+1CL5/L9nfm4yaG+BuepUdik1G5QI93tsSddH4SSZxwAWYM/Fs/bmEa2hP41lG8vRqDEGInXoGj6SCjfRyJw2JR8FO/Z0OXB+EC7Z8akYqt1fI+FVvWnaQkmgEv1Xm7G+5rfT/7n+zJ/FvTWviXzuI3lqEBhusj1t+RxvxbBzdW6en466oxADW2J86mWRklnJhLbiXS3PRkBRoH2EJp6eWGuGhif3AnUWYFw7uR4pyq4+915fqFnke/B/9GerIJz8bf8N0b89oe9Az4fH4P6QrV1Qrl1QqdyiEGGhcQLzk5pWgoxPWMJ7yTc4KaMxLIMIFedYQdh8/ujLV+aD9rC3QwxXDRpek0zaOZegxl5hAziu7iu7UFp+DatE1JcNN/nA4+C7vnWzvwENHRaR0hrL+v2fdE6PkuElr5flXaykqbQWmcJrjLz3yceMxO9++kaFxlDX0NSfUHtth2J5gGu+gR3+RFq5ee5/tRgKpNtmZr/J3L/XN956DQBYS7GTzT18pDDQZWZ+vfGUqveiY+XsHU31Uw5QZvmw9GBHJ/GoetHDkCmPxkTPU2O4dKqoveAwwwVAo3WVp9CKrD7fRayN+sgmKQNNVFSNPvWoeP9JENR6ndaenS+pJCCCGEEEIIIYT4fupk8lGl3/BUQg03WzY3ViiqUWQNDUfxH2bDjtaGP32s+2AtW91g6jGW3/9qJIOiTCiqjZ5TZvDHuzMIQefQ/FV82Ww9yFPJRdmXb1DpMVCTZzN89s1EhFtADSN09CNkXTMeM37qv/kHR05aF1DFPvZJBp+fCq7V7H7zzca1cXTc6x5j+5ojEDKBfnfcRZg5GMc7W+KOU+KvILWfA8Uop/jbr9quZDOqKP7yPWo1sAx+lJG3/JDwMDOgYoo9j553P0tajAnDs4GD32wLQrI6kP4pmIf/kUnPzyPrhrtIHpJFaFwitogkQjImkXbNPxl/9w9xqGBUzCPvu+Iut1Pbs5JKr4GSMIuB10zH2Vj6oYT0J+m6t8iaEofeQhlooHHqkGeY9Ie3GDTzWuL79McZHYctqgfhg66l7/2fMHJyBip+6pb/lYLSE+IDvX724WT+9DV6ZTjw73uZLe98ic8RjTWs6b8ozK1mRUVrLP1dvP90NfOeqmNmJ+baCzQuMAaHNuRyWAdL/zQGWduPOE6l19AUIlSo27yfbac7G9dV2hE++u8B6gyFlB9cye+v60GcFUAlInMov/ndJIbYwHdgI++t8ZzmxhrEXlJPvA2834Wwr6BjUZXZFtwGmIbUMXamD4cFMOlEXVDNBbf4oJXnBCKvKeeyX9fQb4yPkBOystZ0NyPvqCdMBX+OlWJXlzvWKLD+nagy24rbAMvoOoYO04O71mZTNi9ZD9eQltTw7aqE+cj8cTX9k4FaGzlfNZ1S9dzun1FmZ/NcC34MYm+s4ML/cRMdeaxWH3sPDwN/Vs6Eqa23Wwn3kzjCQ3KWh+RebfcvoPtTs7BnnhWfAaEXVzHhCi/Oxu8/W08XY39eS6wV9IMOcja0fvQOt9NQyZ/noEoDS1YNk+92NazJDpjjvQz8WRV94gC3ld1LLGfoFLxCCCGEEEIIIYQ4k3XuAXU1muFDwlF8+1nfmGhUwtMZ0UtFO5DHljam6dIOrOWJl3rw2oN9SZ9+Oe9MuwxNB9WkoGBQs/UbHv1nHkEbKwyQUTCH7PfGMPZ/phEy/o9MGP97dF1BUVUUdHx7/8qWj9eetByPEnstg2++DDtVlHz4K/KOnFAzYJRS+O4jFPR9jZS+P2Po5atYMzf7WHwgxzub4hqYCTvvaiLMCkbllxRsq233Omh7/8KWj7MYc81YIqb+lQlTX0D36qhWa8M0YP5DFL79c/KKglPaEmj/1MjhJF8ynORLWtwreuVK9vz9CYpquz50Z5R+QM6Cqxl75XAiL5nD5Om1eOt1zKHhmFQPNUsf50jy7+nbPzhxoGJJmUrGNVPJaLFFburWPsrGD1Y1q5IJ5PopaTNJzYxAASy972fsC/e3cia8lL41jrVfl3T43AWVKYEbH7+YqdHHh3Uj0i2ASvJFM3ltmPfYQK2Wu57HXtxGkUxZ12H+XTksPzyeW5J7ct5AEys2dfAzrkYxbnQsJsPNmm/2U9+9zTwFDAo++4wnB/0PT10UzZT7b2PSvR5qPCbCQsyoCujl+/jLU9+w9XQX84Z5GDDVj6Kb2D/P1uFqdP+WEHbscDNykEbqnWVcM1tBx0BVFCo/D2XfsBr6tTQFpaoTNb6OMePrGGMo+GoUNNXAFmKgKGBU2Nj4uqNZdd+p7t+J/JtDyN7sZmyWj4FPFtO3VsWvAZqF7F9FsauocUOTn/4PVZN+QqLfltpwwJDJ1cwYqByf4vqQk1X/sDepSlMo+8aOOq6Oyf+ow1+nojh0TCZAM5H7cjj7Sr9n/UOh7MNIVoRXMuEyH4nXVHLZ1eCvUzEsOhYroCgU7+18v1sU4P1Z+2UEa/qVc/4UjbQ7y0m7VcHrBYuzMa7SxsYXQykN0uddywll1bs+pt7iJfrSKi67pArNq6BaG46H30TeqxHsOhyc4wkhhBBCCCGEEOL7pVPJRyU8tSHRmHs80Wgb1IPBFoPS7IMcanOAXePApx9wS/5o7ropiwsGxRBj16k4dIQ1X67m9fdyOOAOvCPB46P267tZVXQbfS67nvjevbDZfHgLt1G6+nX2LFxE3YlFJqZe9Jj9KPFh4N36DNu+zm3+hHjNYnb+6wOiH7iBiJl/os+OK8nZXRfY8QJt52mLA8xZpIzvi4pG/XcfU9ahIp06qj6/mZV5t9L7oquI75WJzQH+yr3U7F5M/sJXyd9fFsSn8TvbPwPfukdZ55pC3JCJRPfIwB6ZgC3UAd5K3Ee2Ur75E/KWzqOqJlhz/9VTOXcWq4vvp8/0y4lJTcTiqMN9cAlFS//K3pWFJD0cvDhjzxy2z60ivv8IwhJTsIWGYFL9+GsOU7tvJYXfvMnBzXvxt3gRTvX1O4UUO+mDejAyoXlNiSMxiRGJx//vt+6hpVUvRRv8BcxfXMKNt8UxcVIqL27Ka60A7iRqcj8u7KOiV+xi/hr32XlvNaVV8eXT/+Tgd+O57YoBjMyMJNKmU3XkMNnfbuGddzewviSIc4sGKHxqPWlhoO9ysmtnJ2reNDM7/xiNfmsN/cf4CA0Fb4GNg/ND2bIE+r/Qclj14ghWutykDPUS01MjNFLHrKm48y0Uf2dn56dOSiqC0zfoQv9OpJvY/Uw02k01DJzgJTxKx64Amo7ppDkodML7eUmIa74Lc7yP+BOmGzWstoapsZvc7P6cUL5ZYGHYjfWk99OwekxU7rKx54NQdm1Xm302zvX+AaCZyH8tmnmrXfS/2E3KQD8h4QbUmqjYY6FwlZOcxaagfG8EfH9qJg78JYbqLXUMmuEhoaeG3QreIgsl6x3s+MhBUVkwa0oVyv4bxYL99Qy+wk1yXz9OB/grzVTssLHvkxD27W7lfAohhBBCCCGEEEK0Q+mTlijjCkIIIc4YauIoXnnnMkbVbuL+Gz9jVbsl8Sp9Z/+If8+O49C7b3DdK6d/DcTvDauXUX8rZ0CCSt5zsXyzstNLSZ/ZpH9CCCGEEEIIIYQQQnSajDIJIYQ4o+iF2by5qApiBnL9hWHtrx/n6Mm1l8ej1u3jXx8dlsTjKWQfV0/vBDCOOMhZe+79SSH9E0IIIYQQQgghhBCi8zq35qMQQgjR7byse2cFa6ZfxvjrRzPwy6VsbzWjqJB88XlcEqez7+1lLCiWYv5Tx8BuWMh534wnx0HJOZf1lf4JIYQQQgghhBBCCBEImXZVCCHEGchExgXjuKi3xrZFa1l1pJWfKsXBsMtGMy6mmlUfbWZb7altpRBCCCGEEEIIIYQQQoiTSfJRCCGEEEIIIYQQQgghhBBCCBEUssCPEEIIIYQQQgghhBBCCCGEECIoJPkohBBCCCGEEEIIIYQQQgghhAgKST4KIYQQQgghhBBCCCGEEEIIIYJCko9CCCGEEEIIIYQQQgghhBBCiKCQ5KMQQgghhBBCCCGEEEIIIYQQIiiCk3w0xXLLK79hw5LZ3JKmBGWXHWLpzaOfPcamb+7nwSEndEUJ4eoXHmHTykd47arwzndScTL9iYfZsPwn/GK4NZgtbnKcLrZTCCGEEEIIIYQQQgghhBBCiDNIUPJdMVOmcPsgM8VfLufjQ0Ywdnl6GfUsfXsdu/Rorrp3ND1Np7tBbVCjmXzTJO65fQxj405h4lcIIYQQQgghhBBCCCGEEEKIJrqefLQkcf0t/YnUCvn4v7nUBaFRZwJt/0beW+fBOmAcs8fbOWPTeqYYJs+axN23jWGcJB+FEEIIIYQQQgghhBBCCCHEadTl5GPouLFc1VPFm72JeQf0YLTpzGDUsnReDhWEMu26ISTKnKhCCCGEEEIIIYQQQgghhBBCtKlrKTUlhAtnDiBa8bFh8U6KzqHcI0Dd+m0srzCwDR3B5RlSVSiEEEIIIYQQQgghhBBCCCFEW8xdCVai+3HRCCv4D7B8XR3trvZoj2X6LVO4ZXpP+sRZ8ZUVsXbBMv70ns5d/7mJqyIreft//8YLW0/OYirOOGbcPJmbpmaQGWfBW1rEmkWrePkDX0daSdSQMdx9+0imDIomzHBxaMduPvm/Zfxncy1aW6Hugyxf7+IHF8UzY0oCb+wvbHv7LuloOxUybrqDD+9NaXLxYrjttUe57cSXfAf4f9f/H+8XnwPrcAohhBBCCCGEEEIIIYQQQogzXpeSj2Ej+jDMBvq+A2wqayfB5Ujhrhdu5p4hdlQDNI8HLSqJqbffwICUDexupQZTCU3nvhdncccAG4ph4HN70ONSmHH7dYzom80eU9uHdQ69kFfuG0qmTcdd7wNnGJljRvLwyEyG/v4tfru4so2EopfsjYfxzcgkY1xvUt8sJK+bqjs700530RE2bvbT0HUHPQbHE2vyUbjnMAX1J+zUX0SxTxKPQgghhBBCCCGEEEIIIYQQ4tToQvLRRP9hKTgUg5o9h8lrsyTQzPDZV/KjwXaozeftp+fy6soy6lQng6+4nP93/ygmqS1Na2pl9F1Xcnt/G0blAV5/ai5vrqvCbQ5jxNWX8/R9wxivQOsllyYGTh1C3c7VPPTkMpbne1EikrjigWv49bRoZjx0Geu2/puPC1tP0FXvOcwhPZPevdIZGraKvKoOn6BO6Ew7DQqXzOfuJY2hlj48MfdGfhBazaLn/4+/7DjH5r4VQgghhBBCCCGEEEIIIYQQZ43A13xUw+jby4mKwaED5fjb2FQJ789Nl8dixsvaf/yXP39TRp0O+OvZ9vFcnvq8usWWKFEDmHVxFCbDzYq/f8Q/1lbhNgBfDRv/8wl/WFiN0d5SjO4D/O3xxXyd70UHtKojfPLMXN4/pKOE9uLGyxJoq3hSyy/hoB8USzz9enRticzubKcQQgghhBBCCCGEEEIIIYQQp1sXko8RJCeoYOiUltbSVr2ddUgmo0PAcO1j3ldVTbb1sv7LnRxpYQf2Ib0Z4WyIm7+i9uQCR8PNmgU7KWyn0M+9aQtfNK1s9BSw8OsyNFR6jO5JUltnwVtLcZUBSijJCZa2D9YFXW6nEEIIIYQQQgghhBBCCCGEEKdZ4OksxU54qAJo1NW1WfdIUkYsISpo+YXsrmu+hT+3kH3NdqGQ2CMGhwJafhF761uI23+EvW0dGp0je4qpaTarqs6BvcV4DDClxpHeVkmh4aGu3gBFISzM1oUT1s3tFEIIIYQQQgghhBBCCCGEEOI060IuTcFsAtDR2qw+VAiPdKACenUdlS0tr+iup8rTPC4s4mhcPdUtxBktxp20BVVVrhaXhPRXu6gzQHU6CG8zqaejNa5nqZq6q/QwGO0UQgghhBBCCCGEEEIIIYQQ4vTqQjbNj8ttAGZs1nYWXmxvXcbWGC2l44LkWJuMFpN+x7ezYLM1bOx2+9retjt0tJ1CCCGEEEIIIYQQQgghhBBCnGaBJx/1WkrKDVBUoqIcbeQXDaor3eiAGu4ksqUNbU4ibC3EVR2Pi2ghTrG3FHfSFkREtNw2c5iDEAX0WhfVWlu7cBIToYDho6zM3U0JwCC0UwghhBBCCCGEEEIIIYQQQojTLPDko1ZBbr6GgUpySgStzwhqUHiglDodTClJ9HE238LcM4Fe5hbi8kqpN8CUmkDvluJ6JZHZLO5EKsl9EghvltVTyciMx6aAll9CXhtJPTU6imQ7oJWTW9Dm/LJd0JV26ugGoCiogVaYCiGEEEIIIYQQQgghhBBCCBEEXZh21UtOTikaCnE941tInB3n2bqH9fWgOHsx88LwJge1MGL6AJJbaIkney8b6kFx9OayiaEnVwYqdsZdOoDEdnpgyxrKjMQmjbOlcMmUGEzo7F+3n8I2cormjAQyTKBXHWHH4e6b+DTgdhoeamppqNCMkkUhhRBCCCGEEEIIIYQQQgghxOnTheSjwaENuRzWwdI/jUHWNras2sW/55ehYWPcPVdz79gIrACqjcxLLue3M8PRW0isGVW7eG9RBZpiZ+L/Xs3dYyOwKYAllKzrf8hvLwlHaS8faM/gf5+YxuRUKwpgikjiyl/8gOvTVPTqvbzASZcWAAAgAElEQVS3oITWc48qvYamEKFC3eb9bPO1f1YCFmg7tTJ25fowFBvnXzGcnvZubKMQQgghhBBCCCGEEEIIIYQQbWhz0tL2+HflsPzweG5J7sl5A02s2NTa/KU+Ns2Zy+uDbuZHg9O58/n7uamqlhrVSWyYSsHCdSw/byxTw5vGeVn/+lzeHHgTdwzI4O7nf8rtLg8+sw2nxaB4xWa+HTaM88Naa6HGjiXbsEw8jxfeG4er1ovqtGM3geGvYMHz85lX3Eb2Uo1i3OhYTIabNd/sp77TZ6ijutBOw8WKuVs5fN5IUs67lA8+PZ+Dh+vx6ID/MG/9+nO+LO+2hgshhBBCCCGEEEIIIYQQQghxTBcqHwF/AfMXl+BXwpk4KZU2ih8x6vN57Wdz+M3bO9lW6EEJDcFZX8xXb/6He/68jxoFMPx4vU3iag/y8k//yW/e3sHWI240iwl/aT5fzPkPd/5hG0VtrNcIUL/1a+772QI+Wl9GvcmC4q5h79r1PPvTOTy2tLqNqkdQk/txYR8VvWIX89e46b5JV7vWzpq1i7j3kWUs3FxKJaFkZCYxoF8SA/rGEG2WhSCFEEIIIYQQQgghhBBCCCHEqaH0SUvsUk5NTRzFK+9cxqjaTdx/42escgXQiPBh/HnulVyg5PKHa/6P/5Z1pUXBotJ39o/49+w4Dr37Bte9UkB3zroqhBBCCCGEEEIIIYQQQgghxNmua5WPgF6YzZuLqiBmINdfGEYgdXahw3sz2AzawUNsrexqi4LE0ZNrL49HrdvHvz46LIlHIYQQQgghhBBCCCGEEEIIIdrR5eQjeFn3zgrW1FsZf/1oBlpa3kqJ6stdPx7LlP5h2I9lKBXC+4zgtz8eRJTiZfPnW9jTzjSqp4ZC8sXncUmczr6PlrGgrXUhhRBCCCGEEEIIIYQQQgghhBAAmIOxE71wM8/9wc5FvTUiYxU40jxZp1giGXP1xdx3w8X4aqspKHKhhYSTluDAisaR5Yt4am55m2sbnjKKnThfHm//cyurPjqMt/0IIYQQQgghhBBCCCGEEEIIIb73urzmY4fZ45h63Uimj+jB4Mxo4sPM6O56juw7yPKFq3l7QT5lZ0TVoxBCCCGEEEIIIYQQQgghhBAiEKcu+SiEEEIIIYQQQgghhBBCCCGEOKcFYc1HIYQQQgghhBBCCCGEEEIIIYSQ5KMQQgghhBBCCCGEEEIIIYQQIkgk+SiEEEIIIYQQQgghhBBCCCGECApJPgohhBBCCCGEEEIIIYQQQgghgsJ8uhsgRLcypxJ36c/pfd5EIuKiMZlNKPioeH8KqxfmYZzu9olzgIlJj/6cFy+ysP9f/+T614+gne4mnQtMsdzytx/xQJ9C/nz7m7x9qJVPq+Jk+uP38cwUD//56as8u9l76tpoieD8WRcye0Yv+iWH4DQrKIpG9t/+zu3vV6CfupaIM4ySVMfFL9cQazr59fJ3YlnwgbkTvz0GaQ8WM3myQdUHMcx7x9JyrKLT54kSxmVB0auxLJ5v6tbft3O9f0IIIYQQQgghhBCia7qWfLT35w+fXM/FdWu484Yv2OQH8+DpfPzyeUQt/YCLn9hJ3UkBKvEjxnDXTcOZODiWWKtG5eEjrFmyhtffyyHP3aXWBJEZ+4DbyLzsOuIze2Oz+PCVbKV0zT/Zs/AL6jxnyvHO5DgFy4Q3mHrXNEyt7e4YA9+3d7Dk1cXNB+vtvUmYeifpoy8gIjkJi1KHt+IQNXu+5sjXb5K/t7SNAcgQYq5/l1EzeqHix19bgtvjx8CPx9VSeqiT50UJIWTwTBIHjyGq1yDCEtOxhdjBU4qrYBMla98md9kKXL52T0DD7mJvYvRTTxPnVDFcH7Hhxw9Q5O9YbPcwE3PLKsZOS0ZpbROjnEMvjCI7u5VOdvL6KeFDSBh/JYnDxhOV1hNbiA3DXYrr0HcUf/smuSvX4+lgZu/MO5+nh2LXGTfGwyXD/QxJ1om2G3hqTezebeHjL218Xai0+BkKNC5YYqZM4fZBZoo/X87HrSUeAYx6lr69jl2TpnDVvaP58L5V5J6S7K+VUffdwp+vicGMjqu6liKXjoFGSb2kHY9R/Qx+toysPlD4aixLFpxjSaPW+uc1Ub7Nitb4A2hP8xIRcTobGqBzvX8C7H7SLq2nzwQPsak6VkXBXWaiMsfGgUVO9uWo59ZnVgghhBBCCCGEEKdEl5KP5sx0hoRA3dqD7PIDKCQOTidR0dicXYDrpK1NZFxxLa8+1I94E2AYaLqJ6B49uOyOdCaOWcaPH/qGrfVdaVEwWAiZ/Crjbp2GXVUADV23YE0aR8oPxxA/+AXWPf9XKt3BGooJ9HhnS1xHaNQV5DYb3FLirmDIg8+Tmuw4IfkViT0hEnvCIMK1dRTsXd76oJhjMukTe6Lqhyl49Sqy1xS0UYkUQP/U3qTO+iOZyU0+Rs5EQvtcQmifi0id+CabX3iS4sp2khFKLInXPUys89yZCbnT1y/sakY8+yKJjiapzpAkwvpfQVj/y0g9/y9s/MufKa9r5z47xefTVVZO3kEzBZX+M2qQVo308uTD9UyJ4KQEsiVCY8RojayhPt59NZRX9pycSAw0LmgsSVx/S38itUJe+W9uk4dYmtP2b+S9defxu/HjmD1+A4+tdHf/dQjJ5JpLYzAb1Sx88g0eX1JFB58z+F4xD66nb6YBlQ5ylp1jiUda759RZmfto/aj/yPjl8VMPD+w3vvKzVQXGNRWt/oYSLc51/v3facmuhn3aBW90068dgaOZB1Hso9ov4X9ObZz7nMrhBBCCCGEEEKI7teF5KNC4uC0Y4lGN4BiZ9iwBMx6GZu31Z6U6DFljOWJ+/sRr2ocWrKI3/51E9uqLPSaNIUnfzmagYMn8dRdedz4l7wmSctTS0m+g2GzpmFXfdStfYLN775PZa2TsJEPMXT2rUT2eYBhV69l5btrgjK1YqDHO/PjDHxrfsLSLdY2+v4jxvzqfwnTNnJ47f6TB7esw+nzkz+RmmyD2i0c+vzvHMreistlwRqTTmjvKcSZ6tscEFNi+hBqVTC831G4oa3EY6DnxYc3/2sObVhN2f6d1JcV4q6qxnCkEjH0ZvpceTURPW5n2K3bWPHX/9J6XlbBMvhh+o8Oo74wH0diauuVhqeFjvubu1j5wfrm59vQ0Vsq7Qzk+pmcmC0a3oJlHF45j+KcbGrLa1DC+xJ7wYP0nToSW78HyLolhxWvLsR7xpxPjXUvv8YPX+7WgwTGppMUorBvs40PV1lYc8BEpaHTc6CX+691kxWmccO1HpY8Y2e3HoS4IAkdN5areqp4N21i3oEOHMCoZem8HB4YP4xp1w3h5W+/40g3Fx+qiXH0tIHhPsiSbyTx2CJFp8cVbkIUqFzspOC0P1wUZKekfwqFb8Xw6Vvdse/2Dn2O9+/7zupj6K8aEo9GjYV9H4awb4OFWhfY4vxE9vOQrJ5Zf40IIYQQQgghhBDi7BF48lGxMXRYPGa9/Hii0ZzMiEFmjKp8NuWeOPJrYfS1YxliBy1vLY8+s56tbgCNfUsX8cuYeP5zfwbpl57PjLfz+LS8a50KnIOYGbOJtCnoR95kyz/fptILUEXNut+xKbI/E28aT8jEe0j6fC35VV19FjzQ450lcf5avDWt9d1MxNAZhKoG+s5POFJ64v2i4rzg1/TsYYfaFex4+nYOFByf89Rdnkv1nuUcbu/0Wh2oCuD3oLd5qQLsn7aT3L/Pbr67ymLcRzZRWRvOpLsuwjL0WhKiPiavvJVsiHUEvW+8HnvJu2xemsGwWWda8tHA8NbgrSnvYPVDgNfPs5W8ly+idONu/CceqLKIg+9uoo75jJneC9uoW0n64Iuz+HyeOkadhVf/bGN9nnJC8l1l9yY7j5g1PvgfH6HxfkZGw+7SrscFhRLChTMHEK34WL14J0UdTCLWrd/G8oqhXDl0BJdnrOf1/d1bq6PYLFgVMHz+NhLh329KWj39R+jgsbFrkeWcWwNT+ifOZqHTaxjQ04AaG+t/HUnOweO/lPWlJip22sg9je0TQgghhBBCCCHE2S3w5KM5mawBFoyqfDY3VqaYMtIZGqHgWZ3HjhPXVrOkMvX8MFR0ti3Y2Jh4PMqg4IsNrL4zg6nODC4c6+SzhW1XtHUb80gSsxJQ8FO14r3GBNRRGvWr3qX0qnEkOsaTOCSK/JXlgIJ15AtM+PHV2F0r2P67W8lrurCcEk/SvQvIGhuHf8cTrHr+Teq0QI93FsW1xTKa1HG9UKmjaNXCk6sC1d4kXzAGM14qFjxGXkEHF9lUokl78DuGDm1SbRl6HaPnXHfCCz4q3p/C6oV5DfdZd/QPA+++jdTpFxGppuCMUaHFZJmZsIseJyOpkqJX/0q57U9td9GZSczomSQOHUdkcjr26HgsJi/esl1UZs/lwMJ3KStvXoMVaFxAAr1+rs0UbmjlPaOW8tVf4pp6DyHmvoQlm4JyPgNmGcizX1zL9JNuNZ19//on179+pOWqaMXJlc89yOPjYONf/sa9y6K48a5JXHleMikhBlWHDrL4P0v4+4Ii2ptVtqOMWhPralt+r6ZEpVyHUAxsluDEBYMS3Y+LRljBf4Dl6+o6/lvgPsjy9S5+cFE8M6Yk8Mb+wqBUpx9v2NHr12QV24jhvPT18BNe0Mj+29+5/f2Kk5M1ahjXvfhTfj0S1j73Z+6brzL6msnMntmXwSkOzJ46Du7cy2f/+op3Np3Qb9VOv+nncdvM/ozMjCTSqlNdXEL26i28885GNpadcJSjbRxTy4d/XIL30gv5wYAQ6nK388rTC1nqGMlvHz6fiT0sVOZs4S9/+IIvD3dXSskg6XIXUWZwLXOS2zRJrehkPlbC+JFQ/M9YvvysyZSsJh/D/1zGkHSF3D/Gs3KN0iw+ZkodA6d6iO+pYbeDv0qlvshC8UYbuV85KC5roVmKRr+nShkzFApfjmPJYoPEmbUMnu4hNllH9ahU77Gx74Mwdmxta9rmdvrXFRY3F7xfSY8mn6+qD2KY946lQ58J+4B6ht5QT1o/DauhUrPbxt4PQ8nZ1tH1+87F/hk4B7kYcKmb5P5+QiMNVK9K9X4LBd842fW1lTpvq8GdE/D9qRM9qY5BMzwk9NSwWcFbaqZkvYMd/3VSXBGk9ql+ek7zYkah9OMwdh38vj6iI4QQQgghhBBCiO7SieSjidE/vosnJtsbqohUK9ExCop/AI//u1fDIK/NSYIKRtZ03vvwQkBj06tzeGxPKoMiFdAr2Zxd0ezpeaM2n417NaYOMzNwSCLmhftPyxR2SkIWkWEq6PlU7M5rPoBVv4GyQ34S+9qJ7DMIdeUKdAy8G3/H1m9GM2ryBPrdfiulz81pSC4CoGIf9ySDxiRA7VJ2vvF/x94L7HhnT1xbzIOuJSnGhFH3NQWbT07mKZHnE5tixvCvbT4da1sMH+78tZRZG0c0HelE9khG1Uqo2bsP37Ed+aktO54B747+gYIlYwhOFdAr8Na03Asl7kYGXjYMY+/v2bWuBGNiW/s0ETLtr4y+eggqYBh+dHcNfr8TW+JIEhNHkHDeZex64Xb27asNQlzz46t2O3jr0Ns4AQFfv/a4qxsqIhWN1i5A585nV9Sxf0seGxpvtYj0NHpHdzxajRvIE69M5eIEFV3TUUwqsb0yufGXySQbr/HggqpurjIy6DvET7IKeoWZbR1OLAQa13FhI/owzAb6vgNsKuvM3eMle+NhfDMyyRjXm9Q3C8kL5kk0NEr25bHB3pB8VJxRDOwTjk2rZd+2MqqObaizr9jf2l4amKKY+btrePSCcExHx/zNYWSOGsZVOev596a6ht9UUwTTf3ULT10cg00B3eelzmsiKiWVKdemMunCfjz34Ae8v6/JL6YSwsUP/ACL5sFnspIwIItfPxHOpeE9Ge5w4cJK0rAxPPbAETb+cjOl3fC0jxLtpv8FGopmZs/ntuD+pis6qfeVM2mGH1UBw6virgLVqRM5wE3kQA/h1TYWL2pnzVeTn96/qGLcOA3l6HVw6kQOc9Fnj5OdW1tPZHVr/wyVqu1Wihr/QrOleomM7Hi4eUAt025zEWkFv0tBcWhEZtUzaqiH2D9Hs3J5+2tvnnP9M2mkzq5kwuU+LApggFavolk1IgdrRA7xEGeN5ct5QViXNND706TR4ycVTJjib5y1QcHnBVuij7SZPlIneFj/eCQ5B7qeKFSivST1ADQLuSvMsqajEEIIIYQQQgghgq5TlY/28HCSEh0nT2FosROfaD95w5BQkkIANA46VczJMaSYAH8FeY1VFtbYRAbFudmVU0m9XsPBAi/6MAcRKTFEqfspPg3zeylxvXCaAH8etSUNGUI1chCR0VVU5+bjN4qoL67D6BuJJb4nVmVFQ8WeUUnJ+78gr987ZAx4mKEzVrB24e6GxF30VQyadQk2Sih899fkl2hdPt7ZEtf6iY4kfsIMrIqOd9MnlDQp81KSBxBqAkqzqaqOI2bGA/SePJ3I+EgUdyG1e74if9HLHNxV1GTArIaS/8yi5Oh+ev2GCx69lxDX1+x69iFaywcEpX+KiqKqgBlzRE8is26l79WXYlUM/Hs+obC4hRosJZ6k6x8kxrqP/R+8TZ0Ora+Q2chXSMXKxRSsXUzJnhzcLj+gYooZRer1zzNg7Fj63nEfpY8+S5UWhLiGs4F11LNMPi8Vh9MMej2e/O8oWvUa+776hqZLPgZ+/dqiYE4bgtMEhmc7lfktXMxAzmegfHn842dvNf7HxKRHf86LF3W0DNBE/6smk7F7NQ8/vJLlB9xYEntx22+v4a4sJxNuHs3AL5ewrZ38VVckj3Tx1FQNk6Gy7DMbGzuYWQg0ruNM9B+WgkMxqNlzmLxOli5W7znMIT2T3r3SGRq2iryq9mM6zsOqV95m1dGWDpzGR6+cT1rdXv7ys09Z2eFzoRAzbQYPDlTJ/mQhby3ax+5iL+bIWLKmjGaa7/h2KVdcwWMXx2DVq1j28if88ZM8ir0qEX2GcP8jl/HD3pk8+NhEtt65lO0nHl8x4V8/l2sezaayxwRemzOVYb17MWDtAq7+1XqOxI7ipbcuY1xWX0Y6N/NFXbDO0XGRF9WR7ADfxhD2BHnuRqV3HSOm+VE1M/v/HsH6ZRY8GqAY2FJ9pE1yEdnWcxQAGNgn1jCyn0HJgnC2f22lolRBidBIOL+e9HauZ3f2D7+VLY8dfZrBIO3BYiZP7ui3pUHMRBe+PSEseyGU/MMKhPnI/FElYy7QyLinmsKdUewpbnsv51b/DKKvqWTi5T7MukrhJ+Fs+MxGeaUCioGzt4fe19YSH6TuBXp/hs6oZvwUP6pu4tBbEaxbaKXeC7ZeLrIeqKZPhoeRD9VR8mAoZV387lXS/ESYwCi2UF6lkzCzliEXuYlNMlDqVapybOybG8qe7apMtyuEEEIIIYQQQoiAdCL5qLHi6WcZ8TSAhQse+RkvzvDywf0v8f82a2BO5cF3Z3NzxHZ+/sOP+Mp1PDLyshDsChj+eipqQE0eyYuvX8Z54X5y3nqLW+cUUllRj4EDNTKESAXaGRfrBgrm8JiGyjCtAm+dgRJ3E6OeeJq4UDdVn17Htx9vx1tVhkEkhMdhVcF9dHDc9S2757xOzC/vJeqHz9Fz+7XsOxRP6q2PkhBu4Fr9KNtWHz4h2RLo8c6WuDZOdcQlpA4NR9GPUPjtCk7OsSiYIhMwK2BU6UTd9jH9zk9HMbxoXh01LJ3IEbOJGH4pcW/fxMalu7s4MBaM/ilYzp/D1LumcfKEjH48e99k66v/oq5ZIxUsQ39Ov5HReFb/iv173dDuyoQatYtms6bZGK2OVraOvDeeJKL/HNKSLiYx/QWqcv1djDveVlNkBs6j/1Wd2NMn0SN9IkmjXmLDi3+i/FgCuZuun7kvPS66EDM6nu/epahZJWkg5/P0sXr28tQjS1jaWPSrFe7ntT+t5oK3LmRAcgYjExW25XdPLUry6Hr+epOXZFVh0+chPL2hY4PLgcZ1ihpG315OVAwOHSins/lXLb+Eg37ItMTTr4fKvOwzcdhcJXNwLGtfmsP9H5ZybJbH0hry9+Yy39S4zqYpiauvySBUMcifO5ff/iePegB0qvZs4enHQ8mcM42hPUcya/wqfvvNCdMbGxpbV+ymRAcjbw+rD05hWKbBjm9yKPCBUbSfNbk64wdE0zNRhX1BPk8OD/1n+FEMEwfm2akP8q1s7+MjzAT6diebl1rwHN2/oeA5ZGXvOx177CBygEbhnGiWfmY+PkVvuYnaXCv7TbT+cEQ396/LPFY2PRfGoaLG/9dY2PNSBOGZ5QxM8dB/mo+9/25jetNzrH9KjJvhP/Q1TDH6XhRLP7Acv96GQv1eO1ufsWELa+Oad0JA96fJR5+ZHiwK1C6KYOWn1mPff579DtY+pxP1Yg2x6fUMGBnSfBriTjJHaQ1r1lZA7H1ljJisoaDg94ApXCNmbD0xozwkvxbFNwvNwZ3CWgghhBBCCCGEEN8L7cxJ1gpTPFmDbCiuAjbtaawUi09jaLyCb/dBtp20xJuC3W5GAQyvH7cB5sweDAtXQLHQOyuVaBU8noZhFsVmwXZacgYKqrVxSlmfG80AJX0cUaEq4CSs3wisCmjehs4pFkezk+ff8yLZn29Ft2XRZ/b9JE3/I/2HRWGUfMi2dxccH4Dq0vHOlrjWqDjHXku0TcEonc/hXe4m7yuY7E4UQEmZReb4aGq++gkrf9yPL37Uly9/dh07NuZjqInEz3qOjGRTSwfphGD37ygvrq0vsvmlpykqb2HYzjaKzBuuweFZxd5PFuPteNFH6zw5VBdqoKYQEtd0Eb/A4vxFy8n74D5WPzKRJfdksvCuoXz95N3krN2NHxVrn5+QdcslWI99Zrvj+tkIv+QZeveyQfVicj7+6oQpdI9uEuD5PC0MatZms6zJ0qF6/iGyKwxQI0hNDOyruT3h/V08P6shgbjx81B+sdjUofUlA43rNDWC5AQVDJ3S0trOJze9tRRXGaCEkpzQDQtSBol2aD0vfXJC4vEEutZwYtW0XoxNUUEr5YsFBxsTjyfsI28L87L9GKqDMWNSOKm3hpfyCl/Dx96op7zSAEOjrNzV+JqLymoDFAeREcHvn/OCejKiwTjgIGdLN/ygN957SqiOrQsfFSPfwcb5LSdWjDayLd3evy7yb3VwoOkTXF4ruasaptcMH+4ltI1mn2v9c4x2k+QAquxsnWdpOZFmKHiqg9TXAO5PJdlLUhKgmTnwlbXZgxdGvoN9OxRQdBKzfAH+8X6cxdH4PZNez9BJOhULIvn85gTeuy6B9++IZv0aE4aqkXpHFf3TungwIYQQQgghhBBCfC91atrVo9T4NIYlqvi355HdWOEYMjCNPmadQ1sPUdp0xFg5eUDHt3ED/87OYFaPWhZ+mEOxDmGBNCTYmrRT3/kuubvH8//Zu8/wOKqz4eP/M7N9Ja16s4rlJndb7sYNYzqYZnqoBtKehNCSJ+QNoSQBAklIQkKAxEAeIBAIGGIMBhPTbFxwr3KVZcuyel9tnZn3wwpbllaytFrJhfO7Lj54d8+cuWdmZ8W55z6nf0YFpUuX4DOg8+FsL/Xv3cvukQvJH3wnBXmAVkTxi7+kItyaf5H2d6q0C0cZTL9pBSgEaVq9kNpwpU0t/Ql7DGy5n3Uvv4On5fBpNasoeu4nOB99mdykMeTMGEPRv9b3rFqhx/EZBJbfypLlgGLBnJBP4qTbGXLpvUx69ByKnp1P4ebKVvtoJu68B8nNNGh89zEOVnYnxSIwZZxNzjnXkDZsNLEpKZjMKuKYKj8D1WoDPD1sF6T+o59w7MyVPpr3vs/ev35JfdM7TJwzEOvE75L17ofsO/z1YqbRPH8Cy5gHKbhsPGqwiIMLfsqh6rbHqyfH80QwKN1fTdu0O4aPxiYDks3YbeHa9ZCqcf08H7kmKPrEyU+7mkCMtF0khI24GAFouN0RzDtr+HA3GyAEsbFWFHwn4ZSBBpVr97DzOOGZ+qWQrYLhKWdHuMUrjWZ27m7AmJiIKyeJRGUf5a3WtfUeycAH8QcAI4jv62ynEcQXMAATVnOUk0tqgCEX+zAhKFnkoK4XSqa82y3UBf0k5riZ9YDBjqVWDm8z01AnuvVb4Nlspba7+9cH8fWUu8gU9gGMhiITmhHElBEkVoXGcNfgaRefQfygAIoAbZeFinY33uiL5PpUMoLEKYDXRPXBMB8wFGr2KRhjNaxZQWzC0rOK1CNrnBqwIY5Pn7cdua8HqyzseMpF3NM1DEkNMHhOgB0vmU/Ce6kkSZIkSZIkSZIkSSeziJKPjhE5DDHplGwpITTOrzJsTD9shofNm6vaPFVu4PWEKjCExYQVMJqKeeZ/fs8zRz6jYLWGdsXwBdpUCPYVA90XqgoRZmto+szmVez69QR2HfmMCdViDX064Ak/EBMsZN9Lz5LxyL24VB3PFw+yc1tDFPs7VdqFp+TNIzPbhNC2cnjV9jADcQa639vyupuqL949krg6wruKsk1V5JyVhn1QATaxvv1nuiy68aH7CVRvofyDu6gt9THtruvI+85vaHzgdkpqQi1F2rcYduFolOrXKFyytRsDegq28Y8y6bvXE2sRGMF6PGXbaHR7MAwAM7bsApxOECZTFNp1wqijetECamb+mmTzcJKHJLDvcBXRPX8C08AfMeF73yJGrabi5fls21jV/lMRH88TxcDTdqHMltdD50Og9ELho5IUZEIKCM3EO5+aaOridybSdpERmFQAHS2iE6mjtfwAKWrvVI/2nE5Zaf1xr1NbnB2rAKOpmfqwiUqD+rpmdBIRsQ7igPJW7xlHpno00HQD0NH1Vu/rgFBQe1o83oZ5fDODcsCoslO4onfOgXHAyZcLgpx5q5eYcW4mjnODAYFqM9VbrOxd5KBoj3KcRKTAXXemufYAACAASURBVKZ2+8GVvoivZwS+hvD7pTcqBACTw8BqgnDzGp+O8dniQ2fZX60S7IO/LyO5PtUYHVWA4VbwdfBggr9BATREjI5F0KPko+ZryT4agsMf29s/UOIxc2CdwpALdJz5ARzC3Mv3fkmSJEmSJEmSJEmSTjddTj7e/cIPOcsZGqwwxcThEAoZF1/FO2cZgMCRFIcigpz1k+8zMQgEi3n6++/yUT0017nxGmAxOUiMA6rbbl0QnxCaqlGrc1N3gpKPwcZqdEBVE7HECNrviMDiSgpNIdtQiT/s6LEd1+TziFEFoGAbdQlJcZ9R3tB2W5H2d6q0C8dG4vRLcCoG2p6FlJaGneyOYFNdqD/9MO7ycGUKOp6qUgzSIC4NqwKeiKszohnfsdv1b3mBkpKrGJJzJjmTszn0QTGGSCB93l0k2eqpePUPVHVn9NB5PkNvuY5Yi4/GL37GxtcW0tC6Okxk0f/+zxmR32a1w0jbHS/Chu001Ogkp6nYktIQVGFE8fwpmTdQ8KO7iLe5qX3ndjYs29M+YdOT4/kNI+x6aCpCXVDX1PvtIhPE4zXAasJqiaAiT5ixWgVg4PUGorJ+W2/weYMnzb5Fte5RaAyY68WOoHqJg7JeqzIT1C6O5z+rAmRP95IxIkDykACupADpswOkT/eQ9kQSK1d3njzTfN2rlOy7+HpJq5Md/nmP0zy+PhOd67M3BRoFmgGKrlJfGu4uIHCXqxjoiAQNmwJNJ2EVrCRJkiRJkiRJkiRJJ68uJx+T+iWS5Tz2NVtCPFkJx27OlZaACyBQg7NlXCV4qJpDGsSpCeRkKtB22kQlhpx+FhQMag9VU3uCSpeMin00a+BScnGmqFDX5vFzkYYj1YlAx19RFHbaL1P+fYy+cCSKbwfVJWkkDpzHyBs/pf6Z/+Bt8/lI+ztV2rVjn0m/CRkIfNR+uZjmDs6zUVmMV+/GVK49FLX42m24Em+9DphwZuYhCCUf7ckuhDCRdvsaLry9g7b2eUxYMA+op+SpcWza6EcdegGpcQpG5Wts+783aWi7YJyShDUulHhpLdJ2xyeODPYaxtG20Th/IvlSRt/zCCmuAI1Lv8fad9eFr1jpwfH8Jot0YL7XB/T1JiprDIhXSEiwI2jsZnLIQZJLgBGgutp70iT4IuFt9OA3wBzjxBW2Sk3ginegAFpTM+Hq6/uaMqiZ/JEGNNsoXGo67vE3Ov2AgcnaeXut2sz+d83sfxcQBs7hHsZ+t5EBuRoDb3Kza20s1VFMmHQ3vhPDwBqnA+1LWpUYPXRfdiv4w1TXna7xeetCv2+WJA2ToM/WBO7O9ak1KWgGmJ16qGoz3FLRcS3zUTQpPY5BrzDh1iG+Z5uRJEmSJEmSJEmSJEnqUJcfu/75eQ9TMP1hxl22mNUBCG7/mMtmhl4742dbqDcMSl5fwMTpodcKZr/CwtpQW/3QIbbVGaC4GDs6oV2nwpnNuEEqGEG2bS0LNxNYnzDKN1LXqIOSScKQnPYVIY5xJGabAC91e7a3r8JyzmLobfOJMTVT++4PWfPnhylvANvERxg5I6vd9iLt71RpdyyBpeAq0uIUDN+XlK4t7XBg0yjbRH2zDkoGzrRwi98p2JMzQ/tRX4avh8nq6MQXbjczcSSFrnZD6+kIuII5IQ0V0Ct20RRm1k6ROJHElLYDspG2Oz7hGoErUQGCeCsPHzmfPT1/wnU2I+79HZkpBs0r7mHtPz/rs8Hi05l22Mr/PhHLzb+1syrcrK9RbhcRrZaiEg0Dhcx+rjDphc4piQlk2gCthqJDJ/8EvJ0JllRyQANhTWNYbpifauEkf0gcAoP6A9XUnOhwhU7WJR5cKjR96uBA3XE+bwiCPgADS2yYnY/RiEvsRv+GwL3Nwco/OWjQQKQHSXB0o/3xdDe+NrSWP2yUiCa7756YAUGsYYrZ4vKCqAL0UpWGtj9Jp218gro9JnQD1Hw/afbe37+wjnN96odNNOiAJUhSdpj2QidhoI4AfIdM7R5m6/buHDJT0wwoGq7McBszcKZpoRkfalU8J/r+IkmSJEmSJEmSJEnSKafbcz7Zh+cyzGRQtvkAobFdhfwx2cQaXjZtLA+fOAwcZNmXjegoDL+ggBHHVDMI+p0zjikOMDz7Wba6+cQ9bR9cS9nGcgxMuKZfi8vS+k0Vx9TrSbELDO9KyrbUHNtWJJN2/ePkpKkEd/6OLUt2ote8w7ZXFuMlidRrnyA3vc2oXKT9nSrtjjk+6aRPn4kJg+CWt8NMQ9tKYA0V2xowcJI84xLsbQcZbVNIH5OMIEjz7nU9HoSLND7FlYW1w/I+BWvB7fRLNwF+Gop3ha5rfR/7Hslj8c3ZYf7LYekLn6IBhuct1t6WzeKbR7ZU6ekE3Q0YgJKch6NtVkbEkXTBzcSb2h6sSNsB1hjCvRxql0jypbeTYBIY/vVUFNYffa8n5y/mDPLv+TM5mSq+9T/jqxcWdT7oGfHx/AbSBQ0NgpoGQbdyiJG2i4ifwsIqNAQpeanEdXNOUFP/NPqroNcfZnvpqZ2x1g/uY/UhHdQkzrswh7Z5NDV3NHNHmRC6h69WH+qDc9M5keZl6BQdAmZ2LbZ04SGir6d1hNihgXb3iZhpHtI6uL+KzrLSJhAt0wT3+JmP1n12O75jWuOpDsXqzApGtth2N6gjPeSmtnnR4idvWhAB1G+wtlvj73SOz/OVnTIPEOdl5NxABw81GFgcHd8zxIBmZjxYy5yHa5l9rb/TByMiuT6NUguHDwNqkP5z/O2OocjyMHCYAYZC2QZzhw9BdXk//WZKNiogDDLmeHC2vdfaA+SMD/XStMPco/UlJUmSJEmSJEmSJEn6Zupm8lEhf2wWMYaXTRtbKhSVBApGxyGCpazb3tHwZ4A1b6xmixfU3Mn86qfjGZGgIhQrebPP5bHv9MeJzsHFK/io3XqQfclD9UcvUOczUDLnM3b+DbjizKDEEjPx5xRcORUTQZo/f5bDx6wLqGCb/Agjp2WBZyW7XnyxZW0cHe+aX7Bt1WFwTif/tjuINUWjv1Ol3VEi9RKy8u0Io4aKL//beSWbUU/FR6/RpIF55AOMv/Fy4mJNgIKafAZ533mC7CQVw7eOA59vjUKyOpL4BKaxjzHrt4souPYOMkcVEJOSjtWVgbP/LLKv/DtTv3M5dgWM2kUUf1XR4/3Udi+nzm8g0q5n+JXn4Ggp/RDOoWRc/RIFs1PQw5SBRtpOGfU4s379EiPmXkXq4KE4ElOwJuQSN+Iqhty5kPFn9kchiPuzP3GoqlX7SM+fbSyDfvQ8A/rbCe59hk2vfETAnogltu1/CZg6zIpKHTEP9fD6ow0s+qWbud2Yay/SdpExOLiuiFIdzEOzGWE5foujFAaM7odLAffGfWw90dm4ntIO89a/9+M2BP0uvYxfXZ1LigVAwTVoND97eBajrBDYv57XVvlO8M4aJF/QTKoV/F852Xuoa63qNpvxGqCOcjN5bgC7GVB1EmY2MPPGAHTwnED8lTVcdH8j+ZMCOFtlZS05Xsbf1kysAsFCCxWeHgfWIrL4WqvbbMFrgHmim9Fj9OiutdmW1U/BfY1kZ4TuriI2wKAfNDA0E2iyUvjftlOqnt7xGdU2Nr5jJohB8nW1nHWTl8T4I7X62HJ9DL+7hulzOt5vERckfZyPzAIfmQM6jy+i61Mzs3uRhYABMefXM/0SP46W+581z8PkHzeRbAH9gJ3CdR333uX9NBRKFtmp18Bc0MiZ3/GE1mQHTKl+ht9dz+AUwGth18fmk3QKXkmSJEmSJEmSJEmSTmbde0BdSWTsqDhEYB9rWxKNIi6HcQMUtP3FbOpkmi5t/2oeejqX5+8ZQs45F/PK2Reh6aCoAoFB45bPeeDvxURtrDBCxqEFbH5tEpNvOhvn1MeYPvVX6LpAKAoCncCeP7Hp7dXHLMcjkq9i5A0XYaOeyjd/SvHhVjUDRhVlr/6cQ0Oep9+Quxl98QpWvbP5SPtI+juV2oWYiD1jHi6TwKj7iENbm457HrQ9f2TT2wVMunIyrjl/Yvqc36P7dRSLJTQNWPAgZS//mOLy6JS2RBqfEj+WzAvGknlB2K2i1y1n918eoryp50N3RtUbFL4/j8mXjSX+ggWceU4T/mYdU0wcquKjcdmDHM78FUOGRqcdKJj7zaH/lXPoH3aPvLhXP8D6N1a0q5KJ5PyJ7LlkDXIhAPPAO5n8+zs7OBJ+ql6awupPKrt87KJKTeO6B89nTuLRYV1XjhlQyDxvLs+P8R8ZqNWK1vKLp7ZSLqes67LgzkI+K53KjZl5nDFc5YsNXfyOKwlMmZiManhZ9fk+mnt3N/uAwaH//IdHRtzEL89LZPadtzDrez4afSqxThOKAL1mL3/85edsOdHFvLE+hs0JInSVfYusXa5GD25ysn27l/EjNLJur+bK+QIdA0UI6t6LYe+YRvLDTUGp6CRMdTNpqptJhiDQKNAUA6vTQAgwaq2s/5u9XXVfX8fXWnCjk80bvUwuCDD8kQqGNCkENUAzs/mnCewsb/mgGmTovQ3ktEr0W7NCHTrPbODc4eLoFNcHHax41tamKk1Q/bkNZYqbM591E3QrCLuOqgKaStEzceyt+obFh6D6zXi+iKtj+kUB0q+s46J5EHQrGGYdswUQgoo93Y87rAivz6aPXKzKr2HabI3s22vIvlng94PZ0dKuzsr6p2KoitL3XSuMYcWrAebc6CfxwnouuqAezS9QLKH+CKoUP+diZ2l0+pMkSZIkSZIkSZIk6ZulW8lHEZcVSjQWHU00WkfkMtJsULX5AAc7HWDX2P/uG9xYMpE7vlXAzBFJJNl0ag8eZtVHK/nba4Xs90YeSPQEaPrkO6wov4XBF11D6sABWK0B/GVbqVr5N3Z/sAR36yITdQC58x8gNRb8Wx5n6ydF7Z8Qb1zKjn+8QeJd1+Ka+zsGb7+Mwl3uyPqLdD9PWDvAVEC/qUNQ0Gj+6m2qu1Sk46b+vRtYXnwzA8+7gtQBg7DaIVi3h8ZdSyn54DlK9lVH8Wn87sZnEFjzAGs8s0kZNYPE3P7Y4tOwxtjBX4f38BZqNi6keNki6hujNfdfM3XvXM/KijsZfM7FJGWlY7a78R74mPJlf2LP8jIy7oteO2P3Ara9U0/q0HHEpvfDGuNEVYIEG0tp2rucss9f5MDGPQTDnoS+Pn99SNjIGZHL+LT2NSX29AzGpR/9d9Cym3CrXkqdCB5i8dJKrrslhRmzsnhqQ3FHBXDHUDLzOWuwgl67k8WrvKfmtdWWVs9Hj/6dA19N5ZZLhjF+UDzxVp36w6Vs/nITr7y6jrWVUZxbNEJxc5rJjgV9p4OdO7pR86aZ2PFYIvrNjQydFCAmBvyHrBxYHMOmj2Ho78M3a1jqYrnHS7/RfpLyNGLidUyagrfETMVXNna866CyNjqxQQ/ia01X2fV4Itq3Ghk+3U9cgo5NAJqOeswcFDpx+X7SUtpvwpQaILXVdKOGxRqaGrvNxR4sjOHz982Mua6ZnHwNi0+lbqeV3W/EsHOb0u67cbrHB4CmUvJ8IotWehh6vpd+w4M44wxoUqndbaZshYPCpWpU7hsRX5+ayv4/JtGwyc2Ic32k5WnYLOAvN1O51s72t+yUV0ezplRQ/e8E3t/XzMhLvGQOCeKwQ7DORO12K3sXOtm7q4PjKUmSJEmSJEmSJEmSdBxicHa6HFeQJEmSThpK+gT++spFTGjawJ3X/YcVxy2JVxgy/9v8c34KB199gav/euLXQPzGsPiZ8OcahqUpFD+ZzOfLu72U9MlNxidJkiRJkiRJkiRJkiRJ3SZHmSRJkqSTil62mReX1EPScK45K/b468fZ87jq4lQU917+8VapTDz2IduUZgamgXHYTuHq0+9PChmfJEmSJEmSJEmSJEmSJHVf99Z8lCRJkqRe52fNK1+w6pyLmHrNRIZ/tIxtHWYUBZnnn8EFKTp7X/6U9ytkMX/fMbAZZgpfN+ErtFN52mV9ZXySJEmSJEmSJEmSJEmSFAk57aokSZJ0ElLpP3MK5w3U2LpkNSsOd/BTJeyMuWgiU5IaWPHWRrY29e1eSpIkSZIkSZIkSZIkSZIkSceSyUdJkiRJkiRJkiRJkiRJkiRJkiRJkqJCLvAjSZIkSZIkSZIkSZIkSZIkSZIkSVJUyOSjJEmSJEmSJEmSJEmSJEmSJEmSJElRIZOPkiRJkiRJkiRJkiRJkiRJkiRJkiRFhUw+SpIkSZIkSZIkSZIkSZIkSZIkSZIUFTL5KEmSJEmSJEmSJEmSJEmSJEmSJElSVJhO9A5IUq8yZZFy4Y8ZeMYMXCmJqCYVQYDa12ez8oNijBO9fyczkUzOfasZNVJQ/fI0Vn98uGvHK9J2pyyVWQ/8mKfOM7PvH3/nmr8dRjvRu3SSmHFTPY9PNNj/YSw3vaeensdFTebGP3+buwaX8YdbX+Tlgx1c7cLBOQ9+n8dn+/jXj57jiY3+vttHs4tp15/F/HMHkJ/pxGESCKGx+c9/4dbXa9H7bk+kk4zIcHP+M40kq8e+XvNKMu+/YerGvdsg+54KzjzToP6NJBa9Yg7fVugMfqiSKQVQ/lwySxervfr7cLrHJ0mSJEmSJEmSJEmSdLLqWfLRNpRfL7yG892ruP3aD9kQBNPIc3j7mTNIWPYG5z+0A/fXn1Xt5I7MZfyobMaMymb0iAxyXCYUvZIF336WP+88mYY/TdiG3cKgi64mddBArOYAgcotVK36O7s/+BC372Tp72RuJzBPf4E5d5yN2tHmjjAIfHkbHz+3tP0guG0gaXNuJ2fiTFyZGZiFG3/tQRp3f8LhT16kZE9VJwN7TpKueZUJ5w5AIUiwqRKvL4hBEJ8nXBqkm8dFOHGOnEv6yEkkDBhBbHoOVqcNfFV4Dm2gcvXLFH36BZ7AcQ9AaHPJ32LiLx8lxaFgeN5i3Q/uojzYtbaR6Ov+el9ff28lCZJmz+bWESYq3vuMtztKPAIYzSx7eQ07Z83miu9N5M3vr6CoT7KxFiZ8/0b+cGUSJnQ8DU2Ue3QMNCqbT6bf3RNMCTLyiWoKBkPZc8l8/P5pljTqKD6/Ss1WC1rLD7Ut24/LdSJ3NEKne3wS2IJkX9jM4Ok+krN0LELgrVapK7Syf4mDvYXK6fWdlSRJkiRJkiRJkqRTXI+Sj6ZBOYxygnv1AXYGAQTpI3NIFxobNx/C0+qzSuoYHvzDeRSYe7S/fcCM88znmHLz2dgUAWjouhlLxhT6XT6J1JG/Z81v/0SdN1pDHJH2d6q06woN96GidoNGIuUSRt3zW7Iy7Ygjr8ZjS4vHljaCOG0Nh/Z81vFgk/1McmbkoeilHHruCjavOtRJhU8E8SkDybr+MQZltvkaOdKJGXwBMYPPI2vGi2z8/SNU1B1nkF8kk371fSQ7+mgm5L7ur9f19ff2WJ7qGooPmDhUF5SDn600NygcqIDSJk7P42LO4JobhxKvlfHXfxcdfdimA9q+9by25gwenjqF+VPX8Yvl3t4/Ls5BXHlhEiajgQ8eeYEHP66ni89DfKOYRjYzZJABdXYKPz3NEo90HJ9RbWP1A7av/0X//61gxrTIog/UmGg4ZNDUII7/4Sg73eP7plPSvUx5oJ6B2a3PnYE9U8eeGSAxaGZfofW0+95KkiRJkiRJkiRJ0qmsB8lHQfrI7COJRi+AsDFmTBomvZqNW5vaJXp0TwM7Nx1k4+YDbKlN5467Csjtwc73BpF5G2OuPxubEsC9+iE2vvo6dU0OYsffy+j5NxM/+C7GzFvN8ldXRWUKwUj7O/nbGQRW/ZBlmyydxP5tJv30f4jV1lO6et+xg0aWsQz+4e/IyrRC0yYOvvcXDm7egsdjxpKUQ8zA2aSozZ0ONImkwcRYBIb/K8rWdZZ4jPS4BPCXfMLBdSup3reD5uoyvPUNGPYsXKNvYPBl83Dl3sqYm7fyxZ/+Tcd5L4F55H0MnRhLc1kJ9vQsendos6/76319/b09lsaaZ57n8meivuFT3rp3YrnunRO9F70nZspkrshT8G/YwKL9XagiNJpYtqiQu6aO4eyrR/HMl19xuJeLD5X0FPKsYHgP8PHnMvEYltDJvcSLU0DdUgeHmk/0DkVZn8QnKHspiXdf6o1tH6/r0zy+bzpLgNE/DSUejUYze990snedmSYPWFOCxOf7yFRO9b9iJEmSJEmSJEmSJOn0E3nZk7AyekwqJr3maKLRlMm4ESaM+hI2FB07oqqXf8X3Ln6Ka+/6N4+/sIYPNtXhOekeUbaTdO584q0C/fCLbPr7y9TVB0Crp3HNw2x4ezVBTDhnfJcMVzQGOiLt7xRpF2zC31jTwX8N2EafS4xioO9ayOGq1teLgmPm/eTl2qBpOdsfncfmDz6g9lAJ3poiGnZ/RumSh9i0+KvOn3K32FEEEPShd/rBCOPTdlD0l/ls/vffOLR+ObXFe/DUVeA9vJ7yD+/lq1eWEjAUzKOvIi2hk6+aZRwDr7sGW+Xr7Fy2t/ef3O/r/npdX39vJQkQTs6aO4xEEWDd0h2UdzGJ6F67lc9qDayjx3Fx/96/HoXVjEWAEQjiP/W/7L1CZDczdJwOPis7l5hPuzUwZXzSqSzmnEaG5RnQaGXt/YmsfMdGxUGV5iqV2h1Wit6JY8XbFnneJUmSJEmSJEmSJOkkE3nloymTgmFmjPoSNrZUfKj9cxjtEvhWFrO97dpxunbyV1yYxpNekIYgSP0Xr1Hnb/2mRvOKV6m6Ygrp9qmkj0qgZHkNILCM/z3TfzAPm+cLtj18M8VtF84TqWR8730KJqcQ3P4QK377Im4t0v5OoXadMU8ka8oAFNyUr/jg2KpAZSCZMydhwk/t+7+g+FAXF+sTiWTf8xWjR7eptoy5mokLrm71QoDa12ez8oPiUOKtN+LDwL93PW79POKVfjiSFKgJNzRmIva8B+mfUUf5c3+ixvq7zkN0DCJp4lzSR08hPjMHW2IqZtWPv3ondZvfYf8Hr1Jd09k3rXv9HaViGXwLgy+7gbSB/TEbtbj3/ZeDi35PcWFFJwnM7rWLKL5eOX/HYR7OEx9exTnHXGo6e//xd6752+Hw1ZXCwWVP3sODU2D9H//M9z5N4Lo7ZnHZGZn0cxrUHzzA0n99zF/eL8cdzSSR0LniBw3cNwS+ej2Ou1fB+FlebjojwPBkA1NA4WCxicUf2nl9t8AAFLvGhIIAs4YFGZahkxavE6sK6mtUtm438+9lVtbVhunLFOBXT7o5q80vS9GHsdz0ntp51akwGDrRx3VTAozpp5NgBU+ToLJaZdN2Mx+ttrC5LnzTuGw/1872M2OQRmasAV6F/fvNfLDMyru7lV757RGJ+Zw3zgLB/Xy2xt31JL73AJ+t9XDpeamcOzuNF/aVRbca98h11ma1XddYnv5kbKsXNDb/+S/c+nrtsYP2SixXP/Uj7h8Pq5/8A99frDDxyjOZP3cII/vZMfncHNixh//847+8sqFV3IqN/HPO4Ja5Qxk/KJ54i05DRSWbV27ilVfWs766VS9f7+OkJt587GP8F57FpcOcuIu28ddHP2CZfTz/775pzMg1U1e4iT/++kM+Ku2t1IJBxsUeEkzg+dRBUVWbt4XOoF9UMnU8VPw9mY/+02ZKVjXA2D9UMypHUPRYKstXiXbtk2a7GT7HR2qehs0GwXqF5nIzFeutFP3XTkV1mN0SGvm/rGLSaCh7JoWPlxqkz21i5Dk+kjN1FJ9Cw24re9+IZfuWzp4jO058PWH2MvP1OnLbTKdf/0YSi14xd+k7YRvWzOhrm8nO17AYCo27rOx5M4bCrV1dv+90jM/AMcLDsAu9ZA4NEhNvoPgVGvaZOfS5g52fWHD7O2zcPRFfnzqJs9yMONdHWp6G1QL+KhOVa+1s/7eDinC/D5FQguSd7ceEoOrtWHYekA8QSZIkSZIkSZIkSdKpohvJR5WJP7iDh860haZoVCwkJglEcBgP/nNAaPDU6iBNAaPgHF578yxAY8NzC/j50s6nxzxZiLQC4mMV0Euo3VXcfp+b11F9MEj6EBvxg0egLP8CHQP/+ofZ8vlEJpw5nfxbb6bqyQWh5CIACrYpjzBiUho0LWPHC/935L3I+jt12nXGNOIqMpJUDPcnHNp4bDJIxE8juZ8JI7i6/XSsnTECeEtWU21pGSm05xCfm4miVdK4Zy+BIxsK0lTtPdpfL8QHAnP/UTgUQK/F3xg+CpFyHcMvGoOx51fsXFOJMaOzbao4z/4TE+eNQgEMI4jubSQYdGBNH096+jjSzriInb+/lb17m6LQX6ueB9/HpGuuINaioXm8YEsjbuS3GD58FgnPX8XGlSVhz1P32kUWX++cv+Nxs29TMetaLjVXTjYDE7veWkkZzkN/ncP5aQq6piNUheQBg7jufzPJNJ7nnvfre6eKQ9W54NZmfjpGR2312oB8P5cesPLG7lCCMHdmM7+9WMMEGAb4fAJ30CAhNcis1CAzJwZ47lkn/7e/zUCwISjaY2JDyy+LKy1IXmwX9ksYTLumkUen6ZgBPSCobRKoNp0BA3QGDgiQ3WTirhVtBuyFQf6sZp64PECKEtpXt0dgcugMG+lj6Ag/0xfGcP8n6jFrEEdD7LjBjLGCvnc/G6q78wvnZ/P6UgLnDqL/lIFkvVhGcTRPtqFRubeYdbbQGRaOBIYPjsOqNbF3azX1Rz6os7ei7VNCbagJzH34Sh6YGYf69ak2xTJowhiuKFzLPze4Q7/9qotzfnojvzw/CasAPeDH7VdJ6JfF7KuymHVWPk/e8wav722TBhZOzr/rUsyaj4BqIW1YAfc/FMeFcXmMtXvwYCFjzCR+cddh1v/vRqp64Q8Jkehl6EwNoZnY/Z41uolqoZP1/RpmnRtEEWD4Fbz1oDh04od5iR/uI67BytIlx5mEQg0y8Cf1TJmiIb4+Dw6d+DEeUug5kQAAIABJREFUBu92sGNLx4msXo3PUKjfZqG85ftuzfITH9/15qZhTZx9i4d4CwQ9AmHXiC9oZsJoH8l/SGT5Z8dfe/O0i0/VyJpfx/SLA5gFYIDWrKBZNOJHasSP8pFiSeajRVFYlzTS61PVyP1hLdNnB1tmlxAE/GBND5A9N0DWdB9rH4ynsO3vQyS7mOgnIxfQzBR9YTol/l9CkiRJkiRJkiRJkqSQblU+2uLiyEi3H7s+nNlGarrt2A86Y8hwAmgccEQ+s2tfEykDcKhAsJimylCGUIkfQXxiPQ1FJQSNcpor3BhD4jGn5mERX4Qq9ow6Kl//CcX5r9B/2H2MPvcLVn+wK5S4S7yCEddfgJVKyl69n5JKrcf9nSrtOj7Q8aROPxeL0PFvWEhlmzIvkTmMGBWo2kx9QwpJ597FwDPPIT41HuEto2n3fylZ8gwHdpa3GYhqpPJf11P59XYG/IyZD3wPp+cTdj5xLx2Ns0clPqEgFAUwYXLlEV9wM0PmXYhFGAR3L6SsIkxtk0gl45p7SLLsZd8bL+PWoeMVMlsEyqhdvpRDq5dSubsQrycIKKhJE8i65rcMmzyZIbd9n6oHnqC+bZeR9AeACdeUywnu/RvrnnuKivImiBlF1g1/YeTUPDJueozq3TdzoKptBiWCdhHEF/XrsysCxTx790st/1CZ9cCPeeo8c2ctWlEZesWZ9N+1kvvuW85n+72Y0wdwy/+7kjsKHEy/YSLDP/qYrcfJC0UiabyHO3MNtn5u55U1ZvbUgRqjM7bAx5mt+jMCCptXm1my3sxX+1TKW3L19oQgF17azJ3jg9x+vY81v7FR2Po600ws+EsMC1r+OeOmeh6fePyDrWb5+J+pOiZN4YPXnDy9VqVOAwTEpwWZNsHPQE/7gezEMR5+c0WA5KDCsncdPPuliRIvKBadMWd4uP/SABMvbWb+/hj+UhTNihmVoWP6YRcGjbtLKe5m6WLD7lIO6oMYOCCH0bErKK4/fpuu87Hiry+z4us9HX42b/11GtnuPfzx7ndZ3uXsjCDp7HO5Z7jC5oUf8NKSveyq8GOKT6Zg9kTODhz9XL9LLuEX5ydh0ev59JmFPLawmAq/gmvwKO78+UVcPnAQ9/xiBltuX8a21v0LleDad7jygc3U5U7n+QVzGDNwAMNWv8+8n67lcPIEnn7pIqYUDGG8YyMfuqN1jI6KP89Nph0C653sLorutsVAN+PODqJoJvb9xcXaT834NEAYWLMCZM/yEB/+OZFWDGwzGhmfb1D5fhzbPrFQWyUQLo20ac3kHOd89mZ8BC1s+sXXT10YZN9TwZlndvXmapA0w0Ngt5NPfx9DSamA2ACDvl3HpJka/b/bQNmOBHZXdL6V0ys+g8Qr65hxcQCTrlC2MI51/7FSUydAGDgG+hh4VROpUQov0usz5twGps4OougqB19yseYDC81+sA7wUHBXA4P7+xh/r5vKe2Ko7mE2WGQHcalgVJipqddJm9vEqPO8JGcYiGaF+kIre9+JYfc2RU67KkmSJEmSJEmSJEknmW4kHzW+ePQJxj0KYGbmz+/mqXP9vHHn0/xmowamLO55dT43uLbx48vf4r/RLjPpdQJTXFKo4kqrxe82ECnfYsJDj5IS46X+3av58u1t+OurMYiHuBQsCni/HnT2fMmuBX8j6X+/R8LlT5K37Sr2Hkwl6+YHSIsz8Kx8gK0rS1slyyLt71Rp18mhdl1A1ug4hH6Ysi+/4Ngci0CNT8MkwKjXSbjlbfKn5SAMP5pfR4nNIX7cfFxjLyTl5W+xftmuHg44RSM+gXnaAubccTbHTnQYxLfnRbY89w/c7XZSYB79Y/LHJ+Jb+VP27fECx0uOaDQtmc+qdmOfOlr1GopfeATX0AVkZ5xPes7vqS9qfWQj6e9oW3xfsvOvv6a8siWQpi0cfOFeYvLeYED6dHJnDuPg29vaJIO72y6S+Hrh+uwDFt8efvnzj1nWUvSrle3j+d+tZOZLZzEssz/j0wVbS6Jf4zEgT+ert2O471P1aIVQvULpIRNLFI58l/Z/4uQHYbr31Jp463U7Qwe7uSgtwJn9bBQe6Pl+xecG6adAcI+Vv61Rqfu6bwPqykwsfi/MT5Ua5Pq5flIRrHorhgdXKEemL9X9Chs+dfCwq4lnz9aYOyvIS0Vmopa7UmIZMsCBgsHB/TV0N0+slVRyIAiDzKnk5yos2nwyDpsrDBqZzOqnF3Dnm1UcmeWxqpGSPUUsVkXoelEzmHdlf2KEQck77/D//lVMMwA69bs38eiDMQxacDaj88Zz/dQV/L/PW02jbWhs+WIXlToYxbtZeWA2YwYZbP+8kEMBMMr3sapIZ+qwRPLSFdgb5eNk9zH03CDCUNm/yEZzlL9ytsEBYlXQtznYuMyM78h1LfAdtLDnla49/hE/TKNsQSLL/mM6OkVvjUpTkYV9Kh1Xg/VyfD3ms7DhyVgOlrf8u9HM7qddxA2qYXg/H0PPDrDnn51Mb3qaxSeSvIy9PBCaYvS1BJa9YT56vg1B8x4bWx63Yo3t5Jx3Q0TXpxpg8FwfZgFNS1wsf9dy5P7n22dn9ZM6CU81kpzTzLDxzvbTEHeTKUELrVlbC8nfr2bcmRoCQdAHapxG0uRmkib4yHw+gc8/MEV3CmtJkiRJkiRJkiRJknoksrJENZWCEVaE5xAbdrdUGqVmMzpVENh1gK1dXKLv5CJQLC1Tyga8aAaInCkkxCiAg9j8cVgEaP5QcMJsb3fwgrufYvN7W9CtBQyefycZ5zzG0DEJGJVvsvXV948O7PSov1OlXUcUHJOvItEqMKoWU7rT2+Z9gWpzIADR73oGTU2k8b8/ZPkP8vnw20P46O6r2b6+BENJJ/X6J+mfqYbrpBuiHd/X/Hi2PMXGpx+lvCbMcJh1AoOuvRK7bwV7Fi7F3/Viio75Cmko00DphzOlTRVepP21dKrteIvDbSsb/RsoXbMPHRMxI6ZhbzfGGEG7bsfXW+evNxk0rt7Mp22WntRLDrK51gDFRVZ67+ylVmHl2S/UsFMT6q1PU6fnQWVXBaDoZCVFabS/ZTOK08DVxdDNeQHmpIDRZObNr5Qwg86CnZtNlBkQkxdkcE9vFa0pLjLTFDB0qqqauv8AhL+JinoDRAyZaV2tmO172sG1PL2wVeKxFV0LnTQlewCT+ymgVfHh+wdaEo+ttlG8iUWbgxiKnUmT+nFMtIafmtpA6PQbzdTUGWBoVNd4Wl7zUNdggLAT74p+fI6ZzfRPBGO/ncJNvbCWXMt1LWJ0rD34ShsldtYvDp9YMTrJtvR6fD0U3GJnf9vKRr+FohWh6TXjxvqJ6WS3T7f47BO9ZNiBehtbFpnDJ9IMga8hSrFGcH2KTD8ZGYBmYv9/Le0evDBK7OzdLkDopBcEevx7a7a33Gdymhk9S6f2/XjeuyGN165O4/XbElm7SsVQNLJuq2dodg87kyRJkiRJkiRJkiQpqro17erXlNRsxqQrBLcVs7mlwtE5PJvBJp2DWw7SbvbFU4U4dkBH3/EqRbum0j+jgtKlS/AZ0PkwsZf69+5l98iF5A++k4I8QCui+MVfUhFuzb9I+ztV2oWjDKbftAIUgjStXkhtuJKhlv6EPQa23M+6l9/B03L4tJpVFD33E5yPvkxu0hhyZoyh6F/re1YF0OP4DALLb2XJckCxYE7IJ3HS7Qy59F4mPXoORc/Op3BzZat9NBN33oPkZho0vvsYByu784URmDLOJueca0gbNprYlBRMZhXBsRk81WqDI6vc9aQ/AA3PgcJWa2Z+LUjTgZ3oDEFNG4xTheZgT9tFEF80r88+YVC6v5q2aXcMH41NBiSbsdvCteu56p0mdnexNMSeFuDymX5m5mvkJerEmNvWyhrYraHXepqCrN1nYq8WZGiGj19/x+BfK818tUflQKPoMLGXkqORKABzkNu+18QN4T5k1okHRKxOsgpRK4sRNuJiBKDhdkcwP67hw91sgBDExlpR8J2EUwYaVK7dw87jhGfql0K2CoannB3hFq80mtm5uwFjYiKunCQSlX2Ut1p/13vkSYgg/gBgBPF9ne00gvgCBmDCao5yckkNMORiHyYEJYscoWl+o8y73UJd0E9ijptZDxjsWGrl8DYzDXWiW98Zz2Yrtd3dvz6Ir6fcRaawD8I0FJnQjCCmjCCxKjSGuwZPu/gM4gcFUARouyxUtPuBiL5Irk8lI0icAnhNVB8M8wFDoWafgjFWw5oVxCYsPatIPbLGqQEb4vj0eRtfz9QfrLKw4ykXcU/XMCQ1wOA5AXa8ZD4J76WSJEmSJEmSJEmS9M0UUfLRMSKHISadki0lhPIYKsPG9MNmeNi8ueoUnfbIQPeFqi2E2RqaPrN5Fbt+PYFdRz5jQrVYQ58OeMIPcAQL2ffSs2Q8ci8uVcfzxYPs3NYQxf5OlXbhKXnzyMw2IbStHF61PcwAl4Hu97a87qbqi3ePJB6P8K6ibFMVOWelYR9UgE2sb/+ZLotufOh+AtVbKP/gLmpLfUy76zryvvMbGh+4nZKaUEuR9i2GXTgapfo1Cpds7cZAmYJt/KNM+u71xFoERrAeT9k2Gt0eDAPAjC27AKcThOnoVzvy/r5mEGiqC/+Ou5agASZbPGYVji2D6G67SOKL8vnrEwYeT7jaQ6MlToHSS+WZZVVdWxcrZXQzf7jZT54FDE1QVqFS5BZH7u3JmUGyHaCqBl2fvrdj+mErj76t8fhlATKH+bh7WKhS1V2rsn2PmSWfWvnwwLGJyIQ4HRUQNp3hg44TlQA1mpWPCEwqgI4W0QWlo7UcTEU98bW44emUldYf93qxxdmxCjCamqkPm6g0qK9rRicREesgDihv9Z5xZKpHA003AL1VFa6BoQNCifL5A/P4ZgblgFFlp3BF75wD44CTLxcEOfNWLzHj3Ewc5wYDAtVmqrdY2bvIQdEe5TiJSIG7TO12gr8v4usZga8h/H7pjQoBwOQwsJog3LzGp2N8tvjQWfZXqwT7YArZSK5PNUZHFWC4FXwdPJjgb1AADRGjYxH0KPmo+Vp+XwzB4Y/tuNtuy2PmwDqFIRfoOPMDOISZppNt+l1JkiRJkiRJkiRJ+obqcvLx7hd+yFnO0CCAKSYOh1DIuPgq3jkrNPjsSIpDEUHO+sn3mRgEgsU8/f13+ai+l/Y86gyCjdXogKomYokRHF147GsCiyspVOnTUIk/7KisHdfk84hRBaBgG3UJSXGfUd7QdluR9neqtAvHRuL0S3AqBtqehZSWhp1EjmBTXag//TDu8nCP/+t4qkoxSIO4NKwKeCLOeEczvmO369/yAiUlVzEk50xyJmdz6INiDJFA+ry7SLLVU/HqH6jqzqic83yG3nIdsRYfjV/8jI2vLaShddWVyKL//Z8zIr9VOqgn/bWJJ7L3u9Eukvh67fydnnz+458R4QjwP9f5ybMIilbZeWihhd2t59IUOlfd2cDdg6KRdjyyUfZ87uT6zUFmFgSYOFBjeH+NvASNiRM1JhT4GftiDI9vbp+oCWx3MPdZC+1usb0qiMdrgNWE1RLBURBmrNZQzajXG4jK+m29wecNnjT7FtW6R6ExYK4XO4LqJQ7Keq3KTFC7OJ7/rAqQPd1LxogAyUMCuJICpM8OkD7dQ9oTSaxc3XnyTPN1r1Ky7+LrJa1Odti4T/f4+kx0rs/eFGgUaAYoukp9abi7gMBdrmKgIxI0bAo0nZpPQEqSJEmSJEmSJEnSaafLycekfolkOY99zZYQT1bCsZtzpSXgAgjU4DwZH0bvhFGxj2YNXEouzhQV6to81i3ScKQ6Eej4K4rCTqdlyr+P0ReORPHtoLokjcSB8xh546fUP/MfvG0+H2l/p0q7duwz6TchA4GP2i8X09xBEsioLMar991UmVGLr92GK/HW64AJZ2YeglDy0Z7sQggTabev4cLbO2hrn8eEBfOAekqeGsemjX7UoReQGqdgVL7Gtv97k4a2C7EpSVjj2kyC2YP+Wm0Ec0wCUNKumXAmYBJgeGrxtxvw6167iOKjF8/fN5RtcIAzYkCvtvC7NyzsblukKQySY3unb3+diY8/MfHxJ6F+0gb4ueNqLxdk6lw418/CrTYKW+4bdQ0KGjoiTidZ0LfJR72JyhoD4hUSEuwIGruZHHKQ5BJgBKiu9p40Cb5IeBs9+A0wxzhxha1SE7jiHSiA1tRMuHkA+poyqJn8kQY02yhcajr+IxKdfsDAZO28vVZtZv+7Zva/CwgD53APY7/byIBcjYE3udm1NpbqKCZMuhvfiWFgjdOB9iWtSowe+v13K/jDVNedrvF560K/b5YkDZOgz36runN9ak0KmgFmpx6q2gy3pHVcy7wZTUqPY9ArTLh1iO/ZZiRJkiRJkiRJkiRJOgG6nB78+XkPUzD9YcZdtpjVAQhu/5jLZoZeO+NnW6g3DEpeX8DE6aHXCma/wsLa3tz16DPKN1LXqIOSScKQnPaVFo5xJGabAC91e7a3n47OOYuht80nxtRM7bs/ZM2fH6a8AWwTH2HkjKx224u0v1Ol3bEEloKrSItTMHxfUrq2tONaubJN1DfroGTgTAu3+J2CPTkztB/1Zfh6WMkWnfjC7WYmjqTQV8zQejqyrGBOSEMF9IpdNIWZtVMkTiQxJcpzEwKg4sgdSvsl10zE5AxFAYyy3bjbhdiddpHH12vn7xsq1qVjBbRKleJwA/8JQUYn9cGOGILyvVYe/6eVAzqoyRoD7UffrjioUmuAmh5kfF+PTGu1FJVoGChk9nOFSS90TklMINMGaDUUHTq1r8hgSSUHNBDWNIblhvmTQjjJHxKHwKD+QDU1JzpcoZN1iQeXCk2fOjgQfmboowxB0AdgYIkNs/MxGnGJ3ejfELi3OVj5JwcNGoj0IAmObrQ/nu7G14bW8p1XIpqUv3tiBgSxhilmi8sLogrQS1Ua2v6unLbxCer2mNANUPP9pNnbt+sTx7k+9cMmGnTAEiQpO0x7oZMwUEcAvkOmdg/ddXt3DpmpaQYUDVdmuI0ZONO00MwGtSqeE31/kSRJkiRJkiRJkiTpiG7XJtqH5zLMZFC2+QChMVOF/DHZxBpeNm0sD7c0z6kjuJayjeUYmHBNvxaXpfWbKo6p15NiFxjelZRtqTm2rUgm7frHyUlTCe78HVuW7ESveYdtryzGSxKp1z5Bbnqb0a5I+ztV2h1zfNJJnz4TEwbBLW+HmYa2lcAaKrY1YOAkecYl2NsO3tmmkD4mGUGQ5t3rejy4FWl8iisLa4flmQrWgtvpl24C/DQU7wolW/V97Hskj8U3Z4f5L4elL3yKBhiet1h7WzaLbx7ZUoWoE3Q3YABKch6OttkOEUfSBTcTb2pzsCLu75iNowydR0Zym9uFpYDMSXkoBGnc+kWY89CddhHGB9G5PqUjmptDazuqSRqZbX8hhMH4OT5GRnngXlU7nlZTqEZojTGdY6prA0VmllWDMAW59sIA8R1tQDHITDSiO20nfgoLq9AQpOSlEtfNjZv6p9FfBb3+MNtLT866ra7SD+5j9SEd1CTOuzCHtnk0NXc0c0eZELqHr1YfItxqp31JpHkZOkWHgJldiy1d+Jvl62kdIXZooN3vUcw0D2kd/A6IzrLSJhAC0AU9fjaldZ/dju+Y1niqQ7E6s4KRLQreDepID7mpbV60+MmbFkQA9Rus7db4O53j83xlp8wDxHkZOTfQwUMNBhZHx/cMMaCZGQ/WMufhWmZf6+/0wYhIrk+j1MLhw4AapP8cf7tjKLI8DBxmgKFQtsHc4cM+Xd5Pv5mSjQoIg4w5Hpxt77X2ADnjQ7007TD3aH1JSZIkSZIkSZIkSZKiq5vJR4X8sVnEGF42bSwLDfooCRSMjkMES1m3vbNhRYE1xk68y0G8y0FCjJlQHkHBGus48rorxtT9jGjUeKj+6AXqfAZK5nzGzr8BV5wZlFhiJv6cgiunYiJI8+fPcviYdeUUbJMfYeS0LPCsZNeLL7asOaPjXfMLtq06DM7p5N92B7GmaPR3qrQ7SqReQla+HWHUUPHlfzufisuop+Kj12jSwDzyAcbfeDlxsSZAQU0+g7zvPEF2korhW8eBz7dGYcq1SOITmMY+xqzfLqLg2jvIHFVATEo6VlcGzv6zyL7y70z9zuXYFTBqF1H8VUWP91PbvZw6v4FIu57hV56Do6WkQjiHknH1SxTMTkHvaRloWAZYp5L/vZ+Rlhaae1nEjCL71t+Sm27CcH/K/i92h4mve+0ij6/n16d0VPM+E9v9oKT4+dElATJbkrmqQ+OsS908PN3A54tun3nnNPHC7R7mjdJIb1XsHJsR4H+u8NNPgLfIxObW/QZNvLrITJUBGZObefpGHxNTjCO/H/Z4jWkzPPzm/gaenK5H+XfF4OC6Ikp1MA/NZoTl+C2OUhgwuh8uBdwb97H1RGfjeko7zFv/3o/bEPS79DJ+dXUuKRYABdeg0fzs4VmMskJg/3peWxXlC6fbDJIvaCbVCv6vnOw91LVWdZvNeA1QR7mZPDeA3QyoOgkzG5h5YwDaPq/RIv7KGi66v5H8SQGcrbKylhwv429rJlaBYKGFCk+PA2sRWXyt1W224DXAPNHN6DF6lJP2bVj9FNzXSHZG6L4sYgMM+kEDQzOBJiuF/207perpHZ9RbWPjO2aCGCRfV8tZN3lJjP/6Ewa2XB/D765h+pyO91vEBUkf5yOzwEfmgM7ji+j61MzsXmQhYEDM+fVMv8SPo+X+Z83zMPnHTfx/9s47PK7iWuC/udtXq1XvxbJl2bIt9w7GBWN6L6EEAjj0FxJCQkJeQoAUemhJCJAQyAMSAqGaFgwGYxv3XmXLlmWr97Z9773vD8m2qi2t1pJs5vd9/vxp986cmTNl586ZcybeDNoBG7vWdy+9x+XUFYoX2WhQwTSxibm3eoh1tnxlTPQz+scN5CQAXjO7PzcN0hC8EolEIpFIJBKJRCKRfDvp3cFvJZYJY52IwD7WtRoahTOTScMU1P1FbD5a+Cslgev/eCu353TcAo7j2qd/wrWtfwX3fMU131/KngEKnaSXvMSWf01j+vfOIGLmw8ya+Ts0TSAUBYFGoOBZNr+zut01NyL+CvKuPQ8rDVS9dS9FZW3O4uvVlL/+K0pGvEjaiB8z7vwVrHpvy+H0ocg7kdK1YCTylMuIMgr0+s8o2dZ8zHZQC55h8zsTmXb5dKLmP8us+U+i+TUUs7klvFbwIOWv3kNRRXhcRkKtnxI9gdRzJpB6Tpe5otUvZ8+fH6Ciue9bYnr1m+z6+DKmXzyB6HNeYu6CZvxuDaPDiUHx0bTkfspSf8eI3D6L6kCQhpXvo0y+hcmPfR/V5UbYIjEoAl09QOkrv6Sky1iKvUvXl/r1rX/2EkMSV99/NvNjj2yXRmWaAIXUsy7gxfH+IwbVwnX8+qltVJxAoeC0WjN/+cLPM+eojD7dxVuzBfVesNt1LIqgcLmNJUluvp/TIaGicsUNHua2uQ8yKqlFE8lT3fwxWxzRS7mZ371ppvKwLV9n+HgfPxnv4269xfvSJyDa3mJMVBtNPPe2hYoOw6hmo517nG4evThA9lQPz0z1EPAKPEIn0nLEm7JoS3h1BBDM38XS0plclzqUU0YbWLaxh71LiWHG1HgMupdVX+/DHf6i9TM6JR98wG/GfI/fnhXLvB/ewJzbfTT5DERGGFEEaLV7eea3X7O1GyNdvxHpY9T8IEIzsG+Rpcde88HNEezY4WXyGJX0m2q4fKFAQ0cRgvoPHewd38TIrkJQKhoxM11Mm+limi4INAlURccSoSME6HUWNvzV1sm7r7/r15bgpgi2bPIyfWKA0b+pZESzQlAFVBNb7o0hv6L1QUOQ3J80ktkm5LElvUVgxNxGzhx9ZLzrB+2seN7awStNUPO1FWWGi7nPuwi6FIRNw2AAVAOFzznZW/0tqx+CmreiWeasZ9Z5AZIvr+e8yyDoUtBNGiYzIASVBb2vd5eE2D+bP4ti1chaTp2nknFTLRnXC/x+MNlb09Vb2PCUg+owjXd1l4MVrweYf52f2HMbOO+cBlS/QDG3yCNooOiFKPJLwyNPIpFIJBKJRCKRSCQSSXjolfFRONNbDI2FRwyNljFDyDPpVG85wMETaIO9ewI0f3krKypuIOe8K0nMHobFEsBfvo3qlX9lzyef4mrrvGEYxpCF95EYCf6tj7Dty8LOJ6+bFrPzH28Se9dVRF3wB3J2XMyu3a7Q5IVazgFLBxgnkjZzBAoq7rXvUNMj5xcXDR9ey/Ki68k+61IShw3HYoNgfQFNuxdT/MkLFO+rCeMp997WTyew5j7WeOaRMPY0YodkYY1OwuKwgb8eb9lWaje9S9GSRTQ0hSumnpv6965hZeUPyVlwPnHpyZhsLrwHPqdiybMULC8n5adhEtUBteAPrPtiEzmXXE9y9hCMvgoaCxZzcNGTFOVXd9sOvUvXl/r1oX/2FmElc8wQJid19tWwJacwKfnI30HzHrq6tXRwI9j+iYPbqr18f06ASSkaTqugqsTE0uVWXlklmP8/XSXTSc8KMjGm81e2WJUJbe7FCxpNWAUc6gAHVtp40BdgxgiV0WkqyZE6Tk1QU25k83Yzby0xs7WxC5m6IP+rCK7ND3DZXD+njQiSGaVjVRXKygTFJUbWbDWxeKshPIbntgRL+GhxFVffkMBpc9J5amNRdw5w7VBSR3J6joJWl89Hq7wnh6eO2sBnD/2NA2tncsOFo5g8PJpoi0ZDWSlbvtnMa6+vZ11V2Fug1zjnu8mIBC3fTv7OXvi8qUZ2PhyLdn0TudMCOBzgL7Fw4CMHmz+H3Ce7Tta4OIrlHi9p4/zEDVVxRGsYVQVvsYnKtVZ2vm+nKox3Y4dcv7ZoBnY/Eov63SZGz/LjjNFaxqqqYWh3dkzDOdJPUkLnLIyJARLHnZo6AAAgAElEQVTbhBvVzZaWSBcdOntwl4OvPzYx/mo3mSNVzD4D9fkW9rzpIH+70mlsnOz1A0A1UPxiLItWesg920va6CARTh2aDdTtMVG+ws6uxYawzBsh90/VwP5n4mjc7GLMmT6ShqpYzeCvMFG1zsaOt21U1ITTp1RQ858YPt7nJu9CL6kjgthtEKw3UrfDwt53I9i7uxt9SiQSiUQikUgkEolEIhkwRE5Gsnxfl0gkEomklyjJU/jLa+cxpXkjP7z6A1YcM3ymwoiFt/DPhQkcfP3vfOcvA38H4rcGs58pf6plVJJC0ePxfL184AK8Hxdk/SQSiUQikUgkEolEIpFIJIMIuXsjkUgkEkkIaOVbePnTBogbzZWnRx77/jjbUK44PxHFtZd/vF0qDY/9iHWGm+wk0Mts7Fp98i19ZP0kEolEIpFIJBKJRCKRSCSDid7d+SiRSCQSiaQVP2teW8aqBecx88qpjP5sCdu7tSgKUs8+hXMSNPa++hUfV8qgA/2HjlU3sesNI75dNqpOOquvrJ9EIpFIJBKJRCKRSCQSiWRwIcOuSiQSiUQSMgayZs/grGyVbZ+uZkVZNz+pwsb486YyI66RFW9vYltz/5ZSIpFIJBKJRCKRSCQSiUQikUj6C2l8lEgkEolEIpFIJBKJRCKRSCQSiUQikUgkYUFenCORSCQSiUQikUgkEolEIpFIJBKJRCKRSMKCND5KJBKJRCKRSCQSiUQikUgkEolEIpFIJJKwII2PEolEIpFIJBKJRCKRSCQSiUQikUgkEokkLEjjo0QikUgkEolEIpFIJBKJRCKRSCQSiUQiCQvS+CiRSCQSiUQikUgkEolEIpFIJBKJRCKRSMKCcaALIJFIBhjjbMY+9SqZjoPse2guO/cEB7pEJxgG5tx3D0+dZWLfP/7GlX8tQx3oIoUZEennyfv9rH7YwRs1vUho0Jh5hpfrpgYYEadjM4IAtr3r5LYlCtrxKnAvOdnr1ycM8Vz3p1u4K6ecp298mVcP6sdPlnM6OU9NofHe56ioOo5yJAOPsLPg/jt4ZJ6Pf//oBR7b5B/oEp2YCI3hv65i5mSo/Fs8n31gQI4cQGjkPFDFjIlQ8UI8iz+SejnhMaqkXdpM3lwfsUkaRiMgBNV/j+fT92T7SiThQqS4OPu5JuIN7T+vfS2ej9809mKs6WTcXcncuToNb8ax6DVT12kHw3wt5xeJRCKRSCSS40bfjI/WXH7/7pWc7VrFTVf9l41BMOYt4J3nTiFmyZuc/cBOXIcExaQw58yxzJ+ZxdjsOBIiDWhuFyX7DrDsv2v45ycHqR40Ng8j1lE3MPy875A4PBuLKUCgaivVq/7Gnk/+i8s3WOSdKOkAazZJ828ic+psolJTMAkX/rqDNO35krIvX6a4oLqLhX3v5QnnWJJmXkzy+JnEZAzFEmFB91bjObiWym9epnD5OnzdWYbMWSSecStDpp1GVEoKJqNKsPEATXu+oOS/f6V4b1dlDB0RkUfq2beSMXkGzoR4DMKFr2wTVateZu/iL3B3uxfb3/2TXrSfwDTr78y/+QwMx8gSdALffJ/PX1jcYqQREUTkXUBy3jRiho0hMjkTS4QVfNV4SjZStfpVCr9ahifQNo8+yJP0GiF687TOpIubeXSuhhHwuBQqG0EHqr3Hp3x95WSvXyjEzZvHjWOMVH64lHeOp+HxMKLFgis5udHdLHl1Dflz5nHp7VN5644VFA7WUxtKLHOvHkuu2cPGD9eyeiAM40qQvMdqmJgD5S/E8/nHcjMUkHoJN4NWnzpJN9Yx7/wgAgg2GXC1/s66Pd0kUVQyLvYQa1aoXGynrDcHi75t9KTdv436PJn00pty+g3UbjOjtr5YWTP8REX1SynDS4/nsxDmlxOFQd0/FSKTYklLchAXayfKYcFmVtCDAVyNLiqKq9hT2IhrsK4NJRKJRCKR9Jg+GR+NwzMZGwGu1QfIDwIIkvMySRYqm7aUcGi9JqLH8fgblzA3okMGTifDJ+QxfPwYLjprKff871I2NPalROHARMTcF5hx/RlYFQGoaJoJc8oM0i6ZRmLek6x54lnqveF6HQ9V3omSDkTChYy9+wnSU21t9pSjsSZFY00ag1NdQ0nB0g4vBCHIi7yMSY89RbKtw851RAqRuRcSmXse6ac+w4ZnnqbW1aGckbMZdc8LDB3iQKCjBZoI+owYY0cQN30ksVMvJ+Vf17L+s51h8WoT8Rcy7p4nSUu2INDRVR8akVgz55CZeRopk55m7RNPU+cJXzuEXNaQ2q8nqLhKCo+kU7JJv+Zhhqd2mJbsyThyzsGRcxbpp73Mpid/Q2V9KObDDvLCiKemlqIDRkrqg4Nkoy789NoeZA1y8QwNo67w2T8c/H69QuDYqQaMk71+IWFK4crrcolWy/nLfwoPHyY6bgiBND5+e1D3beBfa07hwZkzWDhzPb9e7h2c86chjrnXzOEiRy2vrF43IMZHY56bEcN1qLex66vBYhAaeKRewsug1afdx8j5QYRuoPAPsXyzzHDsQ2RKkIzLmsm2G9m+YbBtug8uetTu30J9nlR66UU59Rorq++zHvqLrJ9Xctqpoc0GgVojjSU6zY39v7Dr8XwWyvxyojCY+6ewkTV+CLnODn3DbMYZb8YZH03WkEpWrzhI2Ul0qFMikUgkkm8jfTA+CpLzMg4bGr0Awsr48UkYtRo2bWs+snAzmrGbNRoKC/jkk+0s21hKYZUPJTqB6efP5QeXZhA7YQ6P3FXJlb/dSd0Avu2K1O8z/pozsCoBXKsfYNPrb1DfbCdy8k8Yt/B6onPuYvxlq1n++qrwGKFClHeipMM8gZw7/0B6qgWaN3Pwwz9zcMtWPB4T5rhMHNnzSDC4O70QhCTPYMdoUvGXfEXp8kVU7tpCc20TwjmC+Nl3M2L+ZCwj72LidbtY9sIn+A8LdZBw+eMMHeIA11r2/vWnFGzeR1ATGGKnkXnd0+ROSif+Ow8zZOtl7CvrY8uLDDIWPkJashnqv2b3S7+kcNt+giKayMl3MvaGm4gZ/sOW+r32DW0dgvu7f/a+/XQCq+5kyWZz99VPvYVp9/4PkeoGSlfva5M2gL/4Sw6uX0nNvp24a8rxNjSi29KJGnctORdfRtSQGxl//TaWPfsfWuyrfZEXLlTWPPcilzwX9owHFkVnzHQvV88IMCldI8oMk3/RwFWNCsXFRjbsMPHeKiM13ShUiVXJMoHuN/LllkFomDvZ6xcGHDOmc+lQBf/GjSzaf5y2YhQHEbPnkjRnDJFZ8RhNAucjD5JUV4+vqIimzeupWrqfwKDZBZeEDb2ZJYt2cdfM8ZzxnbE8981ayk6aHb8wIjSGXOglQkD9Yjsl7oEu0CBB6iW8DGJ9ioQgTgvgM3Fg9UlkGBgMDOJ2H1CkXsKAoPyVON5/ZSBE97z95PwyUGh4GxooLG2iqtZDs9uP16eiG81EJycwZlQc0TGJTJvk5rOVNXQ6jy2RSCQSieSEIXTjo7AwbnwiRq32iKHRmMqkMUb0hmI2FrZZunnL+Pf9z7NmeRXNbVd01U2880wJB7mZv1weR/zcqSx4fhdvVg7U6sJG3JkLibYItLKX2fy3V6n3AzTQtOZBNkbnctp3ZxJx2m2kfLia4oa+ljNUeSdKOgX77F8wdIgVmpex46Eb2V9yJCaot7aQxj1LKQ2XXnxbKXruLKo37CbYtmnqKzjw+kZcfMS0BcOwTLmelDf/S1Fta2c0TiZ5UjKCIPWf/Iz8jYcMVDpq7WoKX3qM2FHPkGwbR2JeEoVlpX0yYIn0yxkyKhKhV1Py6g/Ys6XuUEFpWvM71hvSOe3Wc7HPuonkRSvD0A6hEmL7BZvxN3WXp5GocWfiUHS0ne9SVt1mQlB3UvjnhZ2T1FfiLdtIfbOTOTefhWncFSTFvHOk/UKVJ+keg8b5Nzbzs/EaBq/CjiIDerZGfZEBT7RK3gQfE7J1tq4xUtONlVuYdMwCCIJ/sKn9ZK9fOBARnH7BKGJFgJWLd1JxPOpoiCf+ztsYMiUavLW49pbByGiCe0vRYlKJmJqKY6RC8/L9BAZNWHZJOHGt28bSunFcPG4S52et46/75O5SR0SGm9xJGvgs5H9qkhujrUi9hJdBrU+L3hJaPyhQB1XBTnwGdbsPIFIvJza9aj85vwwMuoc9qwu6+CKAu8lFrc/AWVNjMCfFk2atoeBED4ErkUgkEsm3mNCNj8ZUJo4yoTcUs6nVI8KQlcm4KIFvZRE72mwU6s0lLPm6m3x0Hxs+y6fk0lPINCaQM0SBygEK7m6cTPLEJARBGpb9q9WwcwgV94rXqb50Bsm2mSSPjaF4eS0gME9+klk/uAyrZxnbH7yeoooOu6QikZTbP2bi9ASCOx5gxRMvt8SvD0neCZROySZ19jSM+Kn7+NcUlfTwMsJQ5Xk2Ub6+mzz1ZmpXfoZn/m1EGEcQmWqAQ8YrUzwWmwJ4cJce6GxY9OyjuV4Fm8BgtXeRuYIp6xKGnnU5SbljsDsjwFNOc8ESSj59jgO7ytq89AjM2VOIUEB3LaPssOHxcEHxrX+LStfZZDhmkjTaSfHKhr7p5RDWHFLPv5us6acQGWNDq99B9Yq/sPvTbmKZhNp+R8M0lfQZw1BwUbHiE3oeHVbHv3cDLu0sopU07HHKkfY7LvKOle9oHvvvFSxo53Cpsfcff+PKv5Z17XUq7Fz8+N3cPwM2PPMnbv8qhqtvnsPFp6SSFqHTcPAAi//9OX/+uIKOUYH7m/ipHn44XoNKM/c+a2e55ufJ+/2set3Bv2sgOj3AhVM1GtuWU+icf1sD/zu6Q2YRfv7wdPsLTLe96+S2JUr7zQChkzPFx7WnBJiYphFlgqZ6hW3bzPxrsYXN3YXkDiHdyV6/cCBiR3LWJDME97N0jes4eAwLTLMuImNKNFSsZu/v3qZenUrOU1NofOEFKqoUjFl5xJ9qb3+YREQQf899ZI0XNL36KLtXx5H0nQXET8zAbNNQy/dT+/FHlH5dinqUdPmfdpgfDamkPnQXqWkBap6+n8J1wSNpxjZR+deP0GefS3x2BOrBzZS++B511hkMuXEeUakmgoXrKX7+A+o6rl+EHfusuSTPGY0jIxajFbSmJgKVZTRt2Ubt0o00132LL7TxHmDpOg8XnZXImfOS+Pu+8vB47bdBccQzfd4YTp+exZihMSQlOHAag9SXV7Fl9Vb+/a/1rGnXboKs736ft25P67BIjuOGF+/jhrYfBfbz6JX/xxvH7dCcTsr5HmKM4PnKTmH10Z9W4vzkXtvM8CkBHHbwlZopej+STV8Yu/YeFhqxc1yMOdNH0lAVixn81Uaq1tnY8R87lXXtnx3+6ypmTlTY/Wwk6vwmho/QCBRZ2fyskwNWNzPucJGWruPbY2PDM072l3cWacn2MOoiDxl5QRxROrgVGvIt7Hs/gt1be+p10ju9WEe5GXeVm4yRKmZdoWm3hYK3HOzapnQ9twmVkb+tZto4KH8ugc8X6yRf0EzeAh/xqRqKT6Fxj4W9b0ayY6tyRDeTofJv8Xz2QYcQf4YAE56uYWymoPDhRJav6ioEoY59jIdR53pJzQ3iiNZR/AqN+0yUfG0n/0szri7uAu9XfQqNuHkuRs/3kThUxWqFYIOCu8JE5QYLhV/YqOwqrF9v+lnr8y367HhFgofT32m7Ay2o/ns8n77Xom/nZTVceH2gQ+TuIGOeKGdMu4/MrL0lll11fqY8X8uoBAP5v0pgzbZjqEmojH60mskj4cATiSxdJhARQVJO9ZIxyU98hoo9XsNiBG+lkeoNNna9a6O8upuQk73tZ23oj3bvtT479pv+nl96288GSi+E2H69HH/hKGevMXmZ/UY9Q0ztP254M45Fr5l6tJbs9XzdiWPMZyHOL23Th9TPwtY/j05I7R6m3/dw4qt10azHEKuYibALpOujRCKRSCQnLr0wPhqY+oObeWCutWUxo5iJjROI4Cju/+ewls0ii50kBfSJC/jXW6cDKhtfeIlfLe4cVrMtutuLSwMUHX0AT5yJpIlERyqgFVO3u6hzmd3rqTkYJHmEleicMSjLl6Gh49/wIFu/nsqUubMYeeP1VD/+UpvLsRWsM37DmGlJ0LyEnX//v8PfhSbvBEoXfSrxaUb04OpehbsMVd4x8Ta2bGILlXYJAuV4mzWIsWBPyURQ0F6mbRiOaAPoVTQWlXR4AXEQteBPTLn6dKyKQNd8BD1elIgMoifeQNT480h843us/++21g1VBXN0PALQGw7i7WqXNbgfV5UGDhvOoSMQK9ei91Uv9qmMvOf/yB7mQKCh+ZohZiIpF79A7JB3aVI6ZhZ6+x0N45grSIkzoLu+pGRT7bETHCkNpqyx2BVAq8Pf1LPShC7vWLjYt7mI9a0v11GZGWTH9jy1kjCaB/4yn7OTFDRVQxgU4ocN5+qfp5Kqv8jdHzcM4ClrnQljgkQAW5ZZWdEARLZ/or7YxP8Vd0pGTamRja0GWWHRyM3QsKiCfYUG2trICus7pFU0Tr+mmV9P1zADuipwBXSi41Vmz/Uwa1KQp5+z858SEYZ0J3v9wkPkpBzGW0Dbu5+N3cWe7RNmIidkowiV5sVfUF+ngbPt9yrB/Zsp3999DiJmHFn3n0tsvAKaBooJU/pIkm5Ox6I/TcHXYdrJEQ5ir7sSRfOhKRbM2dPI/J8oYh05OKxuNCyYR55K1vXFND+x9oiRRziIWvg/ZM9LQBGg+z0EmwJgi8Y6Ig7byFysTfns/qJb1+1vAX62bCglcOZwsmZkk/5yOUVhnfwEWZddyrM3p2AEdE3D5/HhCpiIzUjn9Mx05p45mj/f80/+vuOIZcdbUcaGTcEWbwhsDMlLJN4QoHxPafvwbcEKKo9jTGAR6yV3topQjez50HLU8M4i1svMR5sYmgC6BkIB2xAfuXcGcOhxfPVFR4OYypA765g1L4gigKAg4AdLcoCMCwKkz/Kx7v5odu3vML8IjaG3NKBoAk3RsY/wMP2nGkMjfSRaFYLoRIxxM+MWExW/tR3ZLxQ6sRfUc/qNPmwGQBME3ALFoRI3zU3cFC/pL8fw1fsmjuXo3Bu9GEc1c8YNHqLNEPQIhE0leqKbKeN8xD8dy/Klx7jb0BAk+2cNzJihtlxLC2DXiB7vIWePnZ1be7ohfjQZKukL65l1fgCTAHRQ3QqqWSU6TyV6rI8EczyfLWpT1v7Wp9BIv6OWOWcGW+czBW8DKHaN6FFeokf7cDZaWPxphwVlKP1MF3iKzFRYWmorbCpxw1QMmkL9LiO+NgpvaGPYU6tMVGwTLe+pQiMqN4hVEbj3mWhqa1NQjbgDgGqiukBAkkbMMBWx7Rh9wRIgLlMH1URVQYtc53kNnH5t60a/DqpHwR/QsaYGyEgLkDHHy8bfxLBt9zF+p3vaz/qx3Xutz3b16ef5JVR5/a2XUNsvhPHXp3KGiq7QsN1MResOkyXdT3R0z5P3eb6mB/NZiPMLEHo/C2P/PBZ9658hjr82mKaez8d/mEy8Ar5l73D6L7YSStRic4ydCAHoQXxhOP8skUgkEolk4OiV56PV6SQl2db+JJXJSmKytf2DEQ5SIgBUDti7sGp0IHJ4ChkG0H3lbN83cB4AImEYdgMQLKK5qtVUFD2G6NgGGguLCeoVuCtd6COiMSUOxSyWtXhS6fVUvfEzika+RtaonzLuzGWs/mR3iwEu9lLGXHMOFqoof/0XFFepfZZ3wqRLHYXDAFRvoaExgbgz7yJ77gKiE6MR3nKa93xB8afPcSC/ot2LRMjtcPTWxZgxFrsBdN926ovbvNIF11K8ooCM80cQde7j5Jb/nIKNuwmoBowJM8n87r0k2nR8W59i3/b2JyItk3/P5KtPx6Lup+zNX5H/1QpcHhVhSSNmzi8Zd+X5xF/5LDl7z2VXwSEPw8M7cd2WtWXjQcGSmIGBtQT7pJcI4i57mmHDHNC0kj0v3M3ebcWohiRiFzzChO9cRrwCHa1dobZf900QTeKsMzELDf/Gd6k6mnufUBCKAhgxRg0leuL1jLjsXMxCJ7jnXcp74h3dG3m9JVDE8z9+pfUPA3Puu4enzjIdLUUbDOReOpes3Sv56U+Xs3S/F1PyMG745eXcPNHOrGunMvqzz9k2UGEmhU6kTUcALo/oxaaqYOX7Dla2/mUY4uH1u31keE089yc7K4/SZKmnurl3uoZJU1j2np0nlhupCkBUup/br/NwQWqAO7/nY/vjVnYG+5juZK9fWDCQOz4Nm9Bp2lNK0fH4WRYWDHYFgY7q7sb7+qgYsC84E+v+pex9fAkNJV5EfA7Jt11LyqgIoi48hYgVH7U5CNSXshrRt7/B1mfXo6aezojfnYsjcwT2Le+w/Q8r8cecwvCHL8WZO5pI61pqW38mRNZppM9NQKhV1Lz0GgdXlBBUW/Izpg4l+tSp2NrNSwbsTjNm0dPNJ52Ax4vLH8a5bQBo3FPKQW042cMyGRe5gqKG8Oav+xrZ9Ek+H32ez6ptlZS7NEBgS8rgwtsv4u75Q7j9F7NYdeOS1qgdOuWff8Stn7dmYMrhgfeu5iJHI58+8X88s6P/joZEn+Ui1QaBDRHsKTzakzqx5zbj3BfB0gcjOHhQwZDoZ8yP6hk3ViPtcjdxX0VS3WY8OM5sZOa8IIpm4OArUaz5xIzbD5ZhHibe1UhOlo/JP3FRdbeDmrYblEJH2xzFB4/a8KW7WPBUEwlZPuI2OHn/d3ZcsW7mP9tISp6PJJuN/a27jtaZjcxb6MMWNFD0DycbP7PQ5AZhVUlc0MTMG7yk3NDA+Pw41u86+hjojV7iTvMQ2BPBV086KC4VEBlg+C31TJutknVbI+U7Y9hT2X1662lNTB6pU/Wxk+1fmqmrFogolaRT3WSGZcNeJ/byek47P4BRUyh/18n6DyzU1gsQOvZsH9lXNJPYIVV/61Nku5h0RhBFNbLvz1Gs+8qETwWEjiU9QMYcD9HNndOF1s8EJa/EUHLorxFNXPSoi0i3hQ33RVHSze+d62sniw9F2jH6OOUfdWTbDRT+JZYNu7usFTX5RrRTA0TnBDFgOKrBTqQHiLGAXmOi5lCf8StULnGw72sLZbtMuFr7uzHBT/YNDUyZ5WfCD5sp+1Fkt2Hce9PP+rPde6/PI/T3/BKyvH7WS6jtF8r460s5QyZoZvOvD53G1Mm4u5K5c3u6RunrfN3Cseez0OYXCL2fhbN/Hos+tXuI4y8cCCFACIwWC3GpiYwZE4NF6ASrayge6JBAEolEIpFI+kQvjI8qyx56jEkPAZiY/asf89SZft784R95dJMKxnTufn0h10Zt555L3uaLnsZlNyVy+ZU5RAid6i/X82VHj5F+Q2B0xqEAulqH36UjEr7LlAceIsHhpeH97/DNO9vxN9SgEw3OBMwKRzzXPN+w+6W/Evfz24m55HGGbr+CvQcTSb/+PpKcOp6V97FtZdu7AkOVd+KkM0QnYRSgN2jE3PAOI0/NROh+VL+GEplJ9KSFRE04l4RXv8uGJbtbbV99bIfuMI5gyFmnY0TDt/Z1Ktp5zvmpf/8Otif+ldHTpjDszs8ZqvpQgwoGiwmtfhsVHzxI/qKP229kGycx7IoLsYlGql6/lo1fHgnZqvtKqP3sx2yKzmXmedlkLJhHQcEnBNHw1VWhA0rMEGwmaOhYdvMwHAkKIBCOOMwCgnof9OI8h6GnZqDoDVS88QN2b219awtWUPvpj9iW+jlTZqd0Gg+htd9RiDqH9HFOhFZG+TfLjrLBIzCd+hLzbz6j1evkEEF8BS+z9YV/tHhKh01e/2P2FfDbX33OklZnTLV8Hy/+YSWzXzmdUalZTE4WbCseoBctXVBSraCP1MibFCBlrZmy4ylPUbloThAHULLczgNfGjn089FQbObxl3WG/cxDXoqP74y28OAW0bd0J3v9wlLmSEYMs6Ogc3B/7fEZO7obX6UHHQeOGeOwrFhFbw82C38+B579mPr61lt6q3dT9vLXRD18NhGJ2UQmKLjKw2Ao0lVc63cQ0IDSnTSWnY0jU8O9bju+IFC9m8ZijajseKwJChxoMW4Zh2ViUUDfvYKSZSVHwsfqQYIle6h+c097OaZs/vetqzkvoqcFU1n75LPc9k7jCX0flVpcxYEgDDclMnKIwqIt4ayNTuG/3+DmTtOpjqfiAP9+7L+MnnQVF2aOYv7wr9ixaxBp0uYj98wgQjewf5EV9zF+Egx+CysfjeRAq8NvsNLMluftpD/bTGyyn6QkqD50SbMhQM4FPkwCmj+NYvn75sPj3LfPxurHNWKeaiI+082oyRHtw4TqgurVFtwaUGyhrLiJhKGCmlVWmoNAlYXSA5CSEyQqEdgPGAOM+Z4Hu1Ao/Vssyz494r2iew1ULIpieWyQsy8LMvx8H1t2Wbv3ZuylXvCZ2fh4JAcrWv9uMrHnj1E4h9cyOs1H7hkBCv7ZfTjA6FEq5S/FsuQD45GQwLUGmgvN7DPQiwMsXSPivEy4JIARQfW/YljypumIHF3gLrCy9RELlsg2sgZAn9acAJEG0Lbb2bTEdMQ7SBf4DpopeM3cOVFf+lk/4dpjwqMFsGcFcBos1B7lfcIyLEikAupe8+HnGt6P4bMudBasMpP/JydxeXVkp/nIHBpJTVfXm7XSo342kOOoN/T3/BLOfnY89dKH9gtp/J2I9HG+HpT9+gSYBw8TyvgLA+Yhw7lgajTtXBZ0HV9NJevWVNEsbY8SiUQikZzQHNstsSsMiUwcY0F4Sti4p9UDKzGDcYmCwO4DbOvxDqKRkVedz425RvS6fJ792+72d2z1KwLF3BpSNuBF1UFkziDGoQB2IkdOwixA9bdUTphsnZQX3PMUWz7cimaZSM7CH5Ky4GFyx8egV73Fttc/bhfGI3R5J046g9WOAETaNQyfGUvTF3ey/Acj+Rc0YXYAACAASURBVO8tI/jsx99hx4ZidCWZxGseJyv1kJmp7+3QGQvOcx4he5gFGhez650vOt995M/nwIvfY/Pijfg1EAYrRou5pfwWB6aIKIym9i8DyvCLSEk0ojd9SuGKLu6KxEfDhi/xaAqmnBk4DQA6gYI1NKsgrKeSOiG+QxoF6/SrSTzkMWyytoRn6YNeDDlziLUJdO/XlKzvcFxUb6R6+cd4Ou23htp+3aFgn34FsRaBXv0Rpfm99XTy49n6FJv++BAVR9sZCpu844lO0+otfNUhCqxWfJAtdTooUaQnhzY1hwfBxm/MFATBOdrNiz92c8spQeKFjvE4FEtJDDA1HtAMfL7qiIHtEGqFiY/3gi50poxSMfUx3clfv3AUOorUJAV0jerq5uNk2ArS9OUqPAGBcdyl5N5/DWmnD8OsGBCGnmy86Khb1h82PB7+tHw/rgYdlBgsceHawPERbGwNyam7CDRpoKsE6g8d+XYTdGkg7BgdnWUKR+Rx6VsnDf5mKht0EA5Sk8Lak1s42rrSW8GuAxooUWSkHOt3rH+xz3aTFQv6fhu7Nh+7L/s3WjnYIdKwXmqmqh5QVBwJbY6/pfpJSQFUI/u/MHc6YKAX29i7Q4DQSJ4Y6LDOEnjqDx3mUPA0CtDBUycOf+9rFqDoWFpDWiu5HoYkAw0Wdn3ZVdg8Qe1qCy4NTLl+Yo/SFL3VS3Crjf0dPWX8ZgpXGFvuCZzgp4thexi92MaGj4xd3kWqh8Gz2jbVS4oNaLCydZGp6ztPdYGv8UghB0SfrUKEQ8PSw/msb/2sf9AKzdT4QKQEiD108EMJMvr3lXzn1Womjzls5SEmO4AioD6/TUjMo84vRmpLBSgqkUlHf8HtST8byHHUG/p7fglnPzueeulT+4Uw/k5E+jpfD8Z+fSLMg0fo/fjriFZfweqVe1j2zR5W7GoM7QCjruGuKGXVymJK5V2PEolEIpGc8PQq7OohlMQMxicrBLcXsaV1RzRidAY5Ro2DWw9S3cOdytiZZ/HIwgzswVreffhDPqoY4MVFh1Bn2s7XKdw9k6yUSkoXf4pP5xgbvF4aPvwJe/LeZWTOD5k4FFALKXr5t1R2dUddqPJOsHTC5oCtv2D9q+8dvhtArV1F4Qs/I+KhVxkSN57M08ZT+O8NrfeZ9LUd2hUC8/j7mXjxZAzBQg6+dC8lNZ07qJJyOWN/9HvSYooofu1q9q5Zj9tjxpq1gKFX/Zqs+Y8yIyeLtQ89Qq1HBxSsWXktL4CmmYz4yVtkdyXenIpZAM5kLAZABb30bYq23crY8XEkX/cCufoD7N+8E79IJmraDxlzzVx0Vz26o8MlGSHpxYAtdRgGQK/YSVMXBwO04m00qXpLSNcu5PW6/bpCySHt1IkoBGle/S51R30T0Qksv5FPlwOKGVPMSGKn3cSIi37CtIcWUPj8QnZtqTq6t0Gv5PU3OqX7a+hkDtV9NDXrEG/CZu0qXf8ROGDlF6/oPHi1j9FZfq7Pavn8jl82cGGhiS9WWnhznYH6MFilDPEa6QbQfQbyK7p4QFfYU6Kg52o4k1RihJFKPfR034b69RlhxekQgIrLdfwGj77vc/b+2cbQ759CRPYkUlon0bRHHyC+IJ+6L5dS8U0xwS7bQcdX0tU84EV16xBjQrGGaeNJD6Advg4wiB5o+V87dIpFP/SZEeXwJKwTzN+LJ5hDRNpssn9qouLLbTTmH8Tb0I0vSmA3vzrrQX4VnlKfOOg+XG4dhCAy0oKCL+wGb3vmCC6/fCLzJqcyLNmBw6y0Huxp84zdiCAQlvuN+4whwIjzfRgRFC+yU98DI1fzga4MFwK/C4jVMVmOfKqkBHEqgNdIzcEuMtMVavcp6BNULOlBrMJ85M4mXaAGjihPC7TIUQNtvwfQMZp0QGAfHsSmAGY/4++vZUxXFTCrWASIaA2bEbq0woSgF1ehka4iEzcWGlH1IMaUIJEGaOpmqvNssVB33G6E0Ike3mLQUnebqezhOamB0Kd3h5n6oJ/YTBdz7tPZudhC2XYTjfXdhy8PqZ/19wD0mKgqgswRQWKHAFuBKD+puRoWk0bqhCAbtpvQFZXYbA00AzW72xuOjGk+RpzvIXNcgKgkFbOJDjcrCEw2veOH7YvRg342kOOoN/T3/BK2fnac9dKX9gtl/J2I9Gm+Hoz9Wj9B5sHDZen9+OuIumctv/r52l6J9RcV8HYRIAQmm42E9CTyRqUy+8xodq8pYGv5IFmbSSQSiUQiCYmQjI/2MZmMMGoUby2mSgMwMGp8Glbdw5Yt1V2f2u1AxOg5PPnAZLIMLpY//S8e/cY1wIsKHc3nQQeEydIS7tG9it2/n8KR8PhGDOaW3Rs94Ol6cyy4i32vPE/Kb35ClEHDs+x+8rc3hlHeCZTO721tUxfVy97vfCm5dxXlm6vJPD0J2/CJWMUGPHqY2gEAgTH7R0y5/bs4DDVUvrqQ7ZuqOz9mHMvwOx4lLcVP9SsL2fplcWu5vXgK3mbHU40Yf/9XMjJvZvSCd1jxQT46Cuao+BbPQFsm0bmZ3ZaiBRPKIeOeXkrxKz8l+p5nyUidRvYdH7cxXOqoFf9m5+qhjL5wOnibUfVWfYakF4EpIgoBaK66zh6fAL46An7A1vbDUNuv69orQy8jNcOIULdRtmpHz8e65idQs5WKT+6irtTHqXddzdBbH6Xpvpsoru2+5UOW1y/oeDxdGR909BbrO8ogONVcutnGrfkWpkz0c+qoAAsmqEQZdDKG+7lhuJ/zJtu45yULu/3HzutoWCN0LIDuFjR28+PR2Cxa7tC160QKqNRDT/dtqV/fEBgNABrqcY1CqeJb+x67tq3AOX080ePyiJmWjtFgx5o7kZSR44k75UMKnvkad6eDEzqar6vNCK31M3G0fd5ecmhsArqOrrXIOSL80PcKbS1aevHXFL2WTvY1eVjGzSZz3GzQNdTaclw7d1Lz36XU7nMPsvlpINBQD3n2GMI9+QkSZ5/HX349mWFW0ANeyg6Ws68x0LpWNZCQnUZmJBiMg8fz0TTZzfBM0Ktt7FrRE50Igr5uOvyhDtYmG4NDwyBAdyktoYO7wN+oACrCoWEWtNsM1Q/NCzpoWofP4PAd0qJVpbZotWU42lXi8o7xliD0I+ulDoSiF19j189pTQoBwGjXsRiha/cMgau8Kw+l8GGNbsndX2M4Epr5GAyEPvUDEXzzUpC5N3pxTHIxdZILdAjUmKjZamHvIjuFBUo7XfW1n/ULuoGaPQb0XI3YbBWx1YBxtJ94xUBzlYozz0+EMNFsDhKXDvhNVBUeSW6f0cgZP3ETZQGCCq4SEw3NAq117W7PChDpAHHUN+6e9bOBG0e9o7/nl3D1s+Otl760Xyjj78Sjb/P1YO3XJ8Q82Ibejr/wCtcJuN2U7i6kplFj/qkJjJg6hMbPC9jf0yudJBKJRCKRDDp6bHz88d/v5PSIlo0No8OJXSiknH8F753eeqo5zokigpz+szuYGgSCRfzxjvf5rKFzXuasKTz8yBzG2fxseeUN7n23mj7u74YBnWBTDRpgMMRidgio77jyE5ij4hCA3liFv8tNWRtR08/CYRCAgnXshcQ5l1LRKZ5sqPJOoHTN9S3ptDJcFV0d59bwVJeikwTOJCwKeNRwtQMoqdcy8Ud3EW11UffeTWxcUtCloVIZcTUZGWYILKVkTUnnFzfXV5RsqCJ9fjKR4+diX5SPS+ewZ6C6+W6+eOqtrg173aDXfsrW35xH1Rk3kT5xKpGxkeAupnHLW+z7+G30cxYj0FEbyltPgPZFL6G8wYTafl3lZSV21oVEKDpqwbuUloZyFFXHv/XvFBdfwYjMuWROz6Dkk6JuahYOeRIAzauwZqWVtdsUMkf7Wf+MnR0ZPm6/yMeY0R4ePNfADe8Ze31X32DhZK9f6ATxeHWwGLGY++HuGU8VjV99TuOGJizjp9L023/jGnoaaVfNxDHufIZddoAd/9x/nO81DE892+fix734FbavG0L0jDycuZlEZGdgjU3FOSuVyBnjiXz2z+xf39T6vAFHjBWL6GlZdAIuN42+E3u7EWHCYhGAjtcb3tPtwpnLXfdMYpglyN6PPuSXf95KfmObnqREcfWzd/KzCWG0VfcVoTLsAi82BDWf2ikfTFHDQ6VVudq6KP7zWxshddlw66VNgx+tOKpvEHoWDYg+BXUfRfPBqgAZs7ykjAkQPyJAVFyA5HkBkmd5SHosjpWrB8HpqV5Sm29CPd9L9PAABhTixwUw1lhY998A06/wk+iIwJUSIMYC+l4TNYc2wSO9TPofN1FmQcPnTpa/bKO2qU3GQiX3oWqmjjn2/NKjfjYYx9HJQn/opU/td/KOvx5xrPla9uuTDl9FJfsb4hkT5WRYhoWi3b7B91sskUgkEomkR/TY+BiXFkt6RPvPrDHRpMe0zy4qKYYogEAtEV2sfw0peTzw+DnMilHZ+/Zb/Pjl4hZDziBAr9yHW4UoZQgRCQao73A8TSRhT4xAoOGvLOwyLIhx5E8Zd24eim8nNcVJxGZfRt51X9Hw3Ad4OzwfqrwTJl1VEV6tNyFS+yav3SPxFzHu7t+QEBWgafHtrHt/fTcnyhUs6SNaQqN6qvB1+Sao4a+vQicZEZOKRQGXquFvqEYnCxGdilXQK+MjAJ49lC/6OeWLOhY+mSFZqYBK88E9hzfcQ9OLjr+5ocVjMiIGk6Dzy64lFpO5c/FCbb9O2GaTNiUFgY+6bz5qucQ+FPQqvA0aYCQidSiCboyP4ZIn6UTArbDhGxv3qhr/ujZA5pQAeYuMrO+DfdfrFviACLvWci9qF3k5HToKoLoFhyJYh5ruaJzs9esxWjNVtTpEK8TE2BA09eMLv47uqqbpy3fZq0aTd8toLKdMIuLN/d2GRexxvocq0eUusAnDcTK0anVF1H5SRO0ngDBhHjmV1BvOJy4jnrgrZ1G56RPcKmDK5t43rua8iGPleAiVtU8+y23vNB5nw+xxRtiJixKgB6ip8Ya1r1knjGJWtEAr38AjT24mv+NJAhFBQkyL4XOwoAx3MzJPB7eVXYuNx6VkarOCqoMpQmvxIulifrE4W+NYNCtdrrN6g7dOQUdFxKrYulqH9IDQ9KK31qOzi4bi0FrWNy4FfxiiS+tHLZCO0dL1N976lv5njlMxCnqk64HTJ6g1Jva/b2L/+4DQiRjtYcJtTQwbopL9PRe710VS09qf+rufhUpwr4l6zUvc0CBOs4GkMSr+rRaKNiqMvsZNSq5OWWwQhwKeAhPNrROuMc9LuhP0Shurn7dR2/EkraJhizp6uNXeMJDt3hv6u93DIa8/9BKO9uvN+DvxCH2+Hsz9+kSZBwcdeqDlIGS0wBFpRSCNjxKJRCKRnKj0+Hjcr856kImzHmTSxR+xOgDBHZ9z8eyWz07536006DrFb7zE1Fktn02c9xrv1nUQFjuCe5+4iLOTdUo+e487n91L7SBaRegVm6hv0kBJJWZEZudXRfskYjOMgJf6gh2dN/si5pD7/YU4jG7q3r+TNX96kIpGsE79DXmnpXfKL1R5J0y68s00uDVQUohI6uoSOwVbfGpLfg3l+A6F9uhjO4ioMxjzkz+QmqDjXnE36/659OgL+UNeJtY4LF0Y4UBgcsa2lCPob5Wn4S3cjk8DkTqLuNjwnTQViReQmmNGaEXUbN9/eKEdml5UvKV7UQGRNIrILja/lPQxRBo6b4yE2n4daoN54hUkORV03zeUrisN/cVBScUe16JnXe3uzTqM8iTdUnfAQJkKIkIjqZsN1Z6iVikUqyBMGiOTunhAaOSkawigsdJAnd63dD3hZK/fsQtdR2Gxio5CalpUF9tA/YFOcN/Bljk2MgazpY+bt3oAzaejIzBGWDvPnxEJWKP7wfdND+Df9Q1FLy5vqVtSGnbboPG5GxCU2BhSrYBaS2FJOM2oAmd8JFYBweJKCrsIsaEkZjIh9Vi/31pLCEUhOt0TGXaERvqFHqIM0PyVnQP1x0eMVmakUQPMQeIyui5HTHbL/OIrMXY6PNdbXHtNeDUQGX6S40PIoA96cQwL0tX04RwaxCBAKzV0G9q6x+iCoA9AxxzZRR92qDhju0ooqC8woulgGOknydbVM50ZSH22Qxe4tttZ+aydRhVEcpAY+5Gv+7ufdSqeBgi945XpnZ8rN1FTByI5QFyWn6RUQeVmE4H9ZsrrNBLHBYgdHkBBUJtvPPzeYY5tDadYZqSxi2j6It5PYle/3yEy0O3eU332d7v3WV4/6aXP7ddJ8NHHX6jl7IjaauxTQrqsp3eENF8P8t/NE2UeHHQIMxH2lkLrRz/dI5FIJBKJZJDTa4uJbfQQRhl1yrccoGWPSGHk+AwidS+bN1V0fWUKIKKyuPPxy7gsU6Fq+Uf84JHtlA+2o/rBdZRvqkDHSNSsq4hqZ4gyYJ95DQk2ge5dSfnW2vZpRTxJ1zxCZpKBYP4f2PppPlrte2x/7SO8xJF41WMMSe6wag9V3omSLrCGyu2N6EQQf9qFdNpftc4geXw8giDuPeuPLLb70g6OUxh595/ITDXg2/C/rP37IjxH7WcavrJ9BHQQphmkTErqvCltnUbK+GQEOsGD23C15qcVvE95lYowTWXoJfPp1mlGicEe7zxaIY5gHEbGd+8gxgTq/rco3t9mRIWoF3XPV9R4dIR1NmmTE9vLE07iZ52LrauZINT2a5d/MsmzZmNEJ7j1nS7CDx9BiUrH0q2bpYJl4k2kJRsBP41Fu7sJu9NzeZLucdj0o57Tt8RqxCmg+wT1XV1f2Qu0ShNrqwFF5YwZQTruvRqSApw7DIQuWL/TQKCP6b4N9es7fnbtqkZFkDA0Eedx2bAwYLB3edrjMCI+FpMCutdFsM9HwVX8VfWAgiVnCKZ2dRKYp0/C0Wc37/aIo91f2Hq/oK4F0dTWugV2Hz7o1bN/v+OWbrweDSOm8/AT1/LnP1zLMzdm0VMben+nAzBmJZFlAK2hjB2l4ZyzdVxNXlQdjClxpHfcOBVWpl4zlXHH2lDVfTQ10+KhGXN8TfEiyUvuDA0CJnZ/ZO52Td1X9FIzZWWAIUjWfH+nMCgi3UP2KB10hfKNpj571mq7rBRVAEY/o6/2Ye12vaThSOwsrS96MeR5GNJh6YPZz9BTgwigYaMlDBFYBK6Kljv7InMDndZLjlM9JHUzv3jW2ij3AE4veRcEujnsoWO2HynkQOjzqPd7GVvP8WmCtmfD+ruftUNX8LsBoWONOkYDq0aqCgQYA6Sc6ydWN1G2TYFgy//2cR6GDtdAM1JVcGReDzQr6DqIRBVHR/0IjeRL3CSE0WAzkOOoN/rs73bvq7z+0ktf2i+U8RdqOdsj8NS0zG0R6cGeh8wKkVDm68H+uxmu8SCGuTnt/jrmP1jHvKv8PTsYGHK7h05P14OK1Yz1KJWwpiYxJFKArtNQ75GHiSUSiUQiOYHppfFRYeSEdBy6l82bylsWd0oME8c5EcFS1u/oevtT2NP4/kNX8r2RJlw7VvDrp/NpsNuJjur4z0ZEmDf/eoeHms/+Tr1PR0ldyISF1xLlNIESiWPqr5h4+UyMBHF//Txl7e7bU7BO/w15p6aDZyW7X36ZZhVAw7vm12xfVQYRsxj5/ZuJNIZD3gmSTm+g8rN/0ayCKe8+Jl93Cc5II6BgiD+Fobc+RkacAd23ngNfb2uzqAxRnnUCw3/0IsOybAT3Psfm1z4jYIvFHNnxXwxG45E3Pm3Xm5RUBNFFFInXvMiomWMxGwGMGJPnMfyOp8hMNKBrJZR++cWR8KrB9ex9+2O8mgH7rD8y/eYbiU+KbDVqKBhjx5I4/z6m/H4pU+YNbWfsEENvYtz3bidt3FScSalY47KJnngjefe+zZjx8RAs4MC//3E4tFOf9NL0GftXHEATUSRe9UdyxqZjEIAxkdizniZvVjJdhpwLuf3a1DPxQtJH2hB6LZXffHEUD1SBccLDzHliEROvupnUsRNxJCRjiUohImsOGZf/jZm3XoJNAb1uEUVrK/soT9ItQuOchU38+Sofs9O1TkZ1Y1SQm84LECOgaouJzX21emkG3l9qxAWknurm/nlB4lt/B5xpfu650csYEwTKLby1Q/Q93clev7Cgc3B9IaUamHIzGHN0G2FoCCdxP/wpIxfOITorsoNHmUDEjCTtivEYhU5g7Saa+2xd1fBs30dQB2X0GWSenYXJBBjs2E+5iOzvDCG8FlwF6wW3MuquC0icnIH58AkPBUP6eNKvnYFFAW13Ps3H4W4iJSqBKdOyOWV6NtNHRPbYe7W/04HCsHFpRCng2rSPbeG1ouPeVshWHyhpk/jprSNIb3XiNzgTWXD71TxykQPvsdwM1P9n77zD4yquh/3O3b5ararVrGq5yN1ywTbYxoUWMCWBBEyoDinwBUII5JdGTaOGkgQChJIAoYViTDE2zdiOe69yk4t6b6ut997vj5VtdUurtYqZ93l4sO7euXPmnJm5c+fMnKkkL9+PLiycdckEstoLBBAWdOK/1UiCBXzrIzhQeKryAVQT+xab8evguKCWGZf4OLYWwJLlZupdDcSbQTtiY8/GMPQvfjM7X7Xi1iFibg3n3t5IcvKJRSDGeD+pF9Yz568VzL1AbbU4pId6sfjIvbOetOSgnUWkn6E/rSMnBWiwsOfz8IToq9lmwqODYayLqRf7sZkAg0bMrDpmXeuno8Pt9UorW943EUAnfkE1c6/zEBt9POYF1gwvo35exYx52gm99IE+o6+o4qJf1zPiDD8RzXZXmdM9TPpBI5EKBPaYKXM3S9Tb9aw5moGqwwKExuAL3ER1uiJCoXKvEV1opM3yYThioaQKQFC2xYSW6SYjE6g1UVl8IlVgt5kKH4jkRqZc58XR1DeIyAAZ19cw8wINNZyHRvdlO+qOPnvb7j3Krxf10gP7hdT+QpWzFTXbzHh0ME1xMW681univR7T7f56ALw3w9QehDNA0kQvKbleUoZ00Q49sHuodHU8aErK4IILRjJtXCLpiRE4I0xYrWYcMU6yxgxlzpRY7AJ0dxX7C8J7HrhEIpFIJJLepXsL2JRYJox1IvwH2dDkaBTOdCYOUVAPHWZrB2EuDNmjuXSsFQVwjJ7JP96Z2UEGKmsfeYKbFzX02QBDL3yBba+fwdTrziFi+p+ZMf0PaJpAKAoCDf/+p9j67toW4fpF/HcZc81FWKml/O1fcbi42Zo7vYKS135H4fDnGDz854ybv4o17287nj6U/AZSOnX/k2x9N5czrphK1LynmDHvL2g+DcVsRgB64Cglr9zF4VK1x/mJtItJHRqFAEzZtzH1L7d1YGUfFS9PY+2X5U1/rmffsw/j/PkviXNOJOsnH5H5Ix9qwIDBbAzKqVVQ9d6t7NnZ0Ow5Gt51v2RDlJVJV52D86wHmHrWvajuelQRgclqavowCNCwqVWNNqcRN2chafPaSqf7D1P87x+xZ09D299CsoOLyv/+nIPZ/yY760yG37mKbE89msGB0aTj2fg25SOuIKGdUD2h2i+IkcgzLyfKKNBrllK4o215WqNETyDlWxNI+VZ7v+poNSvZ9/f7KG1or4fofn4hYUhkwb0XMC/2xGdfVLoJUEg5/2KeG+873n+p+Ru45/EdlPa3Xd4nQTNojD/LzYSz3PhcCoW1MMisk/mTOq6P14g2QmOhhT99YMIVhvyKVtl5MLOBe87QmPWdBmZeIqj3B3coKoBWb+Tpf1vY6Q9PutO9fOEgkLeH5UXTuTYlizNHGVixOdyHCGlgcOKYdzGRc+ejNVTjrQaTOQLbXb8kKSEekwnUw19z6K289o7I6X6OO7+mJG88qTlRRF/zU6KuVtExIIQfz9IlVI6+iITBYcjoGIoN+5SziZhyNml6AK3Bg6ZYMNpNCAF67R4KX1n/zV4kocQwbUo8Bt3Dmq8P0hjmx2vFm/nrf8bxzI2DGXPVAhZd7qWmQSfCacWiBDi46BOWZVzIj3M7eYjuZsX72yk6cxKDz7yQtxadxZGixmCo8UARL//6Q5ZWdZK+q0R6GTkvgNAMHFxsCXvotdY0LI1izYgqzpqjknZTFWnXC3w+MNmD4dn0GgubHndQ0YHTrLu4V0bxRbTOnIVeoufUcc7sOjS3QkDomK368WPx6ta2StgjvQgqv7aiTHMx+x8uAi4FYdMwGADVQP7TTg5UhKd8ga0R7NrlYdJoldSbKrlioUBDRxGCmg8dHBhfz4j2Qu4hqHw7mhXOGmZc5CfpihouuhwCLgXdpAXP5BaCsv0tU/W6PhWNmOkuzpju4gxd4K8XqIqOJaKpvlRb2PS8rc2upN6uZ8fRFQqX2GiY0ohjch0X/8tFXamCqgEBEzv/6ORQs+/WhjwTbt2P3ahTv81MfdO4zbfdQmXAS6IJ1P0mqprv7CyzseldN+de5Sfusmq+fZHA0ygwOTQMiqB2SSSHU+sZNzZ8xeqbdkT39dnLdg85v17WS8j2C7H9hSpncwJbIti2xcPUXD+jHihjeINCQAVUE9t+FUNeadONhgA5v6gjPfpEWktqUKCI2XWcN0qcOErkqJ1V/7DS2ELeEPrrAfLeHCj9YG9jsEWQNjyCtOHt/aqjuevYtfYoReHWi0QikUgkkl6lW85H4UwNOhrzTzgaLaMzGGPSqdh2hKMDbIK9ffw0fPljVpXewLCLriQhewgWix9fyQ4qVj/Pvk+W4Gq+itUwhIyFd5MQCb7tD7Ljy/y2jtP6Zez+11vE3n4VURc/xrBdl7Fnryu0/EKVs8/Suaj98BpWHr6e7PO/Q8KQoVhsEKjZT/3eZRR88iwFByvbcTaHml9oBA4+w7rfrSX1vBtIGTcFZ2IiRqOfQPUB6vZ+SdFn/+To3tK2cuoN1C69iRW7vkXGuVeQOHICEbFRGALVuAsKcR3dQMXmDynavK1FWr3wbnZ9UwAAIABJREFUHfYujmDwuCk4EpKx2ASB6gPU7vqEo0tepLigvgNJQ9SLez15D15K/cV3kDn1TCJjrOjVmyle8TR5S31kP3xFB/mFaj/AmMvg6cNRUGlc/y6VndpLx7/ubta55zBo7ExiMzKxRidicdjAV4OneDtVW97j8BeLqa3vwA3Rrfx6gLCSPjqDSYlt15zakpKZmHTi74B5H6dsk8ypQld49x9O9o/zc84EP7npKsmJOlYB9niorjDy6SYL//rCxKFw6VhT+PzVSI7mebnmTB+5g3WiTFBXaWD7DjNvfmZhU3sfx6GkO93LFy4ChXy0rJwFNwxi5tmpPL75cEcbd0JDr6Xs0YdonJRL7NSRRGYlYk6xoQiBIRECpQeoXLOK4o+3n3xnWldRSyl94p/oV11IwqQ0LHYdtfgA1cs+pWh5gIQ/hCebIBrer94h3zMW5+gsItITsERFYFS9+IuO0rB5E2WfrKOh5rQYOIWMkjKCucMUtOo8PlrjOQULz/xsf+kVFhbO4sffHcXkLCdRET7K9ufxxfsreP7jOs7/y8mfUr92CTf/rp6brxzDlGExZA6NCu7W9XuJNQrajR7QTZzzGkmLBC3PTt7uXjicSTVw6Mk46ra6GH2el8QsFasZfKUmyjfY2PWOjdLKMMqhC6oWx7B4m4cRF7tJG+vHGadjDAgajhipP2SmaJ2VQ2tNLbTZU70E9jj4+mMT4xc0kj5Cxew1UJNnYd9bDvJ2KuGrc6qR3X+ORbu+npwz/Dgc4Cu0cOQjB1s/g5zO6plqoOC5WBavdpNzgYfBowJEOHVoMFC9z0TJKjt7lhlaytrL+qxbFsVKt4fB43zEZak4ojWMqoKnwETZeiu7F9kpr26/bL1az5rh2xTJZw8qjL/MQ1KWijNTDYanDAisrb6AtUMmqnxgNyuUbj1xrqNeaabkKCQOgdq9plaLRQQVb8SypKSB8Rd7SExXsdgFjYcsHPnEwfbPFTLv72g8HyJ91I6ge/rsdbuHmF+v6yVE+4Xc/kKVszmagb0PxqJ+v55RM3w4Y7RgyFhVo2V0eQ3nCB+Jg9o+wpjgJ6FZOFXdbKG9V2d3++sB894cIP1gb+IrPMLXgSgSE50MirZgs5mwmhVQVdz1jZQXV3LgYDXV3m/yCj2JRCKRSE4PxLC0JPlGl0gkEkmHCKeXJ+/xs/pBB6+HaZdIf+J0L1+oKEmTeebVi5jcsJnbFnzAqo7CeYWL6OkMf2wytb/5G6Wlcmhy+qMwfOGP+M/CQRx97UW+90xhmM8uHUCYfUz+WxUjExUOPxLP1yu7fST76YnUS3iR+vxmIu3ePlIvAxtpP4lEIpFIJJIBgRylSSQSieQkCE7v/Vmne/lCQyvZxktLaiFuFFfOjTy15/wcRzodvzHYsvju/AQU1wH+9U7RN9fxCFinNZKdCHqxjT1r5dD8GFIv4UXq85uJtHv7SL0MbKT9JBKJRCKRSAYGfRhsQSKRSCQDAr3F/04/TvfyhYyPda+uYM25FzH9yimMWvrFKTlf8ji6HrSBNMQ3AEHKBWfyrUEaB175io/LvslG17HqJva8YcS7x0b5N9kL2wKpl/Ai9fnNRNq9faReBjbSfhKJRCKRSCQDBRl2VSKRSCSdY1Y5f7ZKwQozO0916M2+4HQvX48wkDlrGudnq+xYspZVxadwyGBJJe6CFDzL1uNqlEOT0xphY/xFU5gWV8eqd7awo6GvBZJIJBKJRCKRSCQSiUQikYQT6XyUSCQSiUQikUgkEolEIpFIJBKJRCKRSCRhQYZdlUgkktOM+x6pYU63e3fBjg8iufVLRZ5/KOkSWc8/SIy5u6k0XG88Rt4nladCJIlEIpFIJBKJRCKRSCQSiUTSD5A7HyUSiUQikUgkEolEIpFIJBKJRCKRSCQSSVhQ+loAiUQikUgkEolEIpFIJBKJRCKRSCQSiURyeiCdjxKJRCKRSCQSiUQikUgkEolEIpFIJBKJJCxI56NEIpFIJBKJRCKRSCQSiUQikUgkEolEIgkLxr4WQCKR9DHGWYx9/BXSHUc5+KfZ7N4X6GuJBhgGzr77Lh4/38TBf/2TK58vRu1rkcKMiPTxl3t9rP2zgzcqu5HQoDH9HA/XTvEzPE7HZgQB7HjPyU++UNBOlcDdJOTy9TIzr6vlwSk6hz6N5LoPDf27nhniufZvP+L2YSU8ceNLvHK0g+OlhZ1z772FB+d4efNnz/LwFl/vynm6IDSG3lPO9ElQ9s94ln5gQB7oDQiNYfeVMy0XSp+NZ9lHUi8DHqPK4O80MGa2l9hEDaMREIKKF+NZ8r60r0QSLkSyiwuerife0PJ61avxfPyWsRttTSftjjJmz9apfSuOxa+a2k/bH/pr2b9IJBKJRCKRSCRhpWfOR2sOf3zvSi5wreGmqz5lcwCMY87l3afPJOaLt7jgvt24AISZjDNGM29KBuNGJjE0PYZBkUY0j4vi/AJWf76B1z44SFG/mXM0Yh15A0Mv+h4JQ7OxmPz4y7dTseaf7PvkU1ze/pLfQEkHWLNJnHcT6VNmEZWSjEm48FUfpX7flxR/+RIF+yva+aDrfn7COZbE6ZeRNH46MWlZWCIs6J4K3EfXU/a/l8hfuQFvRzP25kwSzvkxGWfMJCo5GZNRJVB3hPp9n1P46fMUHGhPxtAREWNIueDHpE2ahnNQPAbhwlu8hfI1L3Fg2ec0dtgeert+EpL9Qilfj+zX+lnx32fK7//EILuC7n6HjT+9nVLpV+0RQnTnbp2JlzXw0GwNI+B2KZTVgQ5UeE6NfD2le+WTdEbcnDncONpI2YfLebcjxyOA3sgXr6wj7+w5fOfmKbx9yyry+6tXVYll9oKx5JjdbP5wPWvL+2AaUgkw5uFKcodBybPxfPaxnAwFpF7CTb/Vp07ijdXMmR9AAIF6A66m90mju4MkikraZW5izQply+wU9+MFJn1OV+z+TdTn6aSX7sjpM1C1w4za5Hy0pvmIiuoVKcNLl/uzEPqXgcIAqJ/CbCd9WCJZKZFERZgwCRV3vYvSo2Xs2V9LQ38dG0okEolEIpFIOqVHzkfj0HTGRoBr7RHyAgCCpDHpJAmVLdsKOT5OV+K55Lb5LMxoFeXVEUnW2JFkjc3hkgvX8Zu7PmVFZV9Pb5iImP0s064/B6siABVNM2FOnsbgb59Bwpi/sO7Rp6jxhEvOUPMbKOlADLqEsXc8SmqKjRNz+9FYE6OxJo7Gqa6jcP/yVh+CIeQXeTkTH36cJFsrD0JEMpE5lxCZcxGpZz3JpiefoMrVSs7IWYy861myMhwIdDR/PQGvEWPscOKmjiB2yhUkv34NG5fuDstuIxF/CePu+guDkywIdHTVi0Yk1vSzSU+fSfLEJ1j/6BNUu8Nnh5BlDcF+IZWvJ/ZrI3Q8Sd+7k3h770SWdldWcfiIkcKaQD+ZoA0/3fbLWQNcNk3DqCss/ZeDP25U8J8KwcLEQPA7NtYpHCmDogb6dz0zJXPltTlEqyU889/84CKkTlAPbuL1dWdy//RpLJy+kXtWevpn+QxxzL76bC51VPHy2g194nw0jmlk+FAdamzs+aq/OIT6HqmX8NJv9Wn3MmJeAKEbyH8slv+tMJx8B70SIO3yBrLtRnZu6p+T7v2FLtn9G6jP00ov3ZBTr7Sy9m7rsb/I/L8yZp4VWm/grzJSV6jTUNf7o60u92eh9C8DhX5eP4U9likzM8mIVAAdXdPRMGCPjiIr2snglGJWriyisj9/SEgkEolEIpFI2qUHzkdB0pi0445GD4CwMn58Ikatki07GpoN2FWqDuzn/eX5bNxdytHSesqrPGj2aHKmT+LHN44nZ/gZ/P7OYr77262U9+FIX6T8gPFXn4NV8eNaex9bXnuDmgY7kZN+wbiF1xM97HbGX76Wla+tCY8TKsT8Bko6zBMYdutjpKZYoGErRz/8O0e3bcftNmGOS8eRPYdBhsa2u+ZCyc9gx2hS8RV+RdHKxZTt2UZDVT3COZz4WXcwfN4kLCNuJ/faPax49hN8xzN1MOiKR8jKcIBrPQeev5P9Ww8S0ASG2DNIv/YJciamEv+9P5Ox/XIOFvfQ8iKNtIUPMjjJDDVfs/eF35K/4xABEU3kpFsZe8NNxAy9LVi+V/9H8816vV0/Q7JfqOUL2X5tFIxpzJ3kTImksaQAW1LqKXYsqax7+jm+/fQpzaT3UXRGT/WwYJqfiakaUWaY9OtarqpTKCgwsmmXiffXGOlovYgSq5JpAt1n5Mtt/dDx2MPy9QUb349kwft9LcXJcUybyneyFHybN7P4UBde6HoDXyzew+3Tx3PO98by9P/WU3zazPiFEaGRcYmHCAE1y+wUNva1QP0EqZfw0o/1KQYFcFoAr4kja08jx0B/oB/bvU+RegkDgpKX41j0cl9k3XX7yf6ljxAWhkzKICNSoLvr2LXxMPtKvfiFkaiUZCZNTCAuNpkzRtezbEs9MoiNRCKRSCQSycAi9G1BwsK48QkYtaoTjkZjChNHG9FrC9ic32zIrpby2j2vc/9za/hwRT5b91ZQVNFAyZECvnpzET99PI86TeCcNoG58X25/8RG3HkLibYItOKX2PrPV6ip9YNaS/26+9n87loCGImY+ROSo8IhZ6j5DZR0CvZZvyYrwwoNK9n1p8vZ9sknVBcW4KnKp27fcoqW3MfWj9a3cj6GmJ93O4efPp8vf3sjOz9+l/KD+3HXlNJ4ZAVHXruWzZ/no6FgmXw9yTHNqr5xEkkTkxAEqP3kl+RtPkhAA9BRq9aS/8LDlLl1hGkcCWMSe+zIEqlXkDEyEqFXUvTKT9m37VAwP7WG+nV/YOMrS/DqRuwzbiIpLHYIldDsF3L5QrVfa8wTyV5wJdbyN8j74kD/2bExkDBozF9YzzNXe5mTAoWHDdRogiOHDZTrGmMmeFl4sY/sTswgTDpmAQTA199mcMJQPkkHiAjmXjySWOFn47LdlHbR9q4NO1herWMZN5H5mQNhH2rvI9IayZmogddC3hKTnBhtQuolvPRrfVp0DAABgdqvBBv49Gu79yFSLwObbtlP9i99gnDGMWSQAfQAR7ccZFeJF78OaAFqC47yv801eBE4MhJJtZ70cRKJRCKRSCSSfkboOx+NKeSONKHXFrClaWeDITOdcVEC7+rD7OrGsrTqXQUc0XIYY4hicKKAsj5yFxgnkZSbGHRCrXidmhZn0qk0rnqNiu9MI8k2naSxMRSsrAIE5kl/YcZPL8fqXsHO+6/ncOuD5UQCyTd/TO7UQQR23ceqR1/CpYaa3wBKp2STMusMjPio/vgeDhd28TDCUPNzb6FkYwfP1BuoWr0U97yfEGEcTmSKAaqavixN8VhsCuCmsehIW2eV+yANNSrYBAarvZ2HK5gyv03W+VeQmDMauzMC3CU07P+CwiVPc2RPcbOPXYE5ezIRCuiuFRRvq24tKN6Nb1PmuoA0x3QSRzkpWF3bM70cwzqMlPl3kDn1TCJjbGg1u6hY9Qx7l3RwAF9I9utB+UK1XwuMRJ5/L5nJNZQ++xRVlse6IHMImEbx8Kff5Vxz84saB/71T658vrj9XafCzmWP3MG902DTk3/j5q9iWPDDs7nszBQGR+jUHj3Csjc/4+8fl3KyqLKnmvgpbm4br0GZmV89ZWel5uMv9/pY85qDNyshOtXPJVM06lp4nXXm/6SW34xq9bAIH4890fKAzx3vOfnJF0rLSSChM2yyl2vO9JM7WCPKBPU1Cjt2mHl9mYWtdR0IG0K6bpfvWNlGKrz7mhX/VA8XZeg0Fpt4/jUbyy0+fnmll7MSdWqOmHn6VRufV5zIT7GpTM71c/bIACOTNRKjNSINgtoqAzt2mfjvFxY2tm4qAEY/f3jExdxWb+r8TyO57kNDB/XshB22vuPkti0a35vv4eLRKslWqCs38sUXVp5bazgl9UzEjuD8iWYIHGL5OlfXnf+eIyzf4ObS8xM4b04iLx4sCc/u7WYojnimzhnN3KmZjM6KIXGQA6cxQE1JOdvWbufN1zeyrqzFnn8yv/8D3r55cKvBUhw3PHc3NzS/5D/EQ1f+mzdO2fhFJ3m+mxgjuL+yk1/R+d1KnI+caxoYOtmPww7eIjOHF0Wy5XNjcFKvNUIj9mwXo8/zkpilYjGDr8JI+QYbu/5rp6y65b1D7ylneq7C3qciUefVM3S4hv+wla1POTlibWTaLS4Gp+p499nY9KSTQyVts7Rkuxl5qZu0MQEcUTo0KtTmWTi4KIK927u666R7erGObGTcVY2kjVAx6wr1ey3sf9vBnh1K+3VVqIz4fQVnjIOSpwfx2TKdpIsbGHOul/gUDcWrULfPwoG3Itm1XTmhm0lQ9s94ln7QKsSfwc+EJyoZmy7I/3MCK9e052jXsY92M/JCDyk5ARzROopPoe6gicKv7eR9acbVzpnJvapPoRE3x8WoeV4SslSsVgjUKjSWmijbZCH/cxtl7YX16049a7o/qM/WofLdzH23+SFsgooX41nyflDfzssrueR6f6vFYgFGP1rC6BaXzKz/USx7qn1M/kcVIwcZyPvdINbtOImahMqohyqYNAKOPJrA8hUCEREg+SwPaRN9xKep2OM1LEbwlBmp2GRjz3s2Sio6WFjR3XrWjN6we7f12bre9Hb/0t161ld6IUT7dbP9hUPObmPyMOuNGjJMLS/XvhXH4ldNXRobdLu/bsNJ+rMQ+5fm6UOqZ2Grn50Tkt3D9H7vDpZYB04F8NVRUNJ2AslTVEGxL5pMcyQpgwwcOioPf5RIJBKJRCIZSHTD+Whgyk9/yH2zrcFBrGImNk4gAiO59z9DgpOEFjuJCui55/L623MBlc3PvsDvlrUNq9mcqBEppCqA1kh1Td/NuovEXKIjFdAKqN57uK3MjRupPBogabiV6GGjUVauQEPHt+l+tn89hcmzZzDixuupeOSFoHMRAAXrtAcYfUYiNHzB7hf/ffy30PIbQOmizyJ+sBE9sJaitQe7PAkdan4nxVNHQAeESosE/hI8DRrEWLAnpyPY3zJP2xAc0QbQy6k7XNjqw9NB1Ll/Y/KCuVgVga55Cbg9KBFpROfeQNT4i0h44zo2frqjaSJdwRwdjwD02qN42vt+ChzCVa6Bw4YzazhidXBnYY/0Yp/CiLv+TfYQBwINzdsAMbkkX/YssRnvUd/ODq/Q7Bd6+U5KR/ZrLvOgBYy6aDz6/j+Qt64cfWaXhA4BFwe3HmZj06RKVHoa2bFdT60MGsV9z8zjgkQFTdUQBoX4IUNZ8H8ppOjPccfHtX24ul5nwugAEcC2FVZW1QKRLe+oKTDx74I2yagsMrK5ySErLBo5aRoWVXAw30BzH2B+Tau0isbcqxu4Z6qGGdBVgcuvEx2vMmu2mxkTAzzxtJ3/FoowpAuxfABC57wr3Bg1CCg6CRk+7rpB43x7gPEWgRudpGwvv7rCwJZnzcdDtmbMauTR+SpGQNfB6xW4AjoxCQHOTggwa4qfZ/8Rwb8PtSqfLsjfb2Rz05s6KjFAVitZO0NE+/ntz92cGwuaCooB4pL9fPfqAEl6JL9eq4S9nkVOHMZ4C2gHDrG5WzFrfWzbVIT/vKFkTssm9aUSDodVOEHm5d/hqR8mB+2gaXjdXlx+E7FpqcxNT2X2eaP4+13/4cVdJzw7ntJiNm0JBHdDYCNjTALxBj8l+4pahm8LlFLWrlcvTNLHesiZpSJUI/s+tHQaxljEepj+UD1Zg0DXQChgy/CSc6sfhx7HV5+3doipZNxazYw5ARQBBAR+H1iS/KRd7Cd1hpcN90azp3X9FBpZP6pF0QSaomMf7mbqnRpZkV4SrAoBdCJGNzLtRyZKf2/j+BG/Qif24hrm3ujFZgA0gb9RoDhU4s5oJG6yh9SXYvhqkemk4dW6oxfjyAbOucFNtBkCboGwqUTnNjJ5nJf4J2JZufwkZxsaAmT/spZp01TEMVXYNaLHuxm2z87u7V2dEO8sD5XUhTXMmO/HJAAd1EYF1awSPUYleqyXQeZ4li5uJmtv61NopN5SxdnnBeuL7lPw1IJi14ge6SF6lBdnnYVlS1oNLEKpZ7rAfdhMqSVYWmFTiRuiYtAUavYY8TZTeG0zx55abqJ0hwh+rwiNqJwAVkXQeNBEfXOfgmqk0Q+oJir2C0jUiBmiInacpC5Y/MSl66CaKN8fzNd5US1zr2ma6NdBdSv4/DrWFD9pg/2kne1h8wMx7Nh7kp3dXa1nvWj3buuzRXl6uX8JNb/e1kuo9guh/fVIzlDRFWp3miltGr9YUn1ER3c9eY/7a7rQn4XYvwCh17Mw1s+T0bP6GWL7a4Zpynw+fmwS8Qp4V7zL3F9vp23UW4HFGqwkusdHY3vjPs1LfSNgUYiOtaEcbZA7kCUSiUQikUgGEN3a+Wh1OklOsrVcQWeykpDUKgZGhIPkCACVI/ZWkw9CoCgCIRTssXGMnTGFW344kmgFXNu283lhHzofBw3BbgACh2kob3IVRY8mOraWuvwCAnopjWUu9OHRmBKyMIsVeHRAr6H8jV9yeMSrZI68k3HnrWDtJ3uDDrjY7zD66m9hoZyS135NQbna4/wGTLqUkTgMQMU2ausGEXfe7WTPPpfohGiEp4SGfZ9TsORpjuSVtgzbGaodOrcuxrSx2A2ge3dSU9DsUz6wnoJV+0mbP5yoCx8hp+T/2L95L37VgHHQdNK//ysSbDre7Y9zcGfLlbCWSX9k0oK5WNRDFL/1O/K+WoXLrSIsg4k5+7eMu3I+8Vc+xbADF7Jn/7EdhsdnYDuUNTjhpGBJSMPAegI90ksEcZc/wZAhDqhfzb5n7+DAjgJUQyKx5z7IhO9dTrxCG4deqPYLtXyd04n9jt+SQPKVdxBnPsDBt17BpYG57V3hwX+Yf/z85aY/DJx99108fr6psxTNMJDzndlk7l3NnXeuZPkhD6akIdzw2yv4Ya6dGddMYdTSz9jRV4eaCJ1Im44AXG7Rjcl0wepFDlY3/WXIcPPaHV7SPCae/pud1Z0sVE45q5FfTdUwaQor3rfz6Eoj5X6ISvVx87VuLk7xc+t1XnY+YmV3oIfpQi4fgE4gz873XzRTm+jhr7/0MDYlQM5uGwuetVAa5eWxX7uZMtRPrsXMZ01NXvcrbFtrYskmE+sPGihtum6LCXDhpY3cNinATVd7WfeQlT3N9aQaeeHvDl5o+nPmdbU8OKXrEg+f6SG9wMJvnrGyskRgig3w/WtcLBymc+Z5XnI22NgV1gXkBnLGD8YmdOr3FXG4m8+u21fEUW0o2UPSGRe5isO14ZQNdG8dWz7J46PP8lizo4wSlwYIbIlpXHLzpdwxL4Obfz2DNTd+0RS9Qafks4/48WdNDzAN4773F3Cpo44lj/6bJ3f13vRX9PkuUmzg3xTBvvzO7tSJvbAB58EIlt8fwdGjCoYEH6N/VsO4sRqDr2gk7qtIKprZxnFeHdPnBFA0A0dfjmLdJ2YafWAZ4ib39jqGZXqZ9AsX5Xc4qGw+QSl0tK1RfPCQDW+qi3Mfr2dQppe4TU4W/cGOK7aReU/VkTzGS6LNxqGmWUfr9DrmLPRiCxg4/C8nm5daqG8EYVVJOLee6Td4SL6hlvF5cWzc0/kEbHf0EjfTjX9fBF/9xUFBkYBIP0N/VMMZs1Qyf1JHye4Y9pV1nN46s55JI3TKP3ay80sz1RUCEaWSeFYj6WGZsNeJvaKGmfP9GDWFkvecbPzAQlWNAKFjz/aS/d0GElql6m19imwXE88JoKhGDv49ig1fmfCqgNCxpPpJO9tNdEPbdKHVM0HhyzEUHvtreD2XPuQistHCprujKOzgPen62smyr5v+MHo581/VZNsN5D8Ty6a97ZaKyjwj2ll+oocFMGDodFwiUv3EWECvNFF5rM74FMq+cHDwawvFe0y4muq7cZCP7BtqmTzDx4TbGij+WSSVHfaNXa9nvWn37uvzBL3dv4ScXy/rJVT7hdL+eiJnyATMbL3n2Ko8nbQ7ypg9u6vjl57210FO3p+F1r9A6PUsnPXzZPTI7iG2v1ODOP5FaY2wYEA6HyUSiUQikUgGEt040UplxZ8eZuKM+8md8Sd+tsSNptXyxk//QO6M+8md/QKvFOroDTu489z7g9dm/IGfLGpoMbnrvOAqVi+/mw1f/Zav3/0Jf79jEqMdOtU71vCbB9ZxpM9GkwKjMw4F0NVqfC4dMej7TP7jx0y/93OmfXs8Cjq+2spgeZyDMDfXnvt/7H3heer9EcR8+xGy0s0gUkm9/m4SnTruNXezY3VRM12Emt/ASWeITsQoQK/ViLnhXc74/jXEp8QgNB0lMp3oiQsZ/asPmTR3eLOK2EM7dIRxOBnnz8WIhnf9a5TWN6+VPmoW3cLOdfloEZMZcutnnPv8Ps5/bi/nPfofhmdVUvrBzax+6tVmO1oB40SGfPcSbKKOiteuYfMnX+NyB2/QvYVULf05Wz7dj27IJu3cOU2efg1vdXlwJ2NMBrb2/FXmITgGKYBAOOKC5+b1RC/Ob5F1VhqKXkvZGz9l7/YCVB0IlFK15GfsWFlCW0dhqPYLtXw9sV9QXtO4uxgxKRbvmoc4uL+DULL9BLN3P4/87jO+OORBBTwlB3nusdXkBcCQksmkpD48804XFFYEd1aMmegn+VSfe6ioXHp2AAdQtNLOfV8GHYgAtQVmHnnJyk4/mJK9fG+U3vN0PSzfzm0mKjTwlZpYVxq8tnuriWIV1GoT64pBmDQy4k6kOfRlBD991cqHu044HgHc1UbeecPG0jowJvqZPbh7spwMi9/Iky/YWF4igvWsyshLb1nIU8EQFyC3G7t1u4QSyfAhdhR0jh6q6sKigpaoBeUcCYAwJTAiI9wVTyf/zTf44R+X8/7akibHY/C6u/QIbz78KUuqdYzpI5k3tJ8d9mnzknNeAKEbOLTYSuMINOXCAAAgAElEQVRJ5m8NPgvrH4rkyNFgPQ+Umdn2DztVKogkH4mJzW/2M+xiLyYBDUuiWLkoOBEK4D1oY+0jDip8oKQ3MrJ1aDpdULHWQqMGaoGF4gIAQeUaKw0B0MstFB0BTAGijnnMjH5GX+fGLhSK/hnLiveDE+4AusdA6eIoVn5gRDcEGDrfS6dLOrqpF7xmNj8SydGi4KIDvd7Evr9GsacIiPCSc07r8HQtiR6pUvVSLJ89a6dgrxFXlYGGfDMHXo3mq/92LYxgZ4g4DxO+7ceIoOL1GL74tzXoeATQBY37rWx/MI6Vy5vtsOwDfVqH+Yk0gJZnZ8sXTY6PJhm9R83sfzWKDStb73rsQT3rJVz7TLg1MGX6cRo6v9cyJECkAuoBM1VN5a9dFMPSJxzs33TC8QgQKDeT9zcn+TUgBntJz+r82V2qZ33ZjrpDb/cv4axnp1IvPbBfSO1vINLD/rpf1usB0A8eJ5T2F1pGeNx+dB2EzRJcZNsagwVnRDB/YTZ27btRIpFIJBKJRNJvCO3rxJBA7mgLwl3I5n1NO7AS0hiXIPDvPcKOLh7tB4CuUrJuOb/67TK+7quzHgEQKOamkLJ+D6oOIn0aMQ4FsBM5YiJmAaovWDhhsrVRXmDf42z7cDuaJZdhC28j+dw/kzM+Br38bXa89nGL8C2h5zdw0hmsdgQgBl/N0Omx1H9+Kyt/OoJPfzScpT//Hrs2FaArSSRc/QiZKce+Nnpuh7ZYcH7rQbKHWKBuGXve/bztmVe+PI48dx1bl23Gp4EwWDFazEH5LQ5MEVEYTS2/dpShl5KcYESvX0L+qnbOisRL7aYvcWsKpmHTmiazdPz719GggrCeRcqE+FZpFKxTF5BwbMewyRoMy9MDvRiGnU2sTaB7vqZwY6tlwnodFSs/xt3G6R+q/UItX2d0wX6WyQy96gps3lXsf28Zvj7+Zu8cnfq12/iq1ZGcWsFRtlXroESRmtSXE0eCzf8zsz8AzlGNPPfzRn50ZoB4oWM8BWIpCX6mxAOagc/WGHG3+l0tNfHxAdCFzuSR6vFJuFDT9ah8uqCqoWm3pC6obgg+r6r+mDNAUNsICJ3oiObpOnmm18DeMkDRSI0Lb8Wt323m61ZnXmrlRnbWA4pOStidj1GkJCqga1RUhLAy3ddAWa0OwkFKYld3EneDztTrKWXPEQ2UKNKST+J56GXssxrJjAX9kI09W08+6+bbbOVoqzOj9CIz5TWAouIY1GwZVIqP5GRANXLoc3Mbh7FeYOPALgFCIynX3+p9K3Afd44puOsE6OCuFsd/9zYIUHQsTeGClRw3GUlArYU9X7YXNk9QtdaCSwNTjo/YTkzRXb0Etts41HqnjM9M/ipj8JzACT4cnTxGL7Cx6SNju2eR6mHYQWyb4iHZBtRa2b7Y1P6Zp7rAW3dCyD7RZ1MmwqFh6eI7oWf1rHfQ8s1UekEk+4k91n8rAUb9sYzvvVLBpNHHtKsTk+1HEVCT1ywkZqf9i5GqIgGKSmRi5/18V+pZX7aj7tDb/Us469mp1EuP7BdC+xuI9LS/7o/1eiD0gyfofvtrjVZTytrV+1jxv32s2lPX4YI0X1VD8Ix1YyTpyW2DctlT40k69g1uUOhfIzSJRCKRSCQSycnoVtjVYygJaYxPUgjsPMy2phnfiFFpDDNqHN1+lIpOZhzrPnmdqZ8AioHIQQlMnDuN/3fDbJ55dTiv3vcGT67tw1AaouXHibb7NfL3TiczuYyiZUvw6nS+ehgPtR/+gn1j3mPEsNvIzQLUfA6/9HvK2uzU6kF+AyydsDlg+6/Z+Mr7x8+EUKvWkP/sL4n40ytkxI0nfeZ48t/c1HSOTU/t0EIIzOPvJfeySRgC+Rx94VcUVratYUryFYz92R8ZHHOYglcXcGDdRhrdZqyZ55J11T1kznuIacMyWf+nB6ly64CCNXNM8MPfNJ3hv3ib7PayN6cEV2g6k7AYABX0onc4vOPHjB0fR9K1z5Kj38ehrbvxiSSizriN0VfPRnfVoDtaHY4Skl4M2FKGYAD00t3Ut7MwQCvYQb2qt11tGqL9Qi5fu3TFfiac599LRopO/aI/c7S8vwfj0Sk6VEmbvZm6l/oGHeJN2Kztpes9/Ees/PplnfsXeBmV6eP6zOD1W35byyX5Jj5fbeGtDQZqwqBqQ7xGqgF0r4G80nZu0BX2FSroORrORJUYYaRMDz1dz8on8DYLB+hVAZ0T13TwNoXrtLR6u9oS/Xx7lo9ZI1SyYjUcptb7jXVsluC1cLkgi4oV2jR5XQTP+onWsYc7LrGw4nQIQMXlCiFusO7F1aiDEERGWlDwhn08YE8fzhVX5DJnUgpDkhw4zEqbBRB2uxGBP2x26BEGP8PnezEiKFhsp6YLTq6GI+05LgQ+FxCrY7KcuKokB3AqgMdI5dF2HqYrVB1U0CeoWFIDWIX5xJlNukD1n1Ce5g/mo/qb/w6gYzTpgMA+NIBNAcw+xt9bxej2CmBWsQgQ0Ro2I7TrhQlBL658Y7sLU+ryjah6AGNygEgD1HdQdd3bLFSHNUxxc3SihwYdWupeM2Vd3LzfF/r07DJTE/ARm+7i7Lt1di+zULzTRF1Nx2GsQ6pnvd0A3SbKD0P68ACxGcB2IMpHSo6GxaSRMiHApp0mdEUlNlsDzUDl3paOI+NgL8Pnu0kf5ycqUcVsolVHLzDZ9NYXW4rRhXrWl+2oO/R2/xK2enaK9dIT+4XS/gYiPeqv+2O91gdIP3hclu63v9ao+9bzu/9bf/Ks6is5UJrIpGQTgydkM04/yr4SN15hIjY1mdxxUeALoLceWEskEolEIpFIBgQhjeLso9MZbtQo2F5AcJ7fwMjxg7HqbrZtq2h/tXZrNJX60mKWv/4eWw8FeOWhiVxzz3wO3PgmH/TJDkgdzesOhos0WYKr6hrXsPePkzlxLIIRgzk4a6f73e1Pigb2cPDlf5D8wC+IMmi4V9xL3s66dm4MNb8BlM7nafoQdlGxYlHbw+g9ayjZWkH63ERsQ3Oxik249TDZAQCBMftnTL75+zgMlZS9spCdWyra3mYcy9BbHmJwso+Klxey/cuCJrk9uPe/w67H6zD+8XnS0n/IqHPfZdUHeegomKPigzsDbelE56R3KEUQE8rxzYFFFLx8J9F3PUVayhlk3/JxM8eljlr6JrvXZjHqkqngaQiGSA3ZDgJTRBQC0FzVbXcMAnir8fsAW/OLodov1PK1R9fsJxK/z8gLx6FUvs6eJTsGwDkgOm53ewe56OhB7ztKP1jNXrTVxo/zLEzO9XHWSD/nTlCJMuikDfVxw1AfF02ycdcLFvb6epaPNULHAuiNgroOXh51DSJ4hq5dJ1JAmR56up6WTz+x+QVNa3Xt2L8FLWw4aFwjT1zvI8sMuiooKTOQ7xLH35XxKQHS7GAwdD4p3V28vvafdUxcEb6sjj0RowFAQw2pIWqox3b2GMLdCAQJsy7imXsmMcQKut9D8dESDtb5m+xgYFD2YNIjwWDsP+vqTZMaGZoOeoWNPau6ohNBwNuBYY8ZvtljDA4NgwDdpTQ5ztviq1MAFeHQMAtaTIbqJ6LXnmgPzW3f9G/RpFJbtBqs4XaVuDEnGS0K/cR7sxWh6MVb1/59Wr2CHzDamxYNtKsHgaukvR1K4cMaHXy6r9JAoIsZ9YU+9SMR/O+FALNv9OCY6GLKRBfo4K80UbndwoHFdvL3Ky101dN61ivoBir3GdBzNGKzVcR2A8ZRPuIVAw3lKs4xPiKEiQZzgLhUwGeiPP9Ecvu0Os75RSNRFiCg4Co0Udsg0JrGcPZMP5EOEJ1+eXWtnvVdO+oevd2/hKuenWq99MR+obS/gUfP+uv+Wq8HRD/YjO62v9Az8nFo0yFiZw5hiDOSEdNGMeLEj2j1lWwpsDBhZCQE1G6H9JdIJBKJRCKR9C1ddj7+/MVbmRsRnNAyOpzYhULy/O/y/tym1exxThQRYO4vb2FKAAgc5q+3LGJp7cmfXbN2LYsPTODmoUP5ztxoPnyjug8cCDqB+ko0wGCIxewQUNN6xC8wR8UFd6bUleNrV0gbUVPPx2EQgIJ17CXEOZdTWtf6WaHmN4DSNdQE02nFuErbW8av4a4oQicRnIlYFHCr4bIDKCnXkPuz24m2uqh+/yY2f7G/3XqlDF9AWpoZ/MspXFfY9oPd9RWFm8pJnZdE5PjZ2Bfn4dI5PnOvbr2Dzx9/u33HXgfoVUvY/sBFlJ9zE6m5U4iMjYTGAuq2vc3Bj99B/9YyBDpqbUnTyt+e6CWUL9dQ7Rdq+drSJfuJGJIuv504ay1lrz1BRV9+pZ+GaB6FdautrN+hkD7Kx8Yn7exK83LzpV5Gj3Jz/4UGbnjf2HZ33QDhVJbveGAqu5//t8BHllmQv8bGfe+Z2dfY/EaN795Wx8+HhtPt2FcEcHt0sBixhHIojzBhsQT3fno84d15KJw53H7XRIZYAhz46EN++/ft5NU161GUKBY8dSu/nNCP7CBUhlzswYagcomdkv59lG3XaFKutiGK//7e1iocfVefEWa9NDN4Z+Ko3n64s6hP9Cmo/iiaD9b4SZvhIXm0n/jhfqLi/CTN8ZM0w03iw3GsXtsPVtF0k6o8E+p8D9FD/RhQiB/nx1hpYcOnfqZ+10eCIwJXsp8YC+gHTFQei/cd6WHi/2skyiyo/czJypdsVNU3e7BQyflTBVNGn7x/6VI964/t6HShN/TSI/udvu2vS5ysv5b1ekCiu2vY+OVuSrMTyEx24LQbwOejprSCvLwq9OGjgt+NHn9o/Z1EIpFIJBKJpM/osvMxbnAsqREtr1ljokmNafm4qMQYogD8VUR09btHb6CsSgehkJEZh4G+cD6CXnaQRhWilAwiBhmgptXaOpGIPSECgYavLL9dp4lxxJ2Mu3AMinc3lQWJxGZfzphrv6L26Q/wtLo/1PwGTLryw3i07oRI7Vl+LW6Jv5RxdzzAoCg/9ctuZsOijR3sJFCwpA4PhkZ1l+Nt94tGw1dTjk4SIiYFiwIuVcNXW4FOJiI6BaugW85HANz7KFn8f5Qsbi18EhmZKYBKw9F9x9tCaHrR8TXUBndMRsRgErT9aLPEYmon/GKo9gu1fC1u6ar9RAy2+CiEMJJ40zouvKkDWWyXM/mFy4FaCh6fyNYtPdyu9w3F36iw6X82fqVqvH6Nn/TJfsYsNrKxByGtPI0CLxBh14LnorbzLKdDRwHURsGxCNahpuuMDsvXgxeSdZifMx2gVZp57C0z+1pvehU68R2clzPg0Boor9IhWiEmxoagvnvOGmEnLkqA7qey0hNWR491wkhmRAu0kk08+Jet5LX2KIsIBsWEM+htz1GGNjJijA6NVvYsM54SydQGBVUHU4QW3EXSTjuyOJviGTQoPT5P11OtoKMiYlVs7b2PukBoetGbytF2i4bi0ILvOZeCLwxbKvROBdIxWtr/xVMTrH/mOBWjoEu67jt9glpp4tAiE4cWAUInYpSbCT+pZ0iGSvZ1LvZuiKSyqT71dj0LlcABEzWah7isAE6zgcTRKr7tFg5vVhh1dSPJOTrFsQEcCrj3m2hoejcYx3hIdYJeZmPtP2xUtR5iKBq2qPDtbO9Lu3eH3rZ7OPLrDb2Ew37daX8Dj9D76/5crwdKP9hn+N0U7DlMwZ5W14WJ7BgzAqiv7SzikUQikUgkEomkP9LlZZG/O/9+cmfcz8TLPmKtHwK7PuOyWcFrZ/5mO7W6TsEbLzBlRvBa7pxXea+6q1JEMTgx+EEeCC1WW1jQS7dQU6+BkkLM8PS2UwT2icSmGQEPNft3tR38RpxNzg8W4jA2Ur3oVtb97X5K68A65QHGzExt87xQ8xsw6Uq2UtuogZJMRGJ7h9gp2OJTgs+rLcF7LKRLD+0gos5h9C8eI2WQTuOqO9jwn+Wdf8Adiz1ojcPS7hloApMzNihHwNeUn4YnfydeDUTKDOJiw7fCWCRcTMowM0I7TOXOQ8c/nEPTi4qn6AAqIBJHEtnOpKeSOppIQ9sJsVDtF2r5jv/eXftJep3qIwaKVRARGokdTKR3FbVcoUAFYdIYkdjODUJjWKqGAOrKDFTrPUvXFcJZvsgoDQuglhs43N5EWUyAcXE9y6PfoFaTX6Cio5AyOKqdacPOUWJjSLECahX5heEcCwic8ZFYBQQKyshvZ+2BkpDOhJST9eNaMISiEG3OiQw7QiP1EjdRBmj4ys6RmlOTjVZspE4DzAHi0tqXIyY72I68hcY2i6i6i+uACY8GIs1HUnwID+iBXhxDAljasZszK4BBgFZk6DCEc5fRBQEvgI45sp067FBxxraXUFCz34img2GEj0Rbe/e0pS/12QJd4NppZ/VTdupUEEkBYuwnfu7tetZGPA0Q+klDTeslJiqrQST5icv0kZgiKNtqwn/ITEm1RsI4P7FD/SgIqvKMx8ef5timcIrFRuraiaou4n0ktPeeCpG+tntX9dnbdu9xfr2klx7br03Gnbe/UOVsjdo0hlF64ei9kPrrfv7eHCj9YH9DRMSSHidA81Ja5u1HS8QkEolEIpFIJF2h2x4T26gMRhp1SrYdITg3qDBifBqRuoetW0rbjcNvio0ivl2nDoAgbsY05qcroKvs31vetTMjTwWBDZRsKUXHSNSMq4hqIbMB+/SrGWQT6J7VlGyvaplWxJN49YOkJxoI5D3G9iV5aFXvs/PVj/AQR8JVD5OR1OprLdT8Bko6/zrKdtahE0H8zEuwtf7YsU4jaXw8ggCN+zae+MjqiR0cZzLijr+RnmLAu+k3rH9xMe5O57A1vMUH8esgTNNInpjY1qlnPYPk8UkIdAJHd+Bqep62fxEl5SrCNIWsb8+jwyiDSgz2eGdnQpzAOIS0799CjAnUQ29TcKhZiwpRL+q+r6h06wjrLAZPSmiZn3ASP+NCbO31BKHaL9TyQfftpx3k4ANZfHR9Wjv/pbPsxa9QAd39Dht+kMZH14+Rux67gMOmd7o/wxKrEaeA7hXUtHd8ZTfQykysrwAUlXOmBWg9525I9HPhEBC6YONuA/4epuvt8jU2Bs92NMSptPFtCZ1J87yM6YWJvN7Bx549FagIBmUl4OzmBJcxM5FMA2i1xewqCuf0ko6r3oOqgzE5jtTW+hZWplw9hXEns4Pupb6B4A7NmFN7LqRI9JAzTQO/ib0fmU/ZGUd6kZniYsAQIHOer004DJHqJnukDrpCyWZTj3ccaHusHC4FjD5GLfBi7fC9qeFIaJtbT/RiGOMmo9UrELOPrLMCCKB2syUYUr1HCFylwTP7InP8bd6bjrPcJHYQTsC93kaJG3B6GHOxvwPnvY7ZfkLIvtBnp+d7GZvWc2ni+Pmt0Pv1rAW6gq8REDrWqJMYWDVSvl+A0U/yhT5idRPFOxQIBP9vH+cma6gGmpHy/Sc6dH+Dgq6DSFBxtNaP0Ej6diODwtjP92U76o4+e9vuPc2vt/TSE/uF0v5ClbMlAndlsG+LSA10PXRSiITSX/f392a42oMY0sjMe6uZd381c67ydW2hV8h2Dx3D8Kn8+dFr+Ptj1/DkjZmEtJZPsZI1Pok4A6g1FRzuzkpCiUQikUgkEkm/oJvOR4URE1Jx6B62bikJDuqVGHLHORGBIjbuan+W1nHmfN5/6yYe+n/T+NbUwQxJjiQu1kn6iGwu+9GVvHj3OJIU0Cp28sZX9X0YTsNN5dIXqfHqKCkLmbDwGqKcJlAicUz5HblXTMdIgMav/0Fxi/P2FKxTH2DMWangXs3el16iQQXQ8Ky7h51riiFiBiN+8EMijeHIb4Ck02spW/o6DSqYxtzNpGu/jTPSCCgY4s8k68cPkxZnQPdu5MjXO5qtZAwxP+sEhv7sOYZk2ggceJqtry7Fb4vFHNn6vxiMxhNf+tqetygsDaCLKBKufo6R08diNgIYMSbNYegtj5OeYEDXCin68vMT4VUDGznwzsd4NAP2GX9l6g9vJD4xssmpoWCMHUvCvLuZ/MflTJ6T1cLZIbJuYtx1NzN43BSciSlY47KJzr2RMb96h9Hj4yGwnyNv/ut4SK8e6aV+KYdWHUETUf+fvfMMj6u4GvB77/bVqvfeXCQ3uVfcsQ240EwxHUL/gFATCAklJISS0HsPJbQAprkXwDbuTZaLLFnNktW7Vtvv/X5ItoolWdpdyxK57x89u9q5M3POzJm5c2bOEHb5ywwcHoNKANRhBM17gWFnRdBhqEG39edm/dzUn4KXESTOvaGeVy+3MS1GOsmprvZ3cuN8B4EClKdr2Ouhcw5Jxbc/qzEDUVMaeXSmk5DmxXm/aDsPXG9lqAYcJTq+PCB4nq6X69eYo+aAHcRQO79f5CCqedOAyuhi1vlmHj9LxtZfL808CZmjO3M5JoEmJZahnW466giRpBHR+Itg3pNDhqftqh2NGbnss4EYPZr7bxlETPNhbpVfGHNuW8JT55uwnmoHhauSzFwHsqBjyqKRJHZ0INwryISc20iYDuzbfThSdLryAVwasr7X4pDBdE4tZy2yY2zWmy7RwoQHGgjRglRg4NBOL9hdh5b9H+uxyOAzq4Y5dzcSGdmyGUAd4iDmvHpmvlzBrHNc7TYJeCgXnZ1R99cTG9mkZ8HXwYA76kiJAhp0HFrrnRB9NekarDKohpuZsNCBQQOoJAKn1THtagd0sv9FrtSzZ6kGJzIhS6qZdY2VoIATsQ/Qx9sYck8VZ82WWuRyBuQZsLiK+Q/VM3i8A59Wp6u0cVbG/K4RXxGch7SUWVol6u121hpJRVW+AIJE9DkW/LtcARepPKxGFiRip9lRFegoqQIQKNujQUqwEJ8A1GqoLG5J5TyopcIOQmQj466xYWq2DYKvk/hra5h6joTLm3b+TPajnsizt/XuUX69KBcP9OdW/3O3nO2oSddilUEzzsyINKnLTVwe02N73Q/GTS/1B8HPScRoG1GjbEQldVMPHujdXUT/UMaOT2byhGQmDPLt0kkqBIYzdlQE8REmAkxaDEY9QVFhjJ42mNERGgTJSs6+cuoU36OCgoKCgoKCQr+jZxsXxSBGDvdDcOSwo9nRKPjFMTpJxJWXz94uwptoQqKZuySauUs6/r+zMpc3HlnBL7U9KpHXkYveJf3T8Uy45mx8Jv2Dsyb9DUkSEEQRAQlH9kvs/Xprm9OZQsglDLtqPnpqKf/yQfKLW+21lCso+eTPFA16i+hB9zBiwSa2LE0/kd6d/PpTOlf2i+z9ehTjF0/Af/ZLnDX7OSS7hKhturtBdh6l5KMHyC91eZyfELuQmAH+CIAm+S4mPHdXJ1q2U/HBRLauL2/+uJ2sN5/B754/EOw3msRbfyThZjsupwqVVt1UTqmCqm/u5ND+hlbPkbBt+wM7/PWMufxs/Kb8lQlTHsVlqccl+KDRa5pfCJ007Gr3tqSNJXjmDcTOPrl0siOf4g9v5tChhpP/55YezFT+9x5ykj8kOXEyg+7fRLK1HkllQq2Rse78kvLBiwnrIESTu/pzp35u66+3UYWz5NFzmB3U8rrvH6cBRKLmLeStNPuJBRFX7g4eeT6D0n52QYmkkkibYmHkFAt2s0hRLYRqZRJurePaEIkANTQW6XjyOw1mL+R3bJORpxIaeGS8xLSLGpi6SKDe0XRCUQSkejWvfahjv8M76XqzflKVltfX2nnxXBdDZpn5cppAjRWMRhmdKJC70cC68EZ+N7BdQtHFJddZmNHqPkj/8KaWFTGukZeThZZ2VqLlb19oKesDizLOzEP8fGwSV0clMnmIig27uxnLQAxk4rgQVLKVLb/k0OjlcknFu3n5PyN4/fpohl2+hG8vtlHTIOPjp0cnOsn5djmr48/jllFdPES2sGHpPo5NHkP05PP44tspFBxrbAo57TzGBw/9wKqqLtJ3F18bqbOdCJKKnO91Xg+91p6GVf5sGVzFlJkuYm+sIvZaAbsdNMam8GxyjY5dz5uo8NKhcctGf9YFyMy8wUbAzDrOnlGHZBFxCjJavXziWry6re0SeiQXgcpf9IgTzcx4w4zTLCIYJFQqwKUi9zU/jlR4p37OvT4cOGBlzFAXMTdWsvgGAQkZURCo+cHEkbR6BncUcg+Byi8D2OBXw1nzHUQsrmH+xeA0i8gaqeluZkGgLLttql6XpygROMnM+ElmxssCjnoBlyij82luL9U6dr1tOOlUUm+3sxPIIkUrDDSMa8Q0to6F/zZTVyrikgCnhv1/9yOv1ftLQ6YGi+zAqJapT9dS3zx+2/fpqHTaCNeAK1tDVeuTnWUGdn1tYc7lDoIvqObC+QLWRgGNSUIlCtSu8CU/pp4Rw71XrTPTj+i5PHtZ727n18tycVt/bvY/d8vZGuceH9L3WJkwysGQv5YxqEHE6QJcGtIfDCSztPmHKicp99URF9CSVhfTVCCfGXXMHdIyf5GPGtn0hp7GNuV1w173k3Gzv9jB3kZQaQlPCicxuYN/umwc3X2E9PJ+e4mpgoKCgoKCgsL/ND1yPgp+MU2OxtwWR6NuaDzDNDIV6QUc7WSBvfan5dzWOIDJ45MYNSiYiBATwX4aZJuFsoJidm3ax+Mf7PO0Ll7CQcP6W9hUeh0D519GWHISOp0De0kGFZvfJmv5Csytdy+rkoi/4S+E+YJ931NkrM89eed8/WoO/vsLgu6+HP+F/2LggQs4dNjsXn7ulvOMpTNT+8NVbMy/luR5FxGWNACdAZw12dQfXk3h8jcpzKns4LSBu/m5hzPndbb9eSsxc68jasQ4/MLDUasdOKuPUHd4PcfWvMPRw6Unl1NuoHbVjWw4cC7xcxYTnjoSnyB/VM5qLIVFmI/uoGL3Dxzbnd4mrVz0FYe/9yF6xDhMYZHoDALO6iPUHljO0RXvUVxY30lJ3ZSLZTuZT51P/cJ7SZgwGd9APXL1boo3vEbmKjvJzyzuJD/39MK6fUkAACAASURBVOd+/foBgp64ofGMCT95r7EhIpLRES2fndosTtvhqNOFLPL1G35kj3Bw9kgHo+JcRIbL6AUwhkB1hZqVu3T8e52GPG/1QUlk7ce+HM20cdVkO6OiZfw1UFepYl+Gls/X6NjV0aKIO+l6vX4C+5ebuLXCyu+mOxgdKeGnFygv0vDzRj0fbBGY/X8dJZOJSXAyKvDkfxmCXIxsdW+cU61pCtvWB5yPOIv4cXU5S64LZer0GJ7fnd/ZQa82iFGDmTVQRKrO5Mct1tNQFQf73v+IG4qmccslQxib6Ie/j52y7EzWLd3A28vqmPfcqZ9Sv3UFt/25ntsuG8a4gYEkDPBvuv/RYSNI7R0l+M1uJNYXpEwjmQd74ZS3S0Xei8HU7TUzdK6N8EQXei3YSzWU7zBw4CsDpZVeLIcsUPV9IN+nWxm80ELscAd+wTJqp0BDgZr6PC3HtunJ26ppI01P5eI8ZOKXZRrSljQSN9iF1qaiJlNH1hcmMveL3mtzLjUH/xGEdG09KeMdmExgL9JR8KOJvWsgpat25lJR+FYQ32+2kHKOleghTnz8ZGhQUZ2loWSTkUOrVW3L2svyrFvtz0aLlegRdoITXZgCJNQuEWuhhrLteg5+a6S8ozvfe7udtcK+y5c1T4mkXWAlItGFX4KrKTylU0Df7k1IytNQZQejVqR0b8u9jnKllpKjEJ4EtYc17e6iFqj4LIgVJQ2kLbQSHudCZxRozNNRsNzEvrUiCY97ed5zhvoR9Eyeva53N/Prdbm4qT+3+5+75WyNpOLwU0G4rqxnyFl2/AKlprmHS0LVJpaShN9gO+GhJz9CHeYgrFU4VVmro6Ohs6f2ut+Mm/3EDvY2Ul0VGQdVxEWa8PfRolOD02KluryanMNlFHp8IbOCgoKCgoKCgsKZQhgYG9EXlisVFBQUFPoogp+NFx9xsPkpE5966XRQX+K3Xr/eRowYy+sfz2dsw27uWvIdmzoL/9aSgkE33Mx/bgjl6CfvcenrRXg56mr/QWtn7CtVpIaL5D8bwi8be3w1928TRS7eRZHn/yaK3jtGkUv/RtGfgoKCgoKCgoKCQp9FmZ0rKCgoKJwC4Qzexdsb/Nbr17tIJem8v6IWgodw2SzfU99HZEjkkgVhiOYj/PurY/+7jkdAP7GR5HCQiw0c2qpM0Y6jyMW7KPL830TRe8cocunfKPpTUFBQUFBQUFBQ6Luc4SAbCgoKCgp9HrnNn98ev/X69Tp2tn28gS1z5jPpsnEMWbXupHs3WxCIOmcy54ZKHPnoJ5b1hYsrzxgyelnDoc/U2A4ZKP9f9sK2QZGLd1Hk+b+JoveOUeTSv1H0p6CgoKCgoKCgoNCXUcKuKigoKCh0jdbFvBkuCjdo2X/KEJr9kN96/c4IKhKmTWResouMFVvZVNzJVEMwkDZ/HBOD69j01R4yGnq3lAoKCgoKCgoKCgoKCgoKCgoKCgreR3E+KigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoeAUl7KqCgoLCb4zHnq1hZo+tu0DGd77cuV5U7j9UUFBQUFBQUFBQUFBQUFBQUFBQUFBwG+Xko4KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCglcQz3QBFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUfhsozkcFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWvoDgfFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUvIL6TBdAQUHhDKOexvDnPyLOdJScJ2dwMMt5pkvUz1Ax/S8P8Pw8DTn/fofL3i7GdaaL5GUEXzvPPWpn6z9MfFbZg4QqiUlnW7l6nINBwTIGNQhAxjd+3LpORDpdBe4hbtevl5l6TS1PjZPJW+nLNT+oTns76y9yUTiNqJw8+EQDi0win77gx8s5Z7pA/RRVCFe/cjN3Dyzhhevf56OjynXrCgp9Go0/U66YxQ1zkxgc5YNRLSAILtJfeZXrP6vufP7ibro2z0jmL19dyUUBNXz0f6/w3L6+MlvCO/Xry/n1BoKROY/ezlMzbXz++zd5Zo/9TJeofyJIDHiknEljoOydEFZ9p0IZWQFBYuBj5UwcBaVvhrD6R0Uu/R61i+iLGhg2w0ZQuIRaDQgCFe+FsGKpol8FBW8hRJo557V6QlRtv6/6OIRlX6h70NdkYu8tY8YMmdovgvn+Y03HafuCvVbsi0Iv4ZnzUZ/C37+5jHPMW7jx8pXsdoJ62By+fm0ygeu+4JzHDmLuIrkYOYaX35/PZJOAbE7n7gXf8IvDoxJ5CTX61OsYMP9SwgYko9M4cJTvo2LLO2QtX4nZ1lfy6y/pAH0y4bNvJG7cNPyjItEIZuzVR6nPWk/x+vcpzK7owLD1PD/Bbzjhky4gIm0SgbGJ6Hx0yNYKLEe3U/br++Ru3IGtsxV7bQJhZ99C/Pip+EdGolG7cNYVUJ+1lqKVb1N4pKMyuo/gM4yoc24hdsxE/EJDUAlmbMV7KN/yPkdWr6Wx03fR3m6fuKk/N3FTD+7LU6G7CEJPfi0z+oIGnp4hoQYsZpGyOpCBCuvpKZ+n9Kx+/zsoclFQ8IzgmTO5fqiash9+5mvF8dgzVAbih8UzZngsacNjGTE0kjh/NaJUzrs3v8Ermf3S/fA/hkjY6PHcdOVIpg4LIUTrouZYMVvWbOHtTw+R76U5gd+5S1j98CC03fiteeVnzHoik46nhlrG3n41LywORo2Epa6BUouEjIvyxq7am7vpuomgJX78UGaPi2dEagQD4gIJ9VUjWc0U5xayee0OPvkuh2MdVcor/eg018/t/ETG3vN73rzYr/OQTlIjSx94jse3tn0JVAdGMn3ucGZPSmB4cjChviqkRjNFOQVsWLmN/yw/SkVnezL1QUy9aDKXzExiaLwffhoJc3U12elZ/PDlZr7bb+7YOSo3su6jbWROn8lFt43jy9s3kdtXdy2KQcxYMpwUrYXdP2xna/kZGL9EJ8OeqWTUQCh5M4Q1y5TFUECRi7fps/KUCb++mpkLnAiAs16FuXnMbLR0kkR0EXuBhSCtSNlqI8XKBtLO6Y7e/xfl+VuSS0/KaVdRlaHF1ex81Mfa8ffvlVJ6l27bMzfsS3+hv7RPtZ6o5HCSYvwI8tWgQcJmsVNXWcvR3FLyKp19ZCzyHI+cj+oBcQz3AfPWAjKdAAIRw+KIEFzsSS+iy/Yq+DDn1plMNPW1VU0NPjPeZOK1Z6MXBcCFJGnQRk4k+sLxhA17jm3/fIkaq7eagLv59Zd0IIQuYvi9/yQmykCLtgPQhwegDx+Kn2sbRdk/t+tUbuTnezGjn3meCEO7NuUTiW/KInxT5hMz5UV2vfgCVeZ25fSdRuoDb5IYb0JARnLU47SpUQcNInjCYILGLSby06vYueqgV04bCSGLGPHAc0RH6BCQkV02JHzRx00nLm4qkaNfYPs/X6Da4j09uF1Wt/TnJm7qwX15egdLZRX5BWqKan47g0N7emyp9U4umCihlkVW/dvE33eK9Im9JZ3Q10aijmisEykog2MN9Fo76w9yUVDo02giuezqFAJcJbz+39wuN+UpnIwYlsajL8xjlOZMl0TBPVQkLLqEN+8bTJgKkGVckoqg+Hjm/y6OqeN/4o77fmFfYy8WSZbIy62k0zgfPgNYfF4warmO5X99j0fX1HZv/uJuuu4ihrDorgXcEN/OxWbyJXF4KonDU1h03jb+9MBKNlS2nSV4pR+d7vr1cn5CwAie/exCZvi0+4efHwNGDmNA2lDOn/czD/zpZ3bVtU+bzD3PXcpVg7QIgMtmpcGiwic0jDFnhzF6ZhpzXvmYe78spaM9oa6cXXy6bTKPT5rIDZN28shGa998f1AFM+OK6ZxvquKDrTvOiPNRPayRQQNkqDFw6Ke+4hA68yhy8S59Vp5GG4NnOxFkFbn/CuLXDapTn/gWncRe3ECyUc3+XX140b0P0C29/w/K8zcllx6UU67Us/Uv+uOfSPhjGVOnuGcNHFVq6opkGup6fzWl2/bMHfvSX+gH7VP0CWLMlAQS/FrP60UMvmoMvgYC5HryK+v6znjkIR44HwUihsWecDRaAQQ9aWnhqKVK9mQ0dNlwfcfP5K6ZOooKaoiKC+gzl08KUb8j7Yqz0YsOzFsfY88nn1HTYMR3zH2MuOFaAgbeTdrFW9n4yRbvOKHczK+/pEM7koF3/ouYKB007OXoD69yNH0fFosGbXAcpuSZhKoaT+pQbuWnMqLWuLAX/cSxjd9Tdiidhqp6BL9BhEy7l0Gzx6AbfDejrj7EhjeXYz+RqYnQxc+SGG8C83aOvH0/2XtzcEoCqqDxxF39AimjYwi59B/E77uYnGIPNS/EEnvDU0RHaKHmFw6/+zC5GXk4hQB8x9zJ8OtuJHDAXU31+/jXNosjvd0+3dWfe7ipBw/k6R1cbHvtLS58zesPPrOIMkMnWFky0cHoGAl/LYx5qJbL60QKC9XsOqBh6RY1lZ0oXwxykaAB2a5mfXofdDx6WL8zwc6lvixZepoz6YdyUVDoy5gmTuCiRBH77t18n/ebeaXrVSRLHZl7j7InvYB91RHcdPco4s90oRS6hSphAo/dNZgw0cXRNSt4+KXdZNRqSJo+k7/+cRxDhk3niZvyWfJiftebVrtB/ZqvmPurutNNM6qESbzx0lkkuwpZvray0/dUMSKURB3I1gLW/NJ9h5e76bqPi6oj2Sz9OZedB0s5WlpPeZUVyRhAyqQx3HJ9GimDxvPE/cVc8vBeyttV0NN+dPrr52l+MuU/fM4Vrx/tYK4vYze3ezNSazFqJWpzs1m+fD8bdh8jt9yGGBDKhAUzuOOiWIJGTuepu8u47ImDVJ+Y92iZdPMirhykRa4r4IMnv+PdXysxS6ALi+eSey7k92f5M+m2BVy+9T3+XdDBhEluYN33h7h7UhpnXzqc137dTrEyPJyMIBG/yIqPADWrjRT15iaFvowiF+/Sh+UphDrx0wE2DQVbf0OOgb5AH9b7GUWRixcQKPkgmG8/OBNZd19/in05g6h8SJ2YQIKfgGwzk5dZQl6JGbNDQGfU4RfkT7j429KI+85HQceItDDUUlWLo1EdxeihauTaQnbndiEofQw33DGK8GM7+dPSIJ64q684Hw0Ez72BAJ2AVPw+e9/5iBo7QC312x5nd0AKU6+chM/UW4n8YSuFtZ6uvrqbX39JJ2Kc9hCJ8Xpo2MCBJ68nr6hl/6e1Kpe6rJ855i252PaR/9o8KnYdxtlaNTWlFHyyGzM/Mn5OErqx1xL5xUryq5rbqHoMEaMjEHBSs/wPZO7OaXamybiqtpL77jMEpb5IhGEEYcPCyS0+5pGzTYhZTHyqL4JcQdFHd5CVXn28oNRv+xs7VTFMveU8jGfdSMT3m72gB3dxV39u4qYe3JenQqeoJBZc38Af0iRUVpED+SrkZImafBWWABfDRtoYmSyzb5uayk683IJGRisATrD3tXHTC/X7TaLIRUHBuwg+zFqYSpDgYPPqg5T2NVvYD5BKt3Pbgi04mmUnJk3jKhnlWHa/QMO4SyYwXA+u/K385akd7LMCuDiybgV/DA7j87sSiDtvCnM/yufbKs9ykx12ams7i7EvMmRiCokqsO1KZ3Vp53NBQadBK4DscLbaqHhq3E3XbVylfPLIpx38o4GSgkL21ej5+uEU/CaOZFZIOp+XtRTCG/3otNfPC/m5bDZqahu7t9HQWsznj77Bto3lNLS2zRX1fP1iEUe5idcXBxMyYxxz3jjEF8flqYnl7Km+iEgc+PR7XtnY4si2leXzyVNrGfXFRczyiWTqeF8+KqjrcEHPvCODn6tHcMGI0SxI2MHbOcr7SXuE2EZSRktg05G5QqMsjDajyMW79Gl56mRUAE4BV58qWP+nT+v9DKLIpX/TI/0p9uWM4ZMQw6AAEdlWx96fs8mqa1GAxWKjprKOgjNYvtOB+85HdRSjUjXItYXsad7JrUqIY4S/gG1zPgc6nfWLDLzkHC6Pt7Dur7+wU3++20XwOuoxRIwKR8BJ7YZPmx07x3HRuOkTKi6aSIRhEhHDAyncWAUIaMc8x1l3XIzesoH9j19Lfmm7ygthRN62jFETQnEeeIxN/3wfs8vd/PpROjGZqGnjUWOnetkj5Bd18zJCd/Oz7KFkZyfPlBuo2rwKy+xb8VEPwjdKBcedj5oQdAYRsNB4rOBkx6Ilh4YaFxgEVHpjBw8X0SRcSOK8xYSnDMXo5wOWEhqy11G04jUKDhW3MvoC2uSx+IggmzdQfMJRdqKg2HZ+SZn5HGJNkwgf4kfh5lrP5HIc/UCiFtxLwoTJ+AYakGoOULHpdQ6v6OSyHXf11wYt+sGXkjB7IaEDUjD6+yLYK2jM30rZlv+Qv2kzluNbmd3Sgwfy9ATNEJ5ZeQlz2lwsJHHk3+9w2dvFHZ86FYxc8Oy9PDoRdr34Crf9FMiSm6ZzweQoon1kao8WsPrzNby6rJT2UYF7m5BxFu5Kk6BMy4MvGdko2XnuUTtbPjHxeSUExDhYNE6irnU5BZkFt9bypyHtHuZj518vtF0MzPjGj1vXiW0nQ4LMwLE2rprsYFS0hL8G6mtEMjK0fLpax952Ia88Sdfj+h2vW6rI15/ocUywMj9eprFYw9ufGPhZZ+cPl9mYEi5TU6DltY8NrK1oyU80uBg7ysH0VCepkRLhARK+KoHaKhUZBzT8d52One2bLoDawd+eNTOr3Uidu9KXa35QddLOWvSw9ys/7tojcekCKwuHuojUQ125mnXr9Ly1VXVSO3NP7xKX3FXHPQNgy3/8+HuZg9+dY2dqogsfl0hhnoalK/QszRVOmvy6LZfmfC+6o477B8H2z/y4ZwuMmW7lmskOhoTIqB0iR/PV/LjSwGdZQos9EWRSxtlYMtFBWrREoA4sDQLllSr2HtCwaquW9JqOs/SLtXP5TDtTB7iI8pXBKpKXp2H5Oh3fZnnvdK9bcvFA7wCC3sXsOVYuG+0kKQDstSq2b9Px9vrT5OHpqf7a1e//fmpnP0QXNz1Yz/WRAqve9uexdO/IxeNqBg1m3mgtOPP4eZu5y41LgjEM3wkjCRyRjDEmCG2QL2qVC2dFCQ17d1G2bAv1ne728Cf0oT8RP1Sm7r2/c/gnEb9z5hExYwg+4UYEewO2I4eoWLqM0oMNLel0YQSefw7hkwZgDNIi1RRT//Mqji6TiHzuRkJ9qyh94hmOHu4oXzXalHGEnT0S/0ERaP31Tfnk5VC7eQtlG45g90ankFx97+R8B/R9/ekJvONPJE0yYF/xOhkf5XTcHsOnk/LMQnzIo/CBVykt86BjaGKYPaXJSZOxbFez4/E4MkUrd7L5xgRmGxOYNcHId8ubImkETbuAT/6WRpj5CE/f9B++KGw3eogm5j16M0/ONmHesYJr7ttG3qk2xGjjWDgnGJVsY+PKg21PBZ6Yn6napvEfycvrR7b6wkX6K69y/WfVTfbH3XQnsg1l7lUzuHJ2AgNCNdgrStmyYhOvfeFei68+UEiBlMIwlT/R4QK01p07/cjD+oGA/6DhXHnZSGaOiiA6UItsriN3fxY/fLaJr3bXtS2Tx/n1DLmhiHW/dPZPG7tWZVJ00WTi1KEMjBehrLmR6XwI8hFAdlCQf3IZ5IZK8isk8BEwGLq4gdRawM87LJw/L4y5M8N5L6fEO1FrWiGaQpgwcyizJiQwNDGQ8FATfmonNSXlpG/dx+ef7mRbWZtYRyRc+Tu+vC263SJRMNe99Reua/2VI4+nL/uQzzyxEV0iE7nAQqAaLD8Zya3o+tdisJ2UqxoYMNaByQi2Y1ryv/Vlz1o1jo6KKEgETTczdK6N8EQXOi3YK9SU7zBw4L9Gyqrb/nbAI+VMGiVy+CVfXLPrGTBIwpGvZ+9LfhToG5l4u5noGBlbloFdL/qRV3JylrpkC6nnW4gd5sTkL0OjSG2mjpxvfTi8r7unTnomF31qIyMubyR2sAutLFJ/WEf2lyYOZYgdjwGCi8FPVDB+BJS8Fsqa1TIRCxsYNsdGSJSEaBOpy9Jx5AtfDuwTW2QzBsreCWHVd+1C/KkcjHyhkuFxArn/CGPjlo7mlTLGoRZSz7MSleLEFCAj2kXqcjQU/WIkc70Wcwf7SnpVnoJE8EwzQ2bbCEt0odeDs1aksVRD2S4duWsNlHUU1q8n7az5903ybH9FkIVZX7eODyBQ8V4IK5Y2ydvv4koWXetot5/EydB/ljC0zVdatt8cxKFqO2PfqCI1VEXmn0PZlnEKMQkuhjxdwZjBUPDPMH7eICD4OImcYiV2tJ2QWBfGEAmdGqxlaip2GTj0jYGSik7eI3razlrRG3rvsTzbt5veti89bWdnSi64qb8e9j9vlLPHaKxM+6yG+Hbh7Wu/COb7jzXdOrzSY3t9EqewZ27al9bp3WpnXmufXeOW3r00vvcIwUBcggk1ElWHC8iu+9/w/PbA+ahi3B038dgMfZMyRS1BwQKCM5VH/5PUNFnWGQkXQR41h0+/nAW42P3mu/x5dUtYRjFqNPddFYW8bxWvrmtAOs/bVXIfIXwUAb4iSIVUH84/uYM37qTyqJOIQXoCBg5F3LgBCRn7rsfZ98s4xs44i8HXX0vFs+/SEtlFRD/xrwwdHw4N6zj43ocn/udefv0oXcAUQqLVyM6tHNvaySKH1/TQDax1TSciBRdtEjhKsDZIEKjDGBmHQHbbPA1JmAJUIJdTl1/UzgCb8J/zCmOXzEIvCsiSDafFiugTS8Co6/BPm0/YZ9ewc2VG8wuliDYgBAGQa49i7egt05mHuVwCkwG/xEEIm7c3nfDzRC7GcQx+4EOSk0wISEi2BggcReQFbxIU/w31HRw9dld/J1BFEnb5u4ycMxyNADJOpEYzkiYMU+oF+KbOJ0A7ja2rCpue7ZYe3JenZ5jJ2ZvPzubJhX9cLMlB3U8thg7hsddnc064iOSSEFQiIUkDWPLHKKLkt7h3We0Z3GUmM3KoEx8gfYOeTbWAb9tf1BRq+LDwpGRUHlOzu3mdRdBJpMRK6FwCObkqWvsAc9s7d0SJWVc08MgECS0guwTMDpmAEBfTZlg4a7STF14z8t8iwQvp3KwfgCAzd7EFtQROUSYs3s4D10nMMzpJ0wlYkIlItvHgYhV73tSeCE0aP62Rfy5woQZkGWw2AbNTJjDMyfQwJ9PGOXjzDR8+zGtXP1kgN1vN7uaR2j/cSWK7snaFEODg4XsszAkCyQWiCoIjHVxyhZMI2ZeHtrZ24Hggl2Z8Blp58RI7iRqwWgVEg8SAITbuG+Rg8Psmnk5v6zByWy7tUUmce30jD6ZJqFp9lzTYzvkFOr7IanbUCjJTLqvnySkSGkByCFQ3CKj0EklJEslJDmIb1Ny9qd0EX5AZPL2RZy50ECo2ldVsEVAbJVKH2UgZauesb0w8tF7lcdhAb8ilZ3oHweDkpv8zc228jAA4bAKyv5PZ5zoZGaMl+3SHpuiu/jykp3LxBr6jB5KmA+lIHru7jFUsop97JQMviW4az2QJ2WLFJWlRR8QTGBlPwJQ0iv75LiXZp9gIJAYTcufVxI/1RzjeRAx+GIaNJTRnM2UHG5ratz6OyD/eTNQgPYIMssOK4BdDwEXXY4zYTGNXelf543/F9STNi0ElHC+vDVnjhz51FIYhI/DRPEXmSi+9TfZ5+oP+rNRtO4xr4ki0o4fh82kODSdtFBXQjR6GUQVy1j5qPLzfTYyOYWiAAFINe9I7ctIUsivbxew0NUOGR6BenoMDqNqwkid+iOOlhUnc+YdxbLt3K3knyioQNvtc7p/pC7VZPP/09lM7HgGfsWmcHSYg1Wfz46Z21wXILsqP5LNT32SBBGMgQwb6oXM1cCSjkpYtaxJHypyepwMEUxy3P38Fv0vVIcgyDqsNKTSauddfyuhB6WS18791B//BUcSIgNRIdY0XHEIe1A9BS+rixbxwx0DCVCBLTswNDtS+gQydMp4hk4Yw7dVPuO/zkpZx05P82maO1qABm92jyBtyoxWzBIgycuvn2OoprZUhVE1sXCAiFW3HVFMw8SEiSA1kHu5qPm8nfdcxHHMHkDAxmZj3S8j36iAkkHDxRbx0U2TTfEKSsFlsmB0agmJjmBUXw4y5Q3j1gf/w3oEWz461tJhde5zN47GB+GFhhKgclGQdaxu+zVlKWYdePS+VPshKyjQXgktN1g+6Lp3nQpCVSU/XkxgKsgSCCIZ4Gyl3OjDJwfy0tr1DzEX8ndWcNdOJKABOAYcddBEOYhc6iDnLxo5HAzjUfp4lSCTeXIsoCUiijHGQhQn3SyT62gjTiziR8RnayMSbNZQ+YcDSahNj0MIaZl1vw6ACJAFHo4BochE8vpHgsVZi3g/kp281pzy12xO5qFMbOPs6CwFacFoEBIOLgFGNjB1hI+SFIDb+fIq7DVVOkv9Qy8SJrpbxyCgRkGZhYJaRg/u6uyDeVR4uYm6o4awFDjQCIIOrUcSldREwzEXAcBuh2hBWfd+qrL0tT0Ei5vYqps9tai+yXcRaC6JRIiDVSsAQG351OlavaDfwutPOZAFLvpZSXVNtBYOL4CQXKkmk5pAaWyuB17Zy7LnKNZRmCE3rtIKEf4oTvSjQmKOhvvXLiUtNowNwaajIFiBcIjDJhZBxiragcxAcJ4NLQ3l2U75+82uZdVXzQr8MLouI3SGjj3IQG+0gdrqV3X8NJOPwqd7jutnOelHvPZZnm/r0sn1xN7/elou7+nOj/3lUTneRRWr3ayltXrfRxdgJCOh+co/tNd2wZ27aF8D9dubF9nkqPGufbva/VmjGLWDZv8YQIoJtw9fMemgfHUW9FfS+hPsLIDdQcLSP3vl9GujRyUe9nx+REYa2nmSNnrAIfdsf+piI9AFwUWBsNQgLJubdNoNxuko+emMHJPYPzAAAIABJREFU+RIEulvy04AQmoRRBTjzaShvdhUFDCUgqJa63EKccimNZWbkQQFowhLRChuwyoBcQ/lnfyB/8MckpN7PiLkb2Lr8cJMDLugihl5xLjrKKfnkIQrLXR7n12/SRaViUgEV6dTWhRI8926SZ8whICwAwVpCQ9ZaCle8RkFmaZsO57YeutYu6tjhTQsqtv3UFLYa0pzbKdyUTeyCQfif9ywpJX8ke/dhHC4V6tBJxF35IGEGGdu+58nZ33ZHiG7M3xmzZBY6Vx7FX/yZzJ82Yba4EHTRBE5/mBGXLSDkspcYeOQ8DmUf3/J94k2k07I2TbxEdGGxqNiO0yO5+BB88QskJZmgfjNZb97LkYxCXKpwguY8xchLLyZEhPZvx+7qrwkd/gveYtTc4aikUip+fJxDq1ZRW2sDwYA+fhYxC++mjb/ObT24J0+PcOTzxj0fNH9QMf0vD/D8PE1XKVqhIuWiGSQc3sz992/k5zwrmogkrnt4MTeNMnLWVeMYsmoNGd6/nLJ7CDK+hiYnhNki9GAwFNj8rYnNzZ9U8RY+uddGrFXDa68Y2dzF4mDUlEYenCChkUQ2LDXyz41qyh3gH2PntqstLIxycOc1NvY/q+eg08N0btcPQMaZaeTK97TUhlt5+Q9Whkc5STloYMmbOkr9bfzrIQvjBjgYpdOyprnLyw6R9K0aVuzSsD1HRWnz94ZAJ+ed38hdY5zceIWNbU/rOdRaTi41775q4t3mj1OvqeWpcd0v8aCpVuIKdfzpdT0bSwQ0QU6uvMrMDQNlJs+1kbLDwIHj+XkklyaGjbPTkKvjjx/q2VQhoPJ1cf6lZn4/UmLBEgvbc31YU99Kmu7KpR3BYyzcFS+T8YuBj7dpyK4BlUli5CgbM1q1F1WMjf+bJKF2iSz/1IeXd6iocQECBIQ7mTLWTrLlZDsSlGbh6YschDhF1n1r5I1f1RRaQdRKpE228ND5Dsad38gNeSZezfV84uypXHqkd2RGL2jk6ngZGtS896GRjw+JWFUSI6dZeOwCOxOaF4NOF93Vn6f0TC7eQEVKWjQGQaY+6xj5p3i27KihYcN+Kjfvp+5wMXaLBAiIwYmELLmUmIlJRN80i/o/Laf91WUtiGgmLSJmgEjDmm8o2XAYS5UdwTcM04TJBJ6QpwbTRZcTNVAPjQWUvPkpxTvLcYkmfGZdTNLVkwkQhU70rsa46DqS5sUgynXUff8dhSsyaKx1gqBFk5BCyPlzMZ0Yk1UY/bRohe72DRmHxYq5N+I6epH+oD9XRjp15jSCQoYQkPgjDVntCiIE4j82FgEn5u0ZzYsQ7utPHRVMtApwVpN/rGmSqQ2JYGiolcxDNTRK9RQU2ZHSDPhHBxMo5lAmAbKFza99x+dpV7Fk1Cz+ckkOt35ajgMQw0bw4F2phNDA2pd+4NvibrQTwcBZ56YQJMpUb0rn1/r2P7Cx6fWP2NT8STXkbL56fQqx5mxevOdbNna6MOVuOi3jbrqA61N0yDV5vP3EUt7fVotV7cvoixfw5O1pTDqV3RUERFFAEESMQcEMP2sct9+USoAI5vR9rC3yRv9xt34QPH0+z985kFBHFatfX8bL3+dw1Cwj6v0ZtXAOj94+lIm3Xcwt+9/khRMTXvfza0IgcMZCls4LIMokguSgIqeAn1ds5v2vj3Css4i8neA7IJJYFci2EvbntOorjgJ+WFnBhVeGknrlIn5f+D3vbSyn1ingE5nA4rvPZrpRpnrbT3ywo+tC12Ud46g0gOSkOEb4biLfC8FZWiPb6tizPJMf12SyJaOMEnOTXTKEx7LotvO5d3Y8tz10FluuX9cctUqmZM2P3LKm+QGagTy2dAnnm+pY8c8PefFA722NDJhnJsoAjl0+ZOV29UuZoPMa8Mvx4efHfTh6VEQVZmfo72sYMVwienEjwT/5UtFKhaa5dUya6USUVBz9wJ9ty7U02kGXZGHU3XUMTLAx5j4z5feaqGytQkFG2uvPd08bsMWYmfN8PaEJNoJ3+fHt34yYgxqZ/VIdkcNshBsM5DWvOuon1THzBhsGp4r8f/uxe5WO+samqBNhc+qZdJ2VyOtqScsMZuehrm1tT+QSPNWCI8uHn54zUXhMAF8HA26uYfw0Fwm31lFyMJCsss7T66fWM2awTPkyP/av11JdISD4uwif0kicVxbsZYIW1zB1gQO1JFLyjR87v9NRVSOAIGNMtpF8SQNh7VL1tjyFZDOjz3YiutTkvOrPjp802FyAIKOLcRA73UJAw8np3GtnAkUfBFJ0/NOges5/2oxvo45df/GnqJN5sfkXP1YfP8mttjH539UkG1Xkvh7ErsMd1orKTDXSFAcBA52oUHW5PiLEOAjUgVypofJ4m7GLlK0zkfOLjuJDGszN7V0daif5ulrGnmVn5F0NFP/et4vrOrrfznpT7z2XZwu9bV/czq+X5eKu/tzpf56U022cWvY+cnx1Uyb23jJmzOjuXMxTe93Eqe2Ze/YF3G9n3myfp8IjvbvZ/9xB8DPgK4Dc2Ei1TUPogChSE/0JMqkRnA7qKmvIO1xCboXjNxX2uAfORxcbnnyG0U8CaJj253t4fq6dL+56maf3uEAdw72f3MBV/vt54MKvWNvB9n+/ibO4c7qRytU/8P4ZW1nvDAG1XzAiILuqsZtlhNArGfvYk4SarNR+eym/fr0fe20lMgHgF4pWpOWkleVXDr/7NsF/vI3AC58lcf8lHDkaRsy1fyHcT8ay+S9kbG59V6C7+fWfdKqAcNQCyLUSgdd9zeApcQiyHZddQvSNI2D0DfiPPI/Qj65k17rDzR3LQz10hnoQ8fNmoUbCtv0TSutbDwR2ar69nf1hbzNk/FiS7lxDosuGyymi0mmQajIo/e5xMr9f1nbBSD2apEsWYRDqKP/kKnavbwkVKtuKqFp1D3sCUpg0P5nYOTPJzl6OEwlbdTkyIAbGY9BAbfuya5MwhYqAgGAKRiuAU/ZALn7nkjglFlGupfSzOzi8r3nUcpZSteL3ZEStYey0yJP6g3v6a04deCGDzk1DTSPV31zLju/2t5xckS1Y834k+5Wf0JqcrfqEO3pwV55dN5fTjdaWzRN/XsO65si4rpIc3vrXZqZ9MIvUqATGRAhkFJ6hQsoCRRUi8mCJYaMdRG7XUnw68xNdnD/diQko2mjksfXqE7vgawu1PPu+TNIfLAyLtHHpEB2PpwuepfOwfvvTNVRIIJdq2FZqZXg0HNyrodgFcrWGbcUWxsdLxAfD8Zld3nof7uhAnZZqNV99ZiBloJn54Q5mROs55MXg7jqHmqffNfBz87FTV5Wa97/QMeVBKynBTkYFwYHy5h97Q+9WNa+9b2Bj82EnZ72Krz42khjXwEVBDi4ZJ7GuVbhdb8klKVFi+9cm7v9J1bLDr1bkWJGaFWLLvoqAeCfRIjizdby9TcWJgyEy1JSo+fGHDqZEKidXLLQThsCWr0w8ukk8Ycsku8jun4w87t/AG2e7WDjdyQe5Gsw9kVkHeCqXnuhd8HVw6XgJlSywYamRdw827y52iuxZb+SZyHqemSid1uv1uqs/T+lRf/AGoi+DkoyIyBzNqzrFphcJ67L3yTxJ7zJSZQ5l73yHccj1hEQNJyB+JeaczqQiYhgUSt3Hr5C1otXGoOpabAVZVKma9WsaSviMMARs1H72EYU7mjutqwHz6s/Ij72fgbMDO3Z+BI4men4sKuw0fPUO2UuPtehItuPITaf4xUzUpuaeoknmT18uYb5PlwJohYvtz73ErV93fE9a36Sf6K/xMNX7LAROCiJgbDRFWe1C3AcNITBZDa48qnc0T1A80J8x0Ae9ALKzkep6EKPG8Pzb85ns5+TQBx9w7bsl1FQ3ImNADPAhQIDj6ypyQx6vPrWFcS9OYdTvFnH19g94L8fEovvnMj0QSlcv5x+rutdGhOBUFk3UI0p1rF+Z47GN9hQhMJUrzglEJVv5+dWveGNr82lWRz27Pv+Gvyfexgvz/RC6mAb6nXM5qx8eRJugnrJEdcZWHvvrNgrOZOfRxHDNLcMIx8qvL33MQ99Wt4yb1lp2frmUh0PCeP/KEC5YPJC3Mw56TSe64CCij38QNYQOSGbx/yUxZ/oG7vvjenZ2FsL/pDqEsfiygfgIMhXrd7K+TcQOF/ve/y9PRV3GAzNjueZvt3OV04nVKaDXqXBUFfPThyt45aODFJzi/dRVWE6BEwZowhgcL/J9ujcVJ5P7+Wfc1IFdspQW8PkzKxky+nIWxaUye8BPHDjUhyyuwUbKXCeCrCLvez2Np3glUtl1bH7al4Lj888yLelvGIl5qYGgCDvh4VBx7PiPHQxcaEMjQMMKfzZ+qz0xPttyDGx9ViLw+XpC4hpJHePTNkyoLFCxVUejBBTqKC6sJzRRoHKLvukkebmOYwUQOdCJfxiQB6gdDL3GglEQOfZOEBtWtJxeka0qSr/3Z2OQk3MudjJggY30Q/rOTzP2UC7YtOx+1pejpc2f6zVkveyP34AqhkTbSDnbQfZ/Og8HGJDqouTdINZ9p255j69S0ZCrJUfl+b40IdjKyAsdqBGo+DSQdV9oWq0XCDRm69n3lA6db6u8zoA89QMd+KpA2m9kzzpNy+kgWcB2VEv2xx2EV/aknfUS5iwNFsmBMcGBn0pHVRf2SpfkxFcE1xHtid/VfhvIqg5k5izXkvmKH8HDqkmOthGX6EtldufP7lY7O5P9qCf0tn3xZjs7nXLxQH9u9b/+iIf2uk+2635gB0/gTv9zE7W++U5zq0zw6BSGxekQkXC6QKXVEhQVTlBEIBF7sticY+lH78Nd414wLVUYo4bqECxF7G7eNSuGxTIiTMBxuICMjiIK6eO48Y40Iiy5vP1OJrV9bkOzgKhtDinrsOKSQYibSKBJBIz4Dh6NVgCXvalygsZwkvCcWc+T/sM+JN0oBt5wF5Fz/kFKWiBy+ZdkfLKszTFm9/PrP+lUeiMCIERfwYBJQdSvvZONdwxm5c2DWHXPpRzYVYgsRhB2xbMkRB2PL+S5Hk5Gh9+5T5GcpIO61Rz6eu3Jdz/YMyl46xr2rt6NXQJBpUet0zaVX2dC4+OPWtPWGIoDzicyTI1cv4LcTR3cUYiN2l3rsUgimoET8VMByDiyt9HgAkE/haiRIe3SiOgnLCHs+Ilhjb7peLoHclENnE6QQUC2/kLRznbbZeQ6KjYuw3KSRXNXf01pdSMXEWwQkOt+5Miq/R2HzJPN2OvbGYse68FdeZ5JZOq3pvNTuys5pcKjpFfLIPoTE3G64xx2hcDuX7VkO8FvSCNv3dPIzZOdhAgy6tNQLDHMwbgQQFKxZov6pLCVrlINy46ALMiMTXWh8TCdR/WTBaoamk8FygLVDU3Pq6o/HnZIoLYREGQCWi/UdjXe2VQcLgNEiZhg7w6M9Qe1/NJuoU0qV7O/HhBlotocPfZc742HtKxtH1LXpmZ1c7jVwalOAtp2387pgVxcZTre2KDq8CVTam3bmh8j+sj4d7NOmkQHs0NBbtDw5XaxA1smkJmupkQGU6KTgW6EyjsJD+XSE73rk5yM0oNsU7MyvV34LFlg+xYNpad5vtZt/XlIz/qDFxD9iQoXQZaoqGg49YtDl3ovprFYAiEAXWjX+wbl4s0Ure4oIgHIrqZSiINS8TWCbDtM5ZaTOi31m/Z1Eq5QQDN6JL56kOvSKVlxrON6yTac9X1tk+Fppl/orzn0qiyeCK/agtAUjlUNck66xyFXQUCvVzeFobU7scqgHhBPmp8AgobkUTEEiWCzNbUTQadB125+1rjvJx79+Bg2XQw3PTiNORcv4O6JRuTiPTz5wgG6jGTcqhzRs9MYqwep+ADL9p75dqkfnsxoI8iWI/y4oaGd3bWyZdlBSnpq+2QXJdt+5sGHV/PLabuDr3tohg5nbrSIVHOQ/6ys7mDcdHJwQzbFkoDvsHgG9ygOU8eYC7P54vX/cuO1LzPnnL8z/uxnWHjzF7y0ppxGBPyHT+Wpe1IJ7NY7gJrBly/g+hQ1cnUmL71zuO1d1wC2Mr7+2yc88lURNS4Q1WqMehWiAGq9DpOvAWN3AqLYGyirlUEwERXe3QgqPaCrpmAt5VCBBKI/sZHemLx4D+O0RhKCQM4zcGjvqZVm363naLso3/IxLeU1gOjCFNpq+3eUnchIwKUmb632pI1BcqGBIwcEECQiRjnarTMIWGqOb2YUsdQ1nTC3VAsn/m9rEECU0TVfXSCmWIiPAGp1HFrfUdg8gaqtOswSaFLsBHWhip7KxbnPQF77kzJ2Lbmb1MiA30g7pi4eIxca2PWjusP3eNkLkSIM46xEGoBaPfu+13SyXiBgq2sp5BmRZ3MmgklC1833B8/aWe8g5WqptIEQ6SDo+Hur6GTI38u49KMKxgxt2aUZmOxAFKAms1VIzC7ti5qqYwKILnzDux6TutPOzmQ/6gm9bV+82c5Op1w80p8b/a8/4qm97ovtuj/YwRZ63v/aI9WUsnVzFht+zWLTobpONx6r1c3XC/iFkhqnpvZIDqu/3803S3fxzbLD7C2yIQlaotLiGeh7xhevvYZb030xLJa0CBHn/nzSm1d8fYbEMlAtcXTfUSpOemFSMeiyeVwaJ5P17zXdC5FzJmgXUkg6+Am5hyeREFnGsdUrsMnQ9WuBldof7iNr2DcMHngXoxIBVy757z9BWX0HdXY3v36WTjCYYN9D7Pxo6YnYyK6qLeS++Qd8nvyI+OA04qamkfv5ruZ47p7qoU0h0KY9yqgLxqBy5nL03Qcpqjz5jV6MXMzw3/+d6MB8Cj9ewpFtO2m0aNEnzCHx8kdImP00EwcmsP3Jp6iyyICIPmFY0wComcSg+74kuaPstVFoBcAvAp0KcIF87CvyM25heFowEVe/SYr8GHl7D2IXIvAffxdDr5iBbK5BNrULEu6WXFQYopJQAXLpQdr7+gCkwgzqXXK7RSjc1x9qfBNTEZGRjmyi6hTXG7Wm53rwQJ5nDJljeZVYT/raRn2DDCEaDPqO0vUejgI9D30g8/gSG0MS7Fyb0PT97Q/XsihXw9rNOr7YoaLGC44BVYhEjApkm4rM0g5+IItkFYnIKRJ+4S4CBTVlsvvpPKufgK1VWBybC5Bp+U4GW3PYKl270dUQ7uDCaXamDXaRGCRh0tDuNJmMQdf0nbdGyGPFIid1P1loinkfIGNst1HQU70XFak63GWXW6jChYQ61EWsSJudtd6QS2WmmvbRAzuiOkfNEZeTlEgbf79F5vPNGrZnqyioFzp1DIXGuQgSAI2T393WwFUd/UgjEQAIvhIhzXbeUzyRS0/0Hh7uQg+4ylXkdGCrncUqclxwOtclu6s/T+lpf/AYQY+fSQBcmM3dcXgIiJGphM4bT+DQWPQhvqg0YruhX0alVwOdxQ+UcWRk0tilPEW00WGoBKCkCEsHl1bIhcewuGiat7RLa0iMQhBAPpLV4ZziJByH+fO8x/lzN37av+kP+msVejViKAFxKzDnNls/wQ//cfFNIVe37W/ZMOm2/oST5q2OXTv5T3oCV8Q3sPzLQ5RJJ10t3A4nBz/6lrfG/Y47h03j6cGAq5Ivnl7Fhu6GpxRDOXdeDBpBIndtOuneutvHbQQi4oMxCOAqLCW7g7BNzpxisp0Q1cVbet3yT5mwHBBV+IaGMXrWRP7vuhm8/vEgPn7sM17c2o0ND6cF4f/ZO+/wqKq0gf/unV7TK6kkhE7oRYoUARGwYsEutrWsrrruus22Dcu6trXXVdf2WRBFbCgi0nuvIZCQ3jN97r3fHxMgZQJhMqTg/T1PHh5m5txz7vue/p73PST0SSJGBAwZ/Orxa7ku2M8MdqIAIcpOnBbadx+CzI4PF7KjyWd+Crbv4PWHDrCj9nqeuSCGmIljOe/1nbxx8PizrOgx05k/LxWzv5JP/vk5XwQ5gaNPy+X+f85kRlwlnz/1X1777hCFTi1xvXO44rbpzL1wNq8MjOb2279l/fHcOhUPDqcCgoDNZkDEE3a9mdNymDNnCJOGJdMz0YpVL7Y4iGk2axHwdY17hzQ+cmZ50CJQsNAcCI9/AuoPBjNcCHgdQLSCznDsUzHJj10E3FoqDgV5mCJSuV9EGSxhSPFjFPTH7mxSBCTfMeHJvkA+kq/x9wAKWp0CCJiz/ZhEQO8l94FK+gd7Ab2EQQAhUsakJfg8MgS5OPK0BItgXpunRVL8aJP82DTQ2lkh12YDVadsfqYQmR0waEm79ZS2WBgHpzPk6d6up9rvJTrNwZl/UdjxjYGibTpqq1u/piKketbRDdCloywf0nL8RKcDW4AIL8l9ZAw6meTBftZv06GIEtFZMsgaKnY3NRxpe3jImeUibZCPiAQJvY5mCxYBnUlp/mHTYrShnnVmOzoZOrp/CVs9O8VyaY/+Qml/3ZF29dddsV4r3aQfPFqWk29/zZH2rOHPv19z4rwakgo6EYoP8vOmyqPvLbnq2L0mH+vUXmRZLPTMMLNni+O08H4Myfho7p9GjlamYEsBZTKAhr65PTAqLjZvLm/Rz4spw7jn8mR0Jet5+r2iVpfcnYuC7HGhAILOELhk3bmS3X8fzrHwwFo0+sDsVfG14v7q38n+N14g6eF7iNDIuJY9wK5twWK8hJpfN0rnPXJ5qoPyZQtaXsrqXknxpnLSJidgyh6CUViPSwmTHgAQ0GbdyfBbrsCqqaD0rXls21je8mfagWTf+gg9kryUvzGPLd8XNJTbjWvvR2z/dy3av79MatqN9Jv6Mcs/24WCiD4iNuCRZ0ojsk9aq6UIoEM8sgmkHKbgjd8See/TpCaPJOvWRY0MlwpSyfvsWJVJv3NHgbseSWmQZ0hyEdBZIhAA2VHV0uMTwFOFzwuYGn8Yqv4AjOjtNgQUfFUlDeVvAyHpIVR5diYKLlew3S8FJWB9R+wCp7oObzJx8y4Dw4d4GdvXx9TBEhEahdRsL9dme5k5zMS9rxrY3c4O3WhRMACKU6C2lYlSbX3AOCSYFWwClCqhp2vv+ynHDoEe9cpSlGbfCzTRYdwgJ09e4yVTD4okUFyqIc8hHB0rY5P9pJpBozn+4uxk8XiDP+tIcYNd4dUevdfWB18EuBwCHsDSoIcjhEsuxeVimyZkcpGBf3wsMf98H8l9PdzVN2A5cVRp2L5Xx+IfDHx1sKkhMsouowEEo0y/7BPkIoAmDEa69srlZPRutSiIgOQQCXZGSvEK1LQYH8JLW/XXXkJpD+1DIHCwUUY64QsK6IZfRM5tozHpQfG78BYX4q73NfQvGnRpaRgtIGiPV8lkvKVVJ1iMC2htAYUq9Y7gYci9DvxB9a5DF2FsGN9rkTt9PO0qdBf90Sj0ahyRw5M4nFcYyC+yH1G9dIGQq+sqgyQ8WRTcroAxQ9BrA+N1fT7P3fYEzx39jYih4aSO4vE1ixDTgK+Utx5fztRXJ9FXq1C8aDHPrHWfQEbH0PUZxDlZIoK/mMXfFofjbEg7EbBFBKKT+GudLT3qAMXtpMZD21bpskRdSRFL3/2ETQf8vPXIUK68fxb7rnufzzrFA1IgKtqCBhAtUQwYHHWCn4tow+D52CqKi9VvrWTdrJmM0iUwItfMmwcdrdYfS78zeeLBYWRoHPz05Ls88nOQ3+qSuP7h2ZyT5mfl4+/y0IKahjHMT9HWzfzr925sb17Gudmj+e2czVz5ZulxxjgZ6Yhnjybck3+B+Akzef7+YfQ0guJzU3SomP21voZ2oCEuqwdpNtAct1/qWHTDnGSngVJuYufytshEwO9pZQA/orxGj9FYZTQCKA6x4cBgS7y1IiAhWGX0Ak02Q5Ujymy8Dmis4CPnORpEaoqUAjM1s0TMgBP0QIJybL+gGaHIxVMb/HdynYgP0JobDksGlYOAoziYh1L4MEYGnu6t0LT5SpTOkKdy0MLPr/qZeJ0b61AHI4Y6QAFfhY6KLQb2LTSTt7dp9JD21rMOQdFQsUeD0kcmOktC2KJB289LrKihvkzCPsCLRdBRr/cTkwJ4dZTlHUtuHl3LWfc4iTAAfhFHoY6aeqFhbqhgzvBhs4Jw3D6+bfWs89rRydHR/Uu46tmplkt79BdK++t+tK+/7qr1ulv0g4042fYXKpL/2MNLDlS2fGd/HQXFPnpm6THHWDAJDhzdu4IDJ2F8vOu1XzPZEpjYaa12zIJI0qyL+XRyw6muGDui4Gfy725lhB/w5/PMrQv4utbE5BvOZLjJxU9PL2VFkMuYuwYK/roKZECjiUZvFTh2IdQRBPQRMQFPg9qyVkIamYgYNR2rRgBEjAPPJca+lJIWq8tQ8+tG6eqrA+nkIhwlwY6zybjKD6OQAPYEDCK4pHDpAcTkKxly52+INDqo+vQGNizZG3TxJ+bMJTVVD76lFK4ubDlwOX6gcH0ZKVMSseVOxLxwV6DxN+xUSpvu5rt/fxjcsNcKSuVitjw8k7KzbiBlyAhs0TZwFlC7+UP2L/oIZcY3CChINcUNJ2DaI5dQeqpQ9RdCVg2ErAdCkadKW5DdIqtXGFmzVSStn5d1T5nZnurhlvM89O/n4qFzNFz7qbalN1E34VS+39EADWYft831kqkXyFtp4sFP9Oxp7OkgyFx8Ry13ZYfT7Ng+wi6XY9EqTolcPN629nICe3+0cPlmPxOG+BiRJdEvQyIzSmLECInhQ7wMft3K/ObhRwHfdjOzX9AH3SgOJx1eX7pAf9h2/XU3/LjcChi0GPQn0JZ1ICnXj8Kk8+Fa+hF5/1uPs77RjEWIIv7P95HW50R5KsjeNrh2dWhno8EaZcTQZuuugs/hpDaoJaqL0q301xB6dfRgjMMGYPq4EKckoBs8AKsOlD3NQ66Grj9ntQO3AnqtmWg7UNHyRSKjAiH+pWpHy2ktADr6TO5DT03g9/EjBzAiai8/VAX7bXO0DJkxgDQNeLdsZvGGWAjvAAAgAElEQVSBLlKnlFNTjupVq1i4bzC3ZGdz4eRIPn+vqnNOSjdUFe+KBUz73cZOv2pFripmV6nCqBSR+AQbIo6gRmh9xnD+Of9MBpm8bH7jPe77pDzogWl97lAu6KkB7z4WfV/TQsZK7T6++KmeWRfY6DUmmx5vlXKoNUUIOgyGQAwDtzu8noeCvQ+/uXcoPQ1+9n3xOX/6zxZ21TYqiBjB3Kd/ze8Gd535J4JEz9luTAhULDZT3EZvuC5Ng3DltRH8319NwQ9ZnPAZYZZLI4UfrziSpwt6FnWKPAWqvojks5U+Use5ServIzbHR0SMj8RJPhLHuUh4NIYVq7rA6eGTpHKXDmmWm8hsHxpEYgf50FYYWPuVj1EXe4m3WnAk+YgygLJPR8WRe05sbobe5iRCL1DzrZ2fXjdRWdfowYJEn3+UM6L/ifuXNtWzrtiOThc6Qi7t0t/p2/7axIn6a7Vedzv8Xj+SAqLipa4++ATR5fShoEcw6DFAp99XHw7abHyM6RFNiqXpZ8aoSFKaHGjUEpEQRQSArxKLCAhmUpKNiKLIhD/cxbo/tJKBZRBPfT8IFDef//5x/vJzx59NVUr345QgQkzHEqeB6mbmeSEBc7wFARlvaV5QI4a2928ZdM4ARM8OKgoSiM66iAFX/UDNc5/hbvb7UPPrNunK8nHLJxMitX35NflJ7HkMuvth4iJ81H1zC2sXrGvlRJ2IISUnEBrVVYYn6Ego460uQyERISoZgwgOScZbU45CBkJkMkaBkzI+AuDaQ/HC31O8sHnhE0nPSAYk6g/tObqoDU0uCt76msDJc0sUOoGWg70hGl2QcHOh6g/ceGvrUYhGF5WARqAN3hGh6qHR1ycpT5WTx+cUWf+zifskmXev9JE23MeAhVrWtaO7djuPeMXJgXtRgzzLbm3wznIKR72zQk13PFp9v3ZUGmMvH2dYQa7Q868P9Oxpvq8sKMQeP+5cp9NWvdutStAwoCZzIy/Vhi87Uy7eai3ffq/l2+8D+ST09HLjJW5mJMucM9vLJ1uN7GzQeXWtiISMYJeJFTjlxseOlkuto8E72CJjF2hxh5qgV4gIdzjSEDm6Xx9sF0NQMHWRch5FrqesUoFIkagoEwJ1rYfn6jOQCJuAUr6Kg2+sxdl8x1u0orOHKyizgr8usHskWC1og81fdBa0QeXpw1fjQcGCNsoeCJd2oiLpsrjvvbnMtJzgd0eRWPPE0/zq49puM153H/0FOBp6Nbk/kcnf4CywEDEis2XIVWiX/vyFFRRKYNdEkZYsQvNrD0QraT30iChUFVZQFUThlsGTePDyJPSeEtbttzGk3yD+eNdetj+4ldITVRBLFudOtCMqfjZ+s53CLlGhFGpr3MiAaDcTEazfNZoDniQn/eh6SisVEETSM2LQ0BnGR4WqCgcS0YgxduIEOt34CMJRz3allQWJJmkADz42g3FREvs++pC7Xi9o5ZS5QExmHJEiKI76YxvxTZCpKK9HxoYYaydO5DjGRzMxEQIoPioq2u7R2xaMg/syLlJALl7P/Cc2sav5iTHBQlxUOIP9tx8x20nvAQo4jez8RntKSibVi0gK6CxywIskyPrBYG+I41QvtvvQqrtKREFCiJYwBVuHt4HQ5KI0vEdLFw3RKgfW9w4RbxiuwT3+eQoFbSv9mbs6UP/0MRJagTbJuvPkCVKFjgMLdBxYAAgKln4uBv+qjp7pEllXO9i91kZFQ33q6HoWKv59OqplNzGZfux6DQn9JbxbDORvEOl3uZOkPgpF0X6sIrj26jiyT64d4CbFDkqpiVUvmKhsMe+RMUUEnFTCQWfq/WToaL2HI7+OkEs49Hcy7a/7EXp/3ZXrdXfpBzsa2enBqRCwm/2CaPPxgD9Pf4gh4x5i6PlfsMoH/u3fcv6EwGdn/HELNYpCwXuvMmJc4LMhk97mkzadSu06KCUbqa6TQUwmKiet5VBpHkp0qhZwU713e8sFneVM+lw/D6vWSdWCX7P62YcoqQXjiIcZMD6lxfNCza/bpCveRI1TBjEJS0KwS+xETLHJgefVFOM54n3cTj0IEWfR/55/kRyn4Fx+N2v/t/T4HdmRFakxBkPQzRoBnT06UA6/tyE/GXfeNjwyCMnjiIkO30kbIX42yb30CHI+FdsOHB1AQpOLhPvwPiRASOiLLcjkX0zpj03TcmIYqv7AT13edmQExKzxRLf1/sKQ9NCGx7YiT5XQqTqooUgKGCwSQtkga4RUJlIggaCT6Z0Q5AeCTK8UGQGoLdVQpbQvXVsI5/vZImQMBO7Uyw82YYzyMyimfXl0FCeSS0qKhCXIGjMzRUJDQAYFDQ23y8hFESjZZ2D+/wwclEETK5HVKFRh6aFA3dEk+hnWAdfGdrRcSks0uABNnERmEJ1qk6QGj6NORgGXN3Ay2mpWWox/gkkm3d4ZBTsOUhV5BRIKIsk9IoIsJ48gHDXkKcUluIM5vkVnYo0P1zxDxltYGjAaJvTAZGzZaIWUZExBCyzjyjuMooCQnYOtk+8nbjM6Cxk5yfTrk0zfDBvt7Nab0Z3010BD6FVFk0jEsHgEex8i++hBKghTyNWGkhYWsq1aATGCwYOiWiw6BUsqQ7M1oPjZtrW4RSQpwZbFnfeNoqfWy6bXP+bWP3/F95UQN3EGf5oRecJFbOTYwZwZKaC48/jyh5Yeap2DQnF+eSAcVUoCWeaWv9D2TCI7lFCkYgQ9EgL1wX/iWM+nCIWSXcVUyKDJ6MnwhM73qROjE+kTL4AiU1zU8lCDGJ3DfY+fx9mJCoVff8qvn95H5XHmjELDekUwm4kK2pkIRESZA/XTLx33cKoYHUWyEZAqyQurdVzAHmvDKIC/oJS8IC6cYnwag5NP1IrkwAFSQWhxT2TYEWRSznURoYH6H8wcrD412chFWmplQO8nJjV4OaKyAusHT6G2xeHxk8WxT4dbBiHVS2JsCA9oh1ysPf0YgujNnukPHA4+rGn16oo2owj4PQAKeluQOmyVsEcHSyhQvVeLrICmt5eENob370x5NkERcGwzs+JpM7USCIl+ohr15x1dz1oUTwYE5YRXCijFOiqqQEj0EZPhJSFZoHSTDt8BPcVVMvGDfERn+xARqNylPdp/6qMbwikWaakNMu8RYr3EB1ufh0hn672t8uxovbc7vw6SS7v11yLj47e/UMvZHKlhYiqeyvDwDYTUX3fxcbO79IMdjVLnpNqngKDHZg0+DzOZdYFD/W4vp4sz60mvhE390gN3bmw+2HCCVKR3bio2xc2mjSUtQxDLFbxx018DBskgf5Pn78ULKI7N3DnpIYaMf6RTvB4B8K+leGMJCloixl3W7LS/BvOYy4kzCSjuFRRvabY4F2JJuHw+aQka/Lv+xZbFu5ArP2Xb21/gJob4yx4lPbFZrxVqft0lnW81pdtqUbAQO/5cTM0bvXE0ibmxCPhx7ll3rLNpjx6sZ9D77mdJS9bgWf9H1ry2ENdx13IynqL9+BQQdKNJGprQ0qhnHElSbiICCv5DW3E0PE/eu4DiMglBN4LMC6bQalQ1MQpzbBt3RbU9Sb3iVqJ0IB34kIIDjVpUiHKR9vxAhUtBME6gx7D4pvkJdmLHnRO4ALo5oeoPBc/GzwJ52s8ha9qAVjZdjeiOuqqErofjcjx5qrSK1dRyc78xhmiZGBEUj0B1GyLEHQ+5VMeackCUOGu0v8UVVZoEH+f0BEERWLdDg6+d6Tr6/ZzOwF19mhiJFns8gsKwKR4GdMCEti20Vy6m3j4mNTfQGfxMHSQjArt3ao8agTtDLhpN6+dvBY0SWETL4G00BfHl6VhSAYLWz2Xn+IhstZ9XSI4+vvzaQkfLxbNfywY3CAY/0wfJTcsvKIwY7aML7B0DAsUVAS/NlEw/Mc3KlDjEy+CTd9M/xXjZubMcCYG4zHjsrcpRQXK4QAEhLhZD8wFTMGGfdQbWMBqB5V07qXOBYOxFzKjm5y71WM8YgD7oCkHBt34DdW4QbINIPLtHKwsJHRpzQ0X17T56gLFtf3/jpjB7PYqxA7n/xRt555Ubeevh4WSE1aDenfR3hIbQq4qIefgArEMGYdODsq95yFXapz/fIZb8XIeMSL8ZQ+jfxFAj0GPqUEabQXEdYMkqZ9PDYYKFM++YzUU9RJybfuCv75fiLd3CI09tpwwz426fzSWpx3lJ0c5ZM7KwCFC/ajPfd6EDsZ7Ne1nnBMGUxczx1mb9rpHR5/QlMcir6aIjiG3Vo1UgZtxoZqWJoEjs3V3Wafdb+rZu5dvDCoIujauuyyGq1XHTREqSsd3jpmDUY26tKghmxlw7mqFaUDwFLN/Q1LtQiMjg149dxEVpImU/fcHt87dRfNzOR6E8v4JaGQR9BtPG21r2gaY0po6xIwKufUXkH+d52owEMjQg1xSx/XA4d90UHHVuJAW0STGkNJ83CEZGXD6CQSeaTyge6uoJeGhGndqTSEKCmz6jZfDp2P2FPvg1hGFAOaynqAjQ+MmY4m0RBkxIcZHVVwFFpHiDrt1jkbzTSH4JoPXSb66HIOdFAogy1viWubVHLpoBLtKbLf3Re8kc60cAajYYwnCPlICjJHBnn62Pr8V+gXWsi4RW5meuNSaKXYDdzYDZvlb2CxT05mOF7Ax5Hvd+L23D+WlZOHp/K3R8PWuCIuJ1AoKCMeIECpa0lO0VQOsj6Rwv0YqOoq0i+AP/mge5yMyWQdZStvdYb+erFwMH0eKllvMbQSbxAidxYVyvdGY7Ohl5drTe25tfR8mlPfoLpf2FWs6mCLgqAn2bJcXf9pCRIRJKf93Vx81wtQehp5PxD1Qx5aEqJl3mPc6B3saFDlXvoaPJGcU/H7+S//zrSp66LqP1w65SHYdLJRRBJCEjCnPz9qC1kZKoQ0DBUeHAdZp4z5yk8VGk9+AUrIqbTRsbTqiKUQwZZEfwH2bd9nbu0nY6Liq+fo1qj4KYPI/B864kwq4D0YZ1xJ8ZMmcMWvw4f3yBoiYXk4gYRz3MgLEp4FrB7tdfp14CkHGvvp9tK4vAMo7e19+ITRuO/LpJOqWG0q/fpV4C3YC/MOyqC7DbtICIJvYMMm9+lNQYDYpnHQd/3NpoMRhifsbBZN/5Ej0zTPj3Pcemt7/GZ4pGb2v+F4VWe6yFyzs/oLDEjyJEEH/5S/QdMxC9FkCLNnES2bf+m7R4DYpcyOHvvzt2gtW/jn0fLcItazCPe4ZRN15HbIKtYREtoo0eSPyUvzD870sZPimzyeJayLyBQVffQo9BI7AnJGOMySJyyHUMuO8j+ufGgn8vB99/k6YhoEOUS93XHFh+EFmIIP6yZ+g1MAWNAGjjiZ7+JAPGJRI05E7I+gOl6hN2L96MHxOR57/J8ItnE3HUWqpHn3IWPW/6P3LHxx+VS8h6CFmeKkERZGbMq+M/l3mYkCK3MKprI/zcMNNHlABlm3Vsam+3L2tYsFSLA0ge6+SBSX5iGxap9h5e7r3OTX8d+IoNfLhdaH+6Dn4/534t270gxnm581wfyQ3NQGOWmHyeg4fGKXi6wqWZ4ZCL0cet17oZGxswwmmtEhde4eTcaFAcOv5vtXh0UtkZcsmcWs9rN7i4aKBEYiOPLVuSj9su9NJDAHeels2N8/VreWehjnIFkkY5eeYqDyPilKOTJ1OkxNjxLh75Qy2PjZNP/kRXMzpaLkq9jg9Wi0iCwrjznczrKwdOXWplcic5+d0oud0bw+Fi/24t1QoYcjzcM9FPjBbQKGQPc/G32RJBL+fqVBQOrcvjsAy6Pqn0P14YzD17cPhASBhN6qX9Gu4AA8GaRNRl8+g52Y4czjsQ67dRsrQMBSP2y66gR26DV5pgxDRhDumTIml1BVi1nsJFh5DQYbnwBrIvHYw54sjkVos2tR8Jt9xK5vhwuaIKGKwmIiPMREaYibLqCEzhRAw289HPI6zadre/UOlW+jtS5q2bqXUoCOnDSZ2RjYgfx5ptod2j1Co+Vn+wii1u0KSP4m/3DaN/lAZBNJA5aRr/vDkDCzKHvljO103ugxSInzKDP06PAOcB/vPoKvb7ARTKlnzJI9/Wgq0nt/9hDL1a2dQWkwcwe7AOQXay7Os9XSD05zGUml28u7gKSTAy/raLuHlURKDf1VkZcukF/GmGHSFIea1nzOLTD27gkdtGM2NUD3om2YiJtpPWO4vzb7qU1/4yiEQR5PJtvPdDXbMq0IHtyHeIN1/eTpkikDzjQl7680hGpRganitgjk9iwoXTePK/v+ap86LbnZ9u9Gw+ffNy7rtqMBMGxpMSbyUmLorew3O55R/zeHx2NBpkDn7+I58XHxOsYO7B9f+4lKt763BsX879T+6ixnxMFsf+TFga1TPvxo0sKpRRRCPj77iEe6YmEa0DELGmZnP9QxcwJ1lAkav5csGe44RrF+k5qAcRIjg27mdrmLdRnFvz2OIBscdQfntzDikN8x6NPZ6pt8xl/nlW3CdyM5Aq2JXnQxEMjD13MJmnzNtdIXaGk3gDeNdY2Fd4qvIBJB17FurxKWA9u4Zx53oxN4zPhkwXo+6tJ1YP8kETO9eFYQbk07PtbSMuBSyTq5n6GydJSccOq2ljfaScU8ekZ8qZfLbUbM7VTrkYvAz5bR2pSQE9CzYf2bfX0icZqDew87vwhOir3qzDrYBmoINRs32YdIBGJmpCLROu8rU6P1MqjGz8VIcfhdi5VUy+2k105NGYTxjTPfS7q5JxUxrNRTtBnpFzKpn5hzp6j/RhaeRdpU9zM+x6JzYR/Dv1lDYOw9zR9awxsobKfAEEmR5nu04QxlukYrcWRZBJneBFc9BAcSWAQOlGHXKGi/QMoEZHRdGxVP4desq9ICQ5GXG1B2tD3yDY/KRfU834s2WkcK7jOrMdnYw8O1rv7cqvA+XSDv2F1P5CLWczqjfrcSugG+FgUO4pXhOfdH/dDcbNMLUHwe4ncaiH5CEeknu2UQ/t0HuoiBFxDB+ZxRmjshiVYzuOkVSiaG85dTLoElI5Y3A0kQ1rR63ZRs6IdDLNAvjr2XfAGZZxuitwcgZ8MZrBA+0Ivv2sbTA0CvY0hvYUkQ7ks+kUufl2JErhq2x+dySjrj4Ly5h/Mm7M35BlAUEUEZDx7X2aTR+vanKaVIi9mAFXzsRIDWUf3kd+UaMzB0o5xe/8mcKcl+iRcxeDZi1n5aebj6YPJb/ulE7a+xSbPh7CyDmjiJjyNOOmPIHslRH1+oAbsf8QxW/dS36J1O78hNTZpGRHIAC6rDsY9cQdrWjZS/kbo1n1fVnDf9ew58VHsd/1O2LsQ8n81Rdk3ORF8mvQ6LWBcsrlVH7ya3Zuq2/0HBnP6t+xNsLIsMvOwj72YUaNfQDJVYckWNAZdQ0do5/69c26DH0qMZPmkTqlZekUXz5F/72JnTvrW34Xkh4cVPzfXezP+i9ZmWeQ89vlZLnrkDVWtDoF97oPKes9h/ggoQpC1R94qFl4Ixutr5J71kBiZz3H2Jl+JGcdis6GVq9FwEfFgcZqCVUPocszJDQJzH3gbKZEHxv2ItJ0gEjy9Nm8lOs9OkBIeWu5/99bKelmRk9ZI5M71sXgsS68DpHCGojTK2T8qpZrYmUiteAsNPCPz3Rhufz48HIz8zPquX+kzIQL6xl/rkCdL+CJJwJynZbn/mtgmy886Try/eRKPc9/5+WpGRL9Jjv4cIJAtRvMZgWDKJD3k4klCU6u79UsoShx8bUuJja63y8iIVCzEkc4eSZLOFbPivX87QM9pe0N3dJOuWxbq8c22M2j97txuQQ0JgWDAIok8uV7Jr6pDYNc2oOgkJ3r4Z5cD3crAS9DjwCR5oa7QWt1PPeRgZJmcqzYYOZeu5NHzveRNcLFUyNc+NwCLkHBZjjmTZm/uf1F7Hi5CGz43MxbGQ6uSfNz/a21XO0R8GoUzFoo26RnZbaXMccJZdNRuHcZ+N8+H7dny4y/sJ5xF4Af0AoC+5ca+SLHxZykzi5lU/y7drL08BiuSs7kjH4alm1o5Vhu2RoKPh9OzgWpWM6Zx4BpbvxOBY3VhCj4cC1ZQFXyBST3DVfJvNT/33sUZd9IUq9Mku79A/H1dUiCGZ1Fg2fZcqqHjCPKEuxokh/ngjfIs80jc2oP7OdeSd/ZMrLTjaIzotGJCIJE3f4wLZXEOK555mZu6dXcRBHDlU/ew5VHSrXnBy6/fil7go23ZkPgHnrAU15LdbhXcd1Kfw00hF6NGhOLOQUUfx7VYQy5egTpwCoefCadl+7OIW3qLN4+ayaSDKJGQEChbsuP/OWVfBrvGYlJg/nTb/oRh5uVLy7kg4ONlKo4WPL0Ir7IvZRZA8/kwavymPfaYZrucYpkTxtEfx3I5Tv5YnVXOOHTGC9rX/6U1/tdwfV9M7j58Tu5zuXBpzVg1imULtvIz7m5jA1yv68utgfT5vZg2tzgT/ZX5PHC/Yv5sabZF+FoR21GoXzJZ9wZreOJ23LInj6DF6adjdfpxiXosZk0DSE8ZQ4sa08+RxCwZ/Ti0pt7cWnQ4vg5uGQR9zyf12Tuosnqz3kDjYiAtf94XvhofCvPl1j12JPcsqA+0J48B3nx4SXkPDKZkdEpXP7ATcz9sx+3T8RgEAMhmGUH6179mKfWHKfuiVGMHhGLRnGz8sf9OEN8+9aQizbwzP8G8fx1PRhw2VwWXOShul7BYjdiEP3sX/Al36Sfw81DjvMQxcWyT7dw+Ixh9DjjHD5YMJaDh52Bqzb8h3njD5/zdTi6DZuHvlP8CLKG/QsNYQ+91pz6ryNY2buSsZMkUm+oJPUaAa8XdOZAeDal2sD6f1spD9OhJtdPESyJVJg0z0PkpFrOmliL7BLxCwp6o3J0Ilm7qlnCdslFoOJHI+JoBxNfcOB3iAgmGY0GkDTkPWdnX3l43s+/ycL27W6G9ZdIuaGCOfMEZBREQaD6cyv7cuvoHSzkHgIVH0ayzF7NuJk+EudUM/Mi8DtEFJ2MTg8IAqV7m6bqcHmKMlFjHIwc42CkIuCrE5BEBYOlob5UGVj/sqmFV1JH17OjKCKFi03Uj3BiHV7L7Dcd1JaISDLg17Ht73YONNq3rd+lw6X4MGsV6jbrqWvo/71bDFT4PSToQNqro7KxZ2epifUfu5h6mY+Y86u4YKaA2ymgs8poRIGaxTbyU+oYNDB8r9U57YiTl2cH6z3k/DpYLiHrL8T2F2o5G+PfaGHzRjejhvjo93ApOfUifgmQdGy+L4pdJQ0/1Pjpc08taY0iQBlSAgWyTKxlWr9j+zbKITPLXzDibBru4+T7624ybnaXfrCjkSoOs2abhfEDrERl9WRqTwVJUhA1YoM3r4eCDQfYV3+6mB5P0vgo2FMChsa8Y4ZGQ/90BugUyjcfbP0y9W6Fj/rvb2Z5ybX0mnkp8Vk9MRh8eIu3Ur7iZfZ8uRhH43WEpifp8/5CvA28W+az9fu8lgv9um/Y8eYHRP/mMiJm/4te289n525HaPmFWs5OS+eg5vMr+Sn/GrKmX0h8z2wMJvBX76Vu9zcUfPkiBfsrgmyOhJpfaPj3P8/qP68iZdq1JA8agT0hAa3Wh79qH7W7v+fwt69waHdJy3Iq9dR8fQPLts8gfeocEvoOxhIdgcZfhaugEMehtZRv+JzDGzY39Qws/IjdCy30GDQCa3wSBpOAv2ofNdu/5NDi1ygqqGulpCHKxbWGXfPPo2723WSMOgNblBGlagNFy55j19desh6d00p+oeoPkIooeft8flx7KZmTzyUupw8mmwUcBdTu30blmnfI+7GgSdpQ9RC6PENAMJLWP51hQWIRmhKTGJrY6H30e+guV2IdRRH5+AU7ewf5OGuwjyFpEkkJCkYBzLFQVa7lq/UG3lyi40C42qAs8t3bNg7t8nDlGV6G9FCI0EFthYYtW/W8/62B9cEmB6Gk6/D3E9j2pZVflbu5/kwfQ5Nk7EaBskIdS38y8sZKgSm3BUumkJLhZ0hUy69M0RKDG92f4tfqAuFL2jM3CYNc6ncb+dMKDTec7WFsmozVI7I3T8eCxUY+2S+08MIISS7t4OAKEw95fIzOkejXQyLRpmCXBSqKtWzapufDJXq21AZJqAjs+sHClbt8XDTRy/gcP2kRCkZJpKhIoKBQy+otOr7ZoglDmLuOl4vi0vLyM1byprq5ZJifnhHgr9Hy7UoDL/4gcPX9XcSlUNbw/qsW/Oe6uWigRLIpcJ/r0mVGXlkhcPHvOruAQfAX8sU3Zcy9No7xZ6bw7w35rTgAeHF8/CK7Ss4iaXoutpQItCYP3vxtVH/3HUU/1hD1+wvCWzZ3PofnP4P7vLNJGJOFKdqCpqqIqq++oWCRTPKQcYAfJdiFZVIN1W8+w7bVI4k/azAROYno7XoERyWufYepW7WCkqVdJ85ldP800kVArmHRu1tOwYGgbqa/wAOoXb0LafQQtAIo+7a0DLkaFiQOLPiAqwpGcOMVQ5jQP4YYo0zVoSJWfr2Cl9/dyYHGl5loYrjk99MYFwk1q77l759WtjwQWb2Lf/1rA0P/OZS+V53Hr9a+ylObG7UsXQ9mTYtHg8LhHzaztgtelqLUH+S5O19h31UTuXxKJtlxWvxlBXy16Cf+86HEde/mtkhT88OX3OLM5oyRPRmSE0NirJUYuw7F46L0YBHrl2/hg0+2sqMruHkqXnZ8+B6XrOvLJXNymTi0BxlxRox+F4fzaji07xArf9rG4p8Ot3vc9G9eyfzX3YwfmkJOagQxdj0GUcZZU8P+bXks+WIV/7e8PAzhJY/h2LGc267NZ/bFI5kxJo3eKVasWon68nL2bN7Loo9W8tnmuuOGQBOTezO5l4hctYsvVrpPwcl2H1tef4t5hRO4+eJ+DM+0E2HxUrp3F0s+XcbLi2qZ/sSJn1K3ajG3/LmOWy4dwIheUWRkRwSMxz4P0dr2Tj4D2Kc4SdH3VOcAACAASURBVLWBvMvMrh0dEG9B0nDgqRhqNznoP81DQqaEUQ/eEh1la01s/8hESUUYy6EIVC6MYuFmN71nu0gd6MMeo6D1C9Qf1FJ3QM/h1UYOrNI1kWZ75eLfaeXHRTpy5zpJ6y2h92io3mVgzwdWdm0Tw1fnJC07/hmNfE0dfUb6sFrBW2jg4BdWNn0LfY5XzyQNBS9Fs3CFiz5nu+nRz4/FrkC9hqo9OoqXm9n5jaZpWTtYnrXfRPCTy02PQV5iMiWskTJaScRdoKN0jZEdC8yUBZvydHQ9a4R3vY1v54vknu8mMVPCniEFNrT9AsZmO8DyAR2VXjDrRUo2HbvXUanQU3wIEnpCzW4d3mbGkvL3ollcXE/ubDcJaRIGs4DzgIGDX1rZ8p1IxkNh3H+BTmtHcHLy7HC9h5hfh8slRP2F3P5CLWdjZA2750cjXVFHv3Fe7FFyYM9FktE0OcslY+/tJSGu5SO08T7iG4VTVfQGgg2dJ9tfd5txs5v0gx2PTOWuPXxbHUefXjEkRhsxacHvdlNTUc2B3cUcqPSfNl6PAEKv1MTT6X1UVFRUVMKMYPfw1P0+Vsy38m6YTsl2JU739wuVNslFkLn4jlruyoaV/4vgnhXCaTVJUlFpL2LicJ5/eybD6zdwx9zPWN5aWKCuhHU42c9eRqSwh/w7X6Is7K6CHYmeKQ/exWNnGfFsXMwld6w6TQ5LHofTSn8qKqcjIjnzbuJ/8+I49M5rXPJ8Id398pqQ0XsZ/mwlfRNE8h+L5cefOiuAdhdDlUt4UeX5y0TVe3BUuXRvVP2pdEPUWqqioqKicgKae62dbpzu7xcqqlxUVNqLXLyZ1xfXQEw/Lp1sowPOprYTAU2fHCxaUIoO4Kjr5oYrbRLDBhgQ5FoWvbXh9Dc8nm76U1E5HTFlcvGseETHPt786PAv1/AIGEc7yUoApcjEzlXq1tQRVLmEF1Wev0xUvQdHlUv3RtWfSnek051NVVRUVFS6OEqTf04/Tvf3CxVVLioqYcDL6reXsXLqTMZcOoJ+Xy9pcQ9tp2DvR9LsGFwrNlObV4OsAAho0keRfsVgtHip/34drvbHEu5UxLR0hsQKuLeu5M01XSSEcDj4hehPReX0QyD57DOYESez760fWNTeC7u7NQpGRcfO97R4dpoo6wpjY5dAlUt4UeX5y0TVe3BUuXRvVP2pdE9U46OKioqKynFRPBq+/FpPgePEv+2OnO7vFyqqXFRUwoNcvJHH/m5kepZEZKwARV1gs1kXhX3aefQ45zxkZzXecheKKQJDrBkRCc+aT8n/rrzbHz6Q9//I3Ik/dnYxws8vRH8qKqcdgpE4Xz5vvbKF5R8dbuUe4F8KAtXLLAS71v2XjSqX8KLK85eJqvfgqHLp3qj6U+meqHc+qqioqKioqISGeuejikr3RJ9A1IwxRPXviSUtFp1FC24H3kN5VC9bSsmP+fhUr7mui6o/FRUVFRUVFRUVFRUVlS6OanxUUVFROc148LFqJp20X7vA1s9s/Pp7Ub3nT0UlVLQ+Hvyn4/Rtf6f7+6moqKioqKioqKioqKioqKiohAXV+KiioqKioqKioqKioqKioqKioqKioqKioqKiohIWxM4ugIqKioqKioqKioqKioqKioqKioqKioqKioqKyumBanxUUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVEJC6rxUUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFJSxoO7sAKioqnYx2AgP//RZp1kPs/8dEduzxd3aJuhkazvzLvfx7uo79b77CpS8XIXV2kboI46+uYf4IhQNf2bj6c03XlosmlquevYnf9Crmyete561D6nXIKipdGl0EYy+fzLxpPemdbMGsFRAEic3P/ofr3qtCDne6Js/I4i8fXcGFkdW8dduzPLGlTak6hnC8X1fOryMQzEx94FbmT/Lw/p0v8uhGb2eXSCUcaD2Mfq2KXnYNO/4Qx9odrf1QIfXuUiZOVKj5IIaFb+tQZwQqKioqKioqKioqKionT/uMj8Y+/P2TSznbsZIbLvuKDX7QDpjKx8+dQdSSDzj7wR04ABAZftedvHiRvXVXS9nJp/c+wUOrusL2tBZj32vJnnkJ8dlZGHQ+fGVbKF/5Cnu+/AqHp6vk113SAcYsEqbcQNqICUQkJ6ETHHirDlG353uKvn+dgr3lQRb2J5+fYB9IwpjzScwdQ1RqJgaLAcVdjuvQGkp/fp28n9biaa2K6TOIP+tm0keOJyIpCZ1Wwl97kLo931H41csU7AtWxtARLANIPvtmUoeNxh4Xi0Zw4CnaSNnK19n3zXc4W93r6uj6SYj661yE2CsY8dd/EGcWUVwfse7231Ci2lVVWiFm0iSu66+l9POlfKwaHk8OjYn0AekMG5hK7sBUBvVPIi1CiyiX8epNL/Dsrm5pfviFIRI/dCQ3XjGY8QNiidVLVB8uYuW3K3n53Z3ku8OTi33GXL75Uw76NvzW8dV7TP7rLoIPhXqG33oVT86JQYuMq7aeEpeMgkSZ83j1LdR0bUTQkz6yP1NGpDOobyLZaVHE2bTIbgdFeQWs+G4t73y2n8PBXios7egUv1/I+YW+DtBGJXHmtIFMGZPBwKwY4mwaZKeDwv0HWfbVav735SHKWxvbjdGMv/AMLp7Uk/7pduw6GUdVFXs37+HzD1fw2TZHcOOo4mTJW6vZdeYkLrxlBB/eupy8rrA8CYYYzcS5A+mjd7Hh8zWsKjvNxi9RIvV8F9F6kdJvzBRVdHaBuiMitoRoeiRYiYk2E2E1YNKLKH4fjloHJQVl7MmrxdFV67iKioqKioqKioqKSrelXcZHbXYaAy3gWHWQXX4AgcQBaSQKEhs3F+IKTxk7GB2WiS8y+pqzMIoCICHLOvRJo+lxwUjiBzzB6sefptodrsV9qPl1l3QgxJ3LwLsfJyXZhHD000iMCZEYE/pjl1ZTuHdpM+NVCPnZLmLoo/8m0SQ0eRKWJGx9zsXWZyYpY59i/VNPUuloVk7bBPre+yKZ6VYEFGRfHX6PFm10DjGjehM9Yg5J717Juq93hMV7S4g9l0H3PkGPRAMCCorkQcaGMe1M0tLGkzT0SdY8/iRVrvDpIeSyhqS/TkaIJfGS3xJr7pjI0q6KSvIPaims9nctOXQyzlqRg6VwuJ6uLRddEpde1YdIqZjn/y+v4dCMSlsR43N54MnpDNF1dklUQkNDxrkX8+I9vYnXAIqCJGuITk9n5vVpjB/5A7ff8yNbnB1YJEXmQF4FrZ4XsWQz55wYtEotXz78Gg98W4OvLc8NNV1bEWM5945ZzEtvNvZYbWQO7EvmwD6ce85q/njvVyyraNorhqUdner36+D8hMhBPPbeBUy0NPvCbid78ACyc/tz3vSl3PvHpayvbZ42i7ueuIQrc/QIgORxU+/SYImLZ9hZ8QydlMvUZ9/m7g9LCHZmS9q/nndXn8FDY0Yzb8w67v/J3TXHMU0MEy8/k/Oslbyxau1paHz0k3pRPVlmLdvWd5zx0VeppbZQob5WOPGPuzqCiYzcdPrYm72LXo89Vo89NpKM9FJWLT9EUZgOmqioqKioqKioqKioqEC7jI8CiQNSjxoa3QCCkdzcBLRyBRu31gc5TaxQ9vn7XP78oSAbSgreLnDkUki+ntzLz8Io+nCsepCN77xHdb0Z27B7GDTvGiJ7/Ybci1bx0zsrw2OECjG/7pIO/WB6/fpfpCQboH4Thz7/D4c2b8Hl0qGPScOaNYk4jbPFhk5I+WnMaHUS3sIfOPzTQkp3bqa+sg7BnkPshLvJmTIMQ+/fMOSqnSx78Uu8RzO1EjfnMTLTreBYw76Xf8veTfvxywKa6JGkXfUkfYamEHvJP0nfchH7i9qpeSGV1Hnz6ZGoh+of2f3qn8jbegC/EIlt2K8ZeO0NRGXfEXi/t39u0lY6un6Gqr/ORUA34Lf0GWHDWVyAKTGFU7t1JLH6uZe44LlTmkm3ZN2nNuZ+2tmlODHW0aO4MFPEu2EDCw+oXnqhILtq2bXpEBs3H2RLVSI3/mYI6Z1dKJU2ockYxYN39CZelDj07WL+9PQGttbo6HnmJB7+/Qj6DTiTv96Yz9yn8tt9qKzu24+Y9rO21T5ZkzGGF54eR5ZUwJffVbQaslNMjCPTAIr7IN/+2HaDV6jp2o5E5b69fLo0j3U7SjhUUkdZpRvZHEmfMcO4+bpc+uSM5K+/LeLiP22irNkLtrcdnfr3a29+J7kO0Oox62Vq8vby5ZfbWLbhMHllHsTIOEbNmsjtF6YSPfhM5v+mlEv/uoOqo5MRPWNuOpcrcvQotQd54x+f8erPFThkMMSnc/FdF3DnuAjG3DKLy1a9xpsHg8xilHqWLNzJb8bkctYlA3nu5zUUqcPDLwSB4jdiWPBGZ5cjXMi4a2rIO1xHWaWLeqcXt0dC0eqJTIyjf98YIqPiGTnUydcrKmhx7lFFRUVFRUVFRUVFRSVEQjc+CgYG5cajlSuPGRq1yQztr0WpKWBDXvAVuuTxUF3jbP00e6diImbaPCINAnLR62x65S2qvQA11K1+iA2RfRh/xRgs439F0uerKKhp7+os1Py6SzoR84Q/kJluhPplbP/HdRwoPHa+3F2ZR+2epRwOl1w8W8h/bjrl63fjb6ya6hIOvrMBB18wcmpPDMOvIemDr8ivbKij2mEkDk1EwE/1l79j14b9DcY0BalyFXmvPkp036dINA0ifkACeUWH22VsE1LmkN7XhqCUU/jW7ezZXHWkoNSt/hvrNCmMv/kczONuIHHhijDoIVRC1V8nox9K1txLMZa9w8YlGeRefqqNjyrdGsHC5Nl9iRZ8rPhmByXq5vJJI5es4ZZZK/E1yE7sOYErFVAbXndAx4iLRzHQCFL+Kv4yfy1b3AAS+5Ys5vcx8bx/RwZp54xl2lv5LKhsX26Kz0tNTWsxxUX6je5DpgY86zfzTUnrY5hg0KEXQPH5Gx0kOjGhpmszUgnv3P9ukC/qKT5YwJZqIx//qQ/20YOZHLuZ90uPFSIc7eiUv18Y8jupdYC7iPcfeIHVP5VR37hvLq/j46cKOcSNPD8nhtiJI5j6wk4+OCJPXSpnjbchIrP93YU8+9MxQ7anNJ935n/HkA8uZLIlifEjbbx1sDaooduxditLqwZx/qChzMpYy8v7VauMSjdEcbFn1d4gX/hw1jmo9GiYPiIKfUIsPYwV7O2eoYtUVFRUVFRUVFRUVLogoRsftckM6atDqSlgY4OniCYjjUERAp4V+WzvmtbF46MdRuKQBAT81Cx7t8GwcwQJ5/J3KL9wNImmMSQOjKLgp0pAQD/sCcbdfhFG1zK2PXQN+c0vlhPiSbplEUNGxeHf/iDLH389cK9GSPl1o3RiFskTRqLFS9Wi+8kvbONlhKHm59pI8bpWnqnUU7nia1xTfoVFm4MtWQNHjI+6WAwmEXDhPHywpWHRtZ/6aglMAhqjOcjDRXQZF5A5fQ4JffpjtlvAVUz93iUULn6OgzuLGm1qCeizhmMRQXEso+io4fFoQfGs+5BSx9mkWseQ0M9OwYqa9snlCMZeJM+6m4xRZ2CLMiFXb6d8+fPsXtxKjKVQ9dcEPcbel5AxZTZx2X0wR9gQvOU481dRuvJ/5C9fgSuoq0So6bTYpj9ARlI1JS8+TaXhXyGUuQ3o+vHoVxcztcnFZTL73nyFS18uCu51Kpg5/7G7eWA0rH/qWW75IYq5N57J+Wck08OiUHPoIN+8/y3/WVRC86jAJ42gMOtXNfyxr8jH7xjxjXIzM13BWaTj5XdMLDV4+d2lHsYmKFQf1PPc2ya+Kz+WXDRJDB/i48y+fvomySREytg0AjWVGrZu1/F/Swysa151AbQ+/vaYg8nNRpa8r2xc/bmmFbk0lLUfbPrIzh0bZS6Z5WZ2f4kkI9SWaVmyxMhLqzTtl0uw7KN7M32oHvwHWLracdyDBYI5HtuowUQNysKcEo0+2oZWI+EvL6Z+03pKF62krqIVn2Mhgrg//JH0/gq1r/2d3T+I2M+eTuLEflgSzAjeejz7dlL+6SJKdtQfS2eIJ+q8s0kYk405Wo9cXUTd0q85tEgm6YkbiLNVUvLXRzm0O1i+WvR9RhB/1mAichLRRxgD+RzYT82KlZQu24c3HK5RsnTKPazCQdfXn5Go2/9IzzEmvIufZ+tb+4PXx4Qz6fPobCwcoODe/1BS2o6GoUthytiAkWbrovUNhscjKBR+tY4VN2QwxZzB5FFmPvsy4OkePeF83vlbLvGOfTxy4//4oKCZ6Ua0Mv2Bm/jHFCuOtYu5+p7VHDiRO74+jdlTY9AoHn76akdTr8Cj/aemaZqIwTzz/eBGH0hsfvY/XPdeVWDcDTXd0WzjmHblRK6YkkF2nA5veQkrFy/nuQ9Cq/FV2ws4KPdhgCaCHgkCNNZdKO2one8HAhE5A7ni0sFMGpJIjyg9iqOWvG17+Py95Xy0obZpmdqd38mh1Bey5MfWvvSw/utdFF54BmnaOHqli1DaUMkMFqItAig+Dua3LINSX0F+uQwWAZPpODeQug+ydK2L86bHM21SAq/tLw5PVIlGiNZYRk3qz+RRGfTPjCIhzopd66e6uIzNq7bw/rvrWF3aJBYJGVdcz4e39Gi2iIvh2pf+wrWNP/Id4JFL/8t77ekjTgJ9qoesGS7su+2s+qFR6GFBJmaSg35TPMRnShiN4K8RcZboKF1vIO87E6WNwqnaL6rg3Gt8zezufvo/Xkz/Jh/pWXNTNDvLaYrJT8acevqO9xIZoyBVaCn63sKmBcex5OvcTHivmvRmYY9rPohh4du64H2xIJN9fxljhkHpK7F8u1yiz5X1ZA/3YTWD57Ce/AU2Nn6nxXfkAVovg+9zIS01s3elrpW5bMfiqXRQr0QRLeqxmAVU10cVFRUVFRUVFRUVlXBxEsZHDSNuv5EHJxoDi0FRT3SMgODvywP/6xlYjBvMJIigDJnKux9OBiQ2vPgqf/6muXFDQG/SgceLtwt5mQgJQ4i0iSAXULU7v+VC07mOikN+EnOMRPbqj/jTMmQUvOsfYsuPIxg+cRy9r7uG8sde5VjkKBHj6IfpPzIB6pew47X/Hv0utPy6UbrIscT20KL4V3F4VSubqGHTQxtw1wY8IgWJJgl8xbjrZYgyYE5KQ2Bv0zxNPbFGakApoza/sOl3gpWIqc8yfO5kjKKAInvwu9yIllQih1xLRO5M4t+7mnVfbW3YsBLRR8YiAErNIdzBdrH8B3CUyWA1Yc/MQVixBqW9cjGPoPe9/yWrpxUBGdlTD1FDSDr/RaLTP6EuyNWIoervKJok4i97lcFTB6ITQMGP7HQg6+Kx9j0fW9+ZROonsOrrgqbPDjUdIMTNpd/MXJS9f2PX6jKU8Sdb6LbiYP+mfNY1bFJFpKWSFd321GJcPx58fgpnJ4jIkoygEYntmc3c3yeTrLzE3Ytq2rVhexRBYdocF1oZ/KJCfLqXe6+VmW72k2sQcKGQmOXhvjkaNr6o58gVZOkTnDw+S0ILKAp4PAIOv0JUvJ8z4/1MGOHjxRcs/PdAs408RSBvr5YNDSNLRIKfTNtJFDfSx5/ucjE1GmQJRA3EJPm4+HI/iYqNP6wSwyOXRtiG9iLXAPK+A2yoOF4tF/+fvfuOjqM6Gzj8m9m+knbVe7Oae+/GuBeMbaoppiTYhBAgdJJAQs8XMEnooYcW08GAARfca1xwQ+62LNlWb1bdvjvz/bFyk1ayLMmN3OcczsGruTOzc6fs3Pfe92KccCOZ1yT4r19VQXU48Sl6tLEphMWlEHpRbwr/+S4lOacI1MsRRN59MykDrEhHD6HJgqnHAKJy11G2u95/bhuTifvTb4nPMiKpoHqcSJZEQq+agTl2HfaWpjTVWLHeMIO0iYlopKP760LVWTB27YupWy+CdLPY+2OgKPIv0YVQf05qN+7DN6QP+n49CPo0l/omHbkkDP16YNaAun871e2c301OSKR7qARKNduyAwVpCtiS42Nsby3desaiXZCLBziy+kf++kMyr0xN4+4/DmTjAxs4eGxfJaLHTuKh0SFQs58Xn/vp1IFHIGhAb8ZFSyh1Ocxb2yidt+qj/MAhNhv9QS/JHEa3TAsGXz0HdlRSc2xBhQNl3vaXA6TgZO588QZu7WpAUlU8ThdKVAITZlxLv6xs9jeKv7WGtXM8iTKg2Kmq7oAG/nZ8PyQ9XadN46XfZxKtAVXxYqv3oA0Jo/tFg+g2tBsjXvuYBz8vOZ5utz3bO3njHfIeoNqd2BRAVlFPXI+rjtIaFaK0JCWHIVNxclA5OIKUSBmUevbua+l56yZ7SxGeCRmkDkkn8f0SDnXoQ0gi9eqreOW2OP/zVlFwOVzYPDrCkxIZk5zIqAndeO0Pn/DeruM9zpylxWzZ5sVfCyZSekQTqfFQsr+IwhPnZvWWUuY5w4EkrULEEAdZk+yk9vChlSRK31L991kASSHxziOMnOBFlkB1yzhrQDYrhHZ1EtrNhaXWwOKFx2+IvnIdpTsk//umpGDt4sUoS9hzddSdOCrPp8XeOHgX5KbPU1X0zFJBBcUlQ4SH1OuriUk3UdXcc1OVqdmpp7Th94sh0U1oaOsPgxTuZOhzdXSKAlUBSQZTiosud3sIViNYsVTTcDxUgno4SBvkoFeVjvylZvYuNFJadvqpAnQDpzD/+f5EyuBa/TVjHtlOW6bm1YeZCZIA1YurLf0MBUEQBEEQBEEQmnFaIx+NFgtxsaaTe6LqjETHGk9eMCiYuCAAH4fNJ77lSYSNmsq3E0OJD5ZB8VCRe5iVC9fx/tcHKGouE9dZIkWlYdYA3kPUlzeEikK7ExpeQ21eAV61FHuZDTUrFF10J/TSapwqoFZT/tkfOdT5I1K7PkSvCavZsGCfPwAXfhXdb5iEgXJKPn6EgnJfu7d3wZSL70qwBqjIpqY2iogJ95E+ajyh0aFIzhLq9y+lYOHrHN5belIjY5vroeXaRZvU099g69pJdcEJjWLenyhYm0PSlCysl/6DLiV/ImfrPjw+DdqooSTf+DDRJhXX9hfJ3ek4aZ2G/n+j//QxGHwHKf7iUfauWIvN4UMyJBA28i/0um4Kkde9QuaBS9mTczQIrx4r39y++hu0ZQzRSWj4CW+7jksQEVe/RFpaMNStY/9bD3BgRwE+TQzh42fR59qriZShcetbW+vPz4B1ytv0ndATjVJKxbyn2LNoETU1LpBMGFPGkDj1PprG69paDv8I4+seIEJ/gNwvZmNToIXxDO3jOcSb93/Q8A8NIx/7Ay9O1LVU4gQaulw1itR963jooTWsPOhEF5vGLX+Zxm19zQy/aSDdFi1hR4eMHlfx7jVz43t6amKcvPpHJz3jvXTZbWL6WwZKrS6ef8TBwAwPfQ16ljScoqpHJnuDjoVbdPyUq6G04XNTmJdLL7dzT38vv7nBxcbnjOw5Majg0/Lua8G82/DPi39Vw6yBrW/4zLrYSXKBgT+/YWRNiYQu3MuNN9mYmakybIKLLptM7OrQYScauvROwCSp1O0v4tAp1q16qqlfvZPKdTup3VeM26EAEnJEJyKnX0vikDQSbhtD3Z8X0PwUxjK6oZeRmCFTv+QbSlbvw3HEjRQSTfDgYYQdq3cdwVddT3ymEeyHKXnrU4o3l+OTgwkaczVpNw8jVJYI3CtAi/myW0ibmIis1lL7/XcULNyBvcYLkh5dahciL59A8LF7kAazRY9eam3jp4rH4cR2NvI6dqALof58O7KptfUmPLIboZ3mUb+/0Y5IYVgHJCHhxfbTDlwqtKf+tPERJGgAbxWHivwPAX1kLN2jnOzdU41dqeNwoRultwlrQgRhci5lCqA6WPf6d3ze+yam9x3DY9fk8rtPy/EAcnQvHr6nK5HUs/SVH5hb3IrzRDIxfFIXwmWVqrXZ/Leu8QIu1r4xm7UN/9J0G8ecNy4iyZbDy/fPZU2zo4faWk7PwNuuYEYXA2r1Qd7567e8v7EGpzaEfldP4Zk7ezP0WHSlue8kIcsSkiRjDo+g5/CB3HlbV0JlsGVvZ2lhR1w/bf1+EDFyMi/enUmU5wiL35jPq9/nkm9TkY1W+k4dzxN3dmfIHVdz+863eOnYA6nt2/Pr2PeAkIw4kjSgukrYmXvCteI5zA8/VnDljVF0vfEy7i34nvfWlFPjlQiKS2XafeMYaVap2riCDza1vNO1+4vIVzJIT0umV8haDtW0uPhpU121bFuwl3lL9rJ+RxklNv99yRSTxGV3XM4DY1O445HhrJ+xrCGrjErJknncvqRhBbpMnvx2OpcH17Lwn//h5V1np1enNtpN6gQ7WeNdRIQ1nMtODWX/NbF7m3z8l266jX7jvMg+LbmvWdm0QofLB0gqhkQPSSMdhNafvG7bKguLj4541boY9mEV6WYNeW+Es2VfS3ulEntTDT0yVajRk/2ilZ1bNXi1CjGTaxh+i4P45q5br56fHw8/tp6kB8oYNaq116hK+KX1WHKDWPlUEPn5MppoN93vraZXT4WEaXYiVoRQ4QO8OnI+MWOc6CQu0UPKtBpSrqyjZouRfQvM5G7RnvGOuZIkgSShNRiIiI+me/cwDJKKt6KSgjORYkIQBEEQBEEQhP9ZpxF89LH6mb/T7xkAHSMevZ8XJ7j54p5XeW6bD7SJPPDxTG6y7uQPV85h6UnzRRwPQBoiwkk49rGOqIx0pt2VxviRq3nwT8vZXNvu79RGElpLBDKg+qpw21SkqBsZ8OQzRAU7qZl7Lf/9eifumkpUQsEShV7m+Mg1x3/Z9+47RPzpDsKu/Aeddl7DgfxoEn/9GDEWFce6x9ix7sS5Atu6vQunnCY0Bq0Eao1C2C1f0/miZCTVjc+tIIckE9pvJtY+lxI1+0a2LNvXEPtqZz00R5tFysQxaFFw/fQxk7pIiQAAIABJREFUpXUnvly7qZ57Jzuj36HboAGk3b2ETj4XPq+MxqBDqd5B6XdPsff7+Sc3SGv7kXbNZZikWso/vomty4+nbFVdhRxZdD/bQrswdHI6SeNHk5OzAC8KrqpyVEAOS8Gkg5rG+65PIzhKBiSk4Aj0EnjVdhwXyyQ6XZSErNZQ+tnv2be9zL8dbylHFt7LjvglDBgR1+R6aFv9NZQOu5KsSb3RYqfqm1+z6budx1OVqQ6cB+eR868V6IO9Jwee21gOJHS9/kDn/uG41j1Mbo6T83nCOb0rh78+uoRlDZlxfSW5vP38OkZ8MIau8an0j5XYUdAxDUA7s3VUKKCW6thY6qRnAuz+WUexD9QqHRuLHQxKUUiJAAr9ZQ4uD+L3ATbvqNIy5zMTXTJtTI7xMCrByJ7DHbKbABg8Wp5718TKhueA74iW978wcNHDTrpEeOkbDrvKO257yCFkpZmRUck/eOQUc5ApOOe/z94mx0VFqcyl7N/fYe42g8j4noSm/Igtt7nWQxlTVhS1H/2L/QtPCNxX1eA6vJ8jmoZG2+DuxIyKRsJFzWezKdjUMELRV49t8WccSnqIzLFhgRtRw/qRMDkJDW7q5/ybnG+Ljl+fqhtPXjbFL+9FG9xwdenS+fOX05kc1OIBOIGPn154hd99HXietPPTBVJ/9n1UbXcQNjSc0AEJFO5vlAo8vBth6VrwHaRqU8MNpB31Zw4LwiiB6rVTVQdyfH9efGcywyxe9nzwAb9+t4TqKjsqJuTQIEIlKDt65OoP8tqs9Qx8+SL63noZN//0Ae/lBnPZQxMYGQalixfw7KLWnSNSRFcuG2JEVmpZ/mMuttZ+lTNECuvKDZeEoVGdrHxtDm9uaBjN6qljy+ff8LdOd/DSZAtSC7dpyyXXs/gvWSd3glEVqnZs4MmnN3L4XF48ukR+dXsPYnDy31c+4pG5VceetYqzhs1ffstfIqN5/8ZIrpiWyTs7dndYnXTYe4AummnXZRIkqVQs38zy6hP/6GP7+18xK/46/jA6iV/9353c5PXi9EoYDRo8R4pZ8Z+F/Gv2bg6f4vejr6Ccw17I0EXTOUXm++yOrDiVvM8/47YA9yVH6WE+//uPdOt3PZcld2Vsxgp27TnHd1xJxdLXP8oxbYAXgwZQJZwHjOQuMrF/lYHaRieKMdNDiAaUnWa2LdM1dJjwl3Pl68n5qAO7iVmddB3tQ0Km4P1Qft7S8P7pkSmda2V9ciWjx/lavG7bSuM2sO65EA433Oq9ZXqy3zST+Eo94bFuYmKgoghQZUq/s1D6fQhBXZykT3SQMcyNdaCdgQPs9C3Vc3CRmb2LDRyp6fjfsfqUDKYODOWkAaCqiquyjE0by6kXsUdBEARBEARBEDpQS0nbmqeJpm93A5KjkK0NvfLl6CR6RUt49h1mR4CULbaCHL544yt+8+tXGX/J3xg07u9M/e0XvLKkHDsS1p4XM+v+roSds3iBhKxvSCnrceJTQUoeQliwDJgJ6dwPvQQ+t//LSTpTk4Pn3f8i2T9sRzH0JXPmPcSNf5YuvcNQy79kx8fzj79wt2t7F045jdGMBEgJN5AxNJy6pXez5ved+fG3WSy6/1p2bSlAlWOJvuEfpMYfzV/W/npoyoBl0izS0wxQu5g9Xy+lSRYq914Ov/0rfl68FbcCksaI1qD3778hGF2QFa3u5JNTzricuGgtat1C8tYGmCsSFzVbluNQZHSZQ7BoAFQ8ORup94FkvIj4PpGNysgYB08n+uiIYZ0RWWrfcdFkjiTcJKE6V1G4uezkzam1VKyZj6NJe1Zb689f1tDnMiJMEmrtPA4s2hl4jiTVhrvO1QHlAMMAMq6fhsm1lpxvFnN+D8hSqduQzYpGU3IqBflkV6kgW0mMbdutuemmJI7US/5zU5WoqgeQOFJ3dFSCRI0dkFRCTwxctHT8XBr2lQGyQmJExx7out16VjVqeFbKteysA2SV+NNIbdsqspX4GBlUhYqK+lMHSVo8LsXYixWQQjFEtdyvRy1eR+HiQCOGQfX590LO6kqIGVTXPirXVzdaykXd2u3NjI6Q0PXrQ4gR1NpsShYWBf5eqgtv3YU4OXM7XBD115B6VZWPpVc9TvKnY9WCmpvd7pSrIGE0av3pEd1enCpoM1LobZFA0pHeN5FwGVwu/3kiGXQYGv1Gs29fwRMfFeEyJHLbwyMYf/UU7htiRi3exjMv7aLFTMYn7EfC2N4MMIJSvIv5P5/789LYM51+ZlAdB5i3ur5RClgn6+fvpuR040Cqj5KNK3n4L4tZdZbm4GuOrntPJiTIKNW7+eTHqgDPWi+7V+dQrEiE9Eihc9tniD+mY98DtHS+fgozumhRq/byyr/3Udv4kLrK+Pr/PubxOYVU+0DWajEbNcgSaI0GgkNMmFuTsMBdT1mNClIw8TGtzXBwGlo6FZyl7DmsgGwlKa4NeX47iGz1kHxVLePfKuPyJ2rpOtiL3qmlaEEIKx+IYs79oWxe0DTwCBz7flKwgqGDfto0R9vNRYwJcOjJXd9oY6pM8VID9jMUv3VvNZLfKIu5WqSnvBqQfQRHNapoVcK220T2S+F8c0skS98I4nCujBzjJuNX1Ux+r4JJD9aT3s1HczWvVJeyYd1+Vv93P2v31J6iA1UzVAV7aRHr1xVQJOZ6FARBEARBEAShg7WpOUGOTqJ3rIx35yGyG0Y4BnVLIlOrkL89n4omL3YKu7/8nt0nfealYNdu3n/qILtrb+XVKyOIGHURl7+/hw8On6OXn0Ypy5TdH5O3byipcWUULV6IS4WWmx2c1PzwIPt7fEPnzHvo2wnw5XHo/b9SVhfgO7V1exdYOckUDNsfYfPsbzn6Xus7sp68t/5I0DOzSYnoTfLFvcn7fEvDfCjtrYeTdgJ97yfoe0V/NN488t99mMLKpi0Pctw0et77NxLCDlHw0XQObNyM3aHHmDqeTtc/TurY5xiSmcpPz8ziiEMFZIypPfwNKbqhZD34JemBNq+PRy8Bllh/D3EfqEVzOLTjdnr2jiD25rfooj7JwZ9345ZisQ66h+43jEK1VaMGN5pspk3HRYMpPg0NoJbupnHMDkAp2EGdT23UyE3b6w8tIZ26IqOiHFjLkVbPH9PWcjosE58gJV6lbu6z5Jef72OxVIoOVtJ4JlxUF3X1KkTqMBkDlWsLCZfnhP/3ASrHP1PB1ZDGzdDoaWCK8XDlCDcjOvvoFK4QrGs8llTFZOD4vE4doKhYpkm1q5J/jqdQFXNH59GVjFiCJcCHzdaaZjsJOa4rURMHEdY9CWNkCBqd3OjSVNEYtUBz+QNVPDv2Ym9xtI2MPiEajQSUFOII0CCoFhTh8OG/rzQqa+oUjySBemB/wGu+Cc8+Hp34FI+2YtEL24VQfyekXo3tTmjyQmx5Dfc0yYJ1YIo/5erGncc7NLW5/qQmzxXPls18kp3KDSn1LPhyD2UKtDxtq5fds+fy9sBbubvHCJ7rDPgq+eK5RaxubXpKOYpJExPRSQp5S7PJPmXqzjNNIjYlApMEvoJScgJMoubNLSbHC/Et/IquXfApgxcAsoaQqGj6jRnCXbeM4o2Psvjoyc94eUMrOjycERIxXeKIkAFDKr/75y3MCLSYwUIYIIVZiNJC2yIbR3Xse0D40InMmpmE2XuEb579gXmlTZfXJ/fm8WcnMynqCD+8/B/eW5pPoV1LVOcsbrxrItOvmsq/e4bz+98vYUtLwzpVFza7CpJESIgBGVeH15s5OYtp0/oyun88abHBBOvlho5nJyxj1iLh6bDnbatpXQz+VxUZVo4FzA4sMpGzVo+tFc8X5y491V434ck2Rj6msnuxgeKdOmqrpQ7/LkGJPn/GjmId1U1+ZIFySEe1D4LOQBy3/rA2QBBfwm0DwlV0hubLqnZ/ILdoQTDGNBdpExxkjnARObKeyBE2Ul+PYumPTSO3vv0/8eiffjqt/XQfymHOIUCS0JlMRCXG0KNrPCMmhLJvYw7bS87BOSYIgiAIgiAIwi9Wm4KP5u7JZGkVCrYX4G/n19C1dwJG1UF2dkXg0UrNUR1snL2ezVMmM1gXw8DeZj48bDsHLz4qisuBCkg6g7+XqX09+/42gOPTi2jR6P1vj6rHEbjxwbuH3A/eJO7pB7FqFByrn2DvzkA5pNq6vQuonNvZUI82KlbPpUn7q3M9JT9XkDwmBlNGX4zSFhxqB9UDABLa9HsZcMeNBGsqKZs9k53bKpoupu1Jxp3PkRDnpuKDmWxfXtCw304cOXPY9WIt2r+9Q1LybXQb/zVrv9uLiozeGukfGWhKJrRLcrN74adDPtrYoRZR8MFDhP7hFZLiB5F+5/wTApcqvtLP2b2hE90uGwzOenxqw/Fs03GR0AVZkQDFVtV0xCeAqwqPGzCd+GFb6w/AiN4SgoSKp6q0Yf9bo23lpJgb6XppL+TKT9mzcMcFkAZSxeEI1Lquovqj78gdODpAPZbiDBSl0WdH/1/ipG1G9bLz0q/ddNKD6pMoKdOQZ5OO3dsj470kmUGjaSjcQVzuwOs6NndUh4+Ml9BqABR8pzxxJHQDribrriGY9KB6HbhLCnHWexqOpwZdcjLGIJC0LbVsKrjLqk7xjJPQhvgvSLXehjfQwm4b3ibXLYAOndXYcB3VoohWxAYXSv1xQurVKEIHxFGUV+jfXmg3wjJ1/pSrm48EKHi6VJwOf0OzpNdiANT6Q7x+1wu8fmwZGUNDzwTV5WmUwaGBp4zZ/1zL+HdH01WrUjJ/Ia9ucp7iGB2n69KLS9NlJG8JC5eUnN5vyDNCIsTqzx7grbU3HVEHqE47NS5a9yta8VFXWszKT7/h54NeZj/Xj5sen8KBGZ/z3TkZASkRFh6EBpCDwujRJ+wUi8toO2DkY7NO8z0gqNtIXniyP6kaG2te+pTn/htgWV0ctz49lUuTvaz/56c8Nbem4beBl+Id2Tz/JychH17PZRlDeGhaNjd9WNbCbwcFX8NJKWs6euieRPSIybzxeH/SjKB6nBTnl5Bb62m4DjREpSeQHAKaFu9LZ5AEckPPNqVcx+HVRg5ubF3gEUA9HMR/3/UyaoaT4H42BvazgQqeSh2V2w0c+N5MXo7c6vtFS/QhDW8gdVLgDBguGZcLMHfAxk4i4XU18wPl6H606tSRcOYZOLRaRWf10W2YF60EGu0ZuE+oKh67naJ9eVTWKoy9KIqsgSnULsnhoOPUxQVBEARBEARBEFqj1c0J9793N2OC/C9W2mALZkkmbso1fDvG3/hsjrAgS17G/PFOBnoB7yFevXMui1rR812pKmFvmcrgRJnomBBkbOeg8UnFW1eJAmg04eiDJahu/LInobdG+Ef61JY3kzLNhHXwRII1EiBj7HkZEZaVlDZpvWrr9i6gcvXV/nJKMbbSAF2QUXBUFKESA5YYDDI4fB1VDyDH30Tfe+8j1Gij6tvfsHVZTsDGJTlrOklJevCspHBjYdMGENsKCreUkzg2lpDeozB/vxebyrFIiO/nB1j64peBA3vNUI8sZPvTkykf9xsS+w4kJDwE7AXUZn9J7vw5qJMWI6HiqylpaEBpz3FpS6NFW+uvDZtqDymM2KvvI8JYQ9nHL1FhF5GWtjrabCaZPdw13U0nvUTeehNPfqNn/4kjfySFa+6p5f6M83lWzdby4nCqYNBi0J/i2wT3JPHWwZh0Hhwr55D3yRbs9SfcUaQwoh99mOQup9qmiuJuxdCus3pwNQSHGTG0Orqr4rHZqQ0YiTpPXVD115B6dUgfjP17YPq6ELtPQtenB8E6UPc3Trna9vqzV9twqqDXmgm3AJVNv0homD8Ft6/a1vSxA4COLmO6kKbxLx89qAcDw3JYURVo2ca09J3Ug2QNuLdns/DgeXJOqWdmP6o3bOD7A324IyODq8aE8sNnVeemw0zDqeJeN5cJf9xGzTk+7K19D9CnDuDZWSPpZXKT/cFnPPxNRcAxyvre/bgyTQPuA8xfXtPkGKu1B5i3pp4pV4aQOTSDhNll5DdXEZIOg8E/xt/p7NhRYZKlC/f9oR9pBi8H5v3AX17bzt7aE3ZEtjL9lbv5Y59z+Lz16tj9ZjDSpQ6SO7vperubrrdoKF9vImeRiYM7NIE7WBwjUTUvlO/We0ga7iSuu4fILA/WCA+xoz3EDncQ8/cI1m3ogMDueXL7aAtNmIfE0Q4yxjuJi1f82QvqtOQvM7O7I45NC1ylZRysiaS71UJakoFD+1wX8qEUBEEQBEEQBOE80urgY0RCOIlBJ39mDAsl8aQO01qsMWFYATxHCGr1u5J0bESLeg6Haahludh9YJVTCIrSQHWjHFNSDOboICQU3GV5AXvVajs/RK9LeyC7dlNZEEN4+tX0uHkFNa9/h7PxdB9t3N4FU678EE7ldFKktm97Jy0SeTm9HniaKKuHusV3sGnu5mYaR2QMiVn+1KiOclwBG9MV3NXlqMQihcVjkMHmU3DXVKCSihQaj1HitIKPADj2U/L9nyj5vvHOx5KSGg/4qM/ff6zRrG3HRcVdX+Mf2RIUhk6i6cgVQzi6AOks21p/4MRdW49KOLqwGDQSrRx91YZyUhimSCuSpCXmNxu59DfNLGe6mgHvXg3UUPBiP37e1lxKRcGY6WFYMCiVep7/Qs/+xnEWSSWy5TyMFw6lnvIjKoTKhIWZkKhrtsFN7tITa4iEWrGBwx9swt74FJKD0Vk6KgmtirfOP/RACg5CG+j+ogtCGzANrQdPjQuVILRhFmSJU48i1qXz8GfTmRx0iuWO8fHTC6/wu69rL4CRxn4XTv35HUu9Gt+d0PjF2AuCsA7s1DTlKrSr/ryFlRT6wKIJIzlehsZpyeVgkhP0yKhUFVZSFaDCg/qM5skb4tC7StmcG0Lfbr348/057HpyB2WnOkGC0rlslAVZ9bJt8S4Kz4sTSqW2xokCyBYzVokmc1dKRjPWFtIoNr/qesqOqCDJpKRGoOFcBB9Vqipt+AhHjrAQJXHOg4+teQ/QxPXgyX9MYniYjwNzvuT+9wv8HcECrCuiUxShMqi2eioDjuJSqKyoRyEEOdJClEwLwUczEVYJVA+Vla0f0dsaxj5dGR4qoZRsYdYLP7O38WhCKYiosI5Mbt4GqsyRFcGsWRGMMc1JxqV2Mke4iRpZT9SIegaU6Dm4xEzOUgMVR5oPkfoqdRycq+PgXEBSCermoM/v6khL8ZH+Kxv7NoVQ2c4ObK46GfAhhajoJZpm7DAoGNpy3Z4pGoXQfk4yxttJG+D1p79XJRz7jeQsMLN/TetHmLaL6vF3xAqVCA4xIiGCj4IgCIIgCIIgdIxWhwcfnfgUfYc/Rb8r5rHBA95dS7hihP+zYX/eTo2qUvDZuwwc7v+s7+iP+KZVvd5BDo+lS7QEqkJJ8blrzFRLt1Fdp4AcT1hWctNexuZ+hCdpASfVObua7mfQSLrcOpNgrZ2quXez8V9PUVoLxoFP0+PixCbra+v2LphyJT9TY1dAjiMoJtAkdjKmyHj/+mpKcB1NCdnOepCs4+j+4PPER6nY1z7Apk9WBk6/dKxAwxaMERgCNgZL6Czh/v3wuhu2p+DM24lLASl+OBHhHdcrWYqeSnymHkk5ROXOg8caANp2XHw4iw7gA6SYroQEaHSRE7sTomnaYNTW+gMvdXm7UJCQ0y8mvNXzF7a1nNCRQqwKBsBXruFQgDm+5DAvvSLO+m6dGb4q8gp8qMjEJ1hpPqmddCyQp5aU4gw08C28E8HRHXUfUHAXlvmDhjEJmIxNr08pMR5TwB1WcOQVoaogZWQRcqFcR7ogUrPi6dYlnq6pIXRs+/CFVH8NGlKvqppYrP2jkSxdCO2iB19BB6VcbdjTwkJ2VqsgW+nTK6zJj0IpKIl+GRpQvezcUdJk2j8pJJ17Hx5MmtbNz+9/zZ2P/sjyIxA1ahJ/mRR6yh+ZoRf1YWSohOrMY8GKpiPUzg2VkkMV2FXQJMaQHiBFozYtjoy2pCKVrSTE+M8H76lzPZ8hKqV7S6hUQJOaxoCYcz+G/VTvAXJ4Fg//83IuiVUpXPQtd79ygCMt/K6Tjs5ZbTYTFvBmImENM/vPT6+vxc5jcngY8UbAd4S8Do2OS1giQzBK4C0oIy9Anyg5Opk+8ae6ihR/Ry1JajJPZEdz5hrZ8a9wvp0RybK3zRQWyGhj3WTeXM2kd8uZ+mgtXQd7A85lexJVwrbTzLpXzNT6QIr1EtZCKlRVAST1lKnX7flaPCpIcR5CAzz75BQPoecoe+2JdEeP2b/LmfpYLV2HeDF4NZQuCWH1g1F8/VAo25aepcAjgKQnyOw/uOoZGvUtCIIgCIIgCML/ptNuOjF1S/HP6ZN9uKGHukzn3kmEqE7WbCtt0jAFIBn1mNxu7IHe2SUzQ28ZQj8tqK4C1m7t2F7Fp8W7iZJtpSSPisM6/Hqsi5+h+lhjgAbz0BuIMkmoznWUbG/U+CdFEnPDLJJjNHj3Ps/2hXtRfPvZ+dE4Qu+YSvT1fydl3684WOJt//YulHKejZTtrCVhsJXIiy/DtPGTk3shG4cQ2zvSP5Jj/+bjI0PbUw/Bw+j8wL9Ijtfg2vIIP733PY4W24oUXMW5eNRBGHRDiOsXQ9Ga0pPPQeMg4nrH+udQy9+BrWF9Ss5cSspvolPMQDpdOZaify8OHOSUwzCH+7BXBJr7sxFtGkk33kmYDny5X1JwsP3ni2//CiodVxJrHEFC/2iK15QdX6dkIXL4pZhkaNLa19b6Q8W17TsqHcOJtlxK+oR/UzF3R4AUakZ0JgWPw932ckouuU93IjfgwZTQj/wPY2aOQnbMYfPv76M00A1KOInd7p/bUR/hI17m5JEIkkr/sS56nMn5v84qN3v2VOAbEUdUp2gsUkEzDdoqPpsDVJCiIjFowHPiuSSZsEwZRnAHNmoqe/dQ5+hPmCmTiMFWjiyvPuGveoKH9UAf6LpFxbNlK3XTM7GG9CL2klXUflMYIKijQ2NW8dm94NnHoxOf4tGO2/3TJkf25PG3JtJXB77cVdw4Yzl7OyyN84VUf0cdT71qHtCD4OoUQvSg7muccpX21Z8nn2X/reOqyyx0m9SX7l8tYfuxBm+JhPH9GGIG1XGQZRvsJz8bpSBG3jOVqxNk7D+v4K+fl+H2lvPcy1n0eqI7w38/lWuzP+az5oaUyRbGTUonSIL6Ddksb2WHtbPBlZ3DZnsvRpvSmXxxMEsW1B//7pKRIZd2JTZA/enCrVjra6gIOLheImL4EKYky6B6ydlXfs7mt/Ts2MGSogHclJDMzTOy+PHZvVQF/P1iIjFGpbC4fb/N2/MeIFlTufsfV3N1skz5mh/4/aydlLT4u06l4lAltUoyEfpUJlwcwsIFdSdXlSmZ8UMtyIDtQDGHWlifNjWGVA0oVcXsKurINxQVW50Tnwr6uAgStVB5YscIycjAGwbS61TPW9VFXT1gNRMRpqGFm0qHUW1aCn+wUDgvhOAeTjIvtZMxyEPoIDsDBjlIfDOSJfM1/qwbGlCbO9G1Df3/FOnYvJpNNybjtgMWFaO15Xmmvbv1lDocJJncpA1ROLTshMCtpBA31oW5xfvuWaBzMejFKtKC8M99WWggd4GZfcsMVNef3qo0WYP5v99mYpHAu2MNf3z/IIHilbJRj97jxtnMMTbGx5AS4g/+11Q7xKhHQRAEQRAEQRA6zGl285fp3CeRYNXJz9saesDLYfTtZUHyFrF5V+B5kHRDpvLthzfw8M19GNEzmsToYCKiwug8oDd3PDOTf04NR4PC4R9W8UPJuXzlcVC56D2qXSpy/Ez6zLwJq0UHcgjBAx+l77ShaPFiX/UmxSdNfCRjHPw0PS5KBMc69r3/PvU+AAXnxsfZub4YgobT+dbbCNF2xPYukHJqDWWLPqXeB7oej9H/5iuxhGgBGU3kMDrd/neSIjSors0cXrXjhJfdNm7P2IeMe98mLdWE98Dr/PzRIjymcPQhjf8LQ6s93nih7PmCwlIvqmQl+oa36Tq0J3otgBZt7Ggy7nyR5GgNqlJI0fKlx3vIezdzYM58nIoG8/BXGXzbDCJjQhqaRWS04T2JHvsYA/62kgGjO53UXCJ1+g29fnUHCb0GYomJxxiRTmjfGfR4eA7de0eCN4fDn39I/UkNJG08LnWLOLj2MIpkJfr6V8nsmYhGArTRhE98iR7DYwmY0qvN9Qdq1TfsW5iNFxOhV3zIgGumYrUeHVaqR584jrTffkXvi6NPOi5tLSd0HHuull1ukKPc3HuZh/iGw68x+xhzuY2nhqu4zlZv/DNOJX9zHkUK6Lok0b2lNJj792PzgBQzhKTrujXMAQZScBxh188kbYwFpSPnQKzfSenKclSMWK6/kYTeDaPSJCOmEdNIGR3afANq1RYK5+fjQ0fQVb8h47o+mK1HHz5atEndiLnjTjpdbOmgnZUwBJsItZoJtZoJC9bhv8XKGELMxz63BmtP90dHh7mg6u/oPu/IptamIqUMIGlSBjJebD/tbJo6u108bPxiA9udoEkZzP893J/uYRok2UCn0RN49vZUglDIn7eWRSfNBykRPXYSf55oBftBXvv7BnK9ACrlyxbw3JJaCEnj948MJbOZ3N1yfA+m9tEhKXZWL9p/HqT+PE6t2cunC6vwSUYuvutqbh9sxSABumD6Xnclf5lkQQqwv8HDpvDtF7/hubuGMGlwAmlxIUSEW0junM4Vv72O9x7rRawMSsVOPlvRKCB2Nq8jTz4fvrOLclUiftJVvP3oIAYnGhrWK2GOjmPEVRN46T938/Ll4e3eXlvfAyRzArc+cx2/6qzDtmstj7+0lxrz8WNx/D8TQSecZ+5t25hfqKDKRi6+51oeHB9HuA5AJjgpg1ufupJp8RKqUs2CuftpMi37MTJpvRKwymDblsuOVkz3ejrsO/LY7gI5oR8P3Z7KlZXNAAAgAElEQVRFYsNoPY0lmvF3TGfW5cE4G8/Z0Jivkr15HlTJwEWX9aHT2RztrkrUbzex9bkIvr4tgjUfmyir4KQRiqHTjjD5kTo6D/IQdMLoRn2yk/632gmRwbtHT1nA9LiAouHIIQkkhYRLHC2nO641sme5BhWFxBnV9O7n8//e1SlEX17DkDG+gNftWeeTqVoXxPrHo/jqzjA2fnf6gUcA2RrFgEHpDBuczuCskGazN+hiU7jkkq4M6RVDckwQliAdRqOe4DALnXpkMHpgOGYJVMcRcgo6dl5TQRAEQRAEQRD+t53e+BU5nD49LUieXDY1BBolSzL90mR8Bw/xc3VzBSUsqZlcd3sm1wX6s+rl8LL5PPhGHrbT2qGOpxa+S/angxj8q3EEDX2W4UP/D0WRkGQZCQVPziv8/PWGk3qrS5HX0OOmyRipofzLhzlUfMKQCrWCko8fpTDrbRKy7qfXlLWs/zb7WPm2bO9CKufLeZmfv+7LoGmDsY59heFjX0BxK8h6PRKgevMpmf0HDpX62r09KWkqiRlWJECXfg+DX7inmVp2U/HBEDYsL2/450/sf+vvWO7/IxGWfnT63TxSf+vG59Wg0Wv9+6lUcOSbu9mz88TWAQXXxj+yyWqk//XjsFz0NIMvegKfow6fFITOqGsIkHmp39LoVV6fRMTomSSNbbp3qucQxf/5LXv2NG2JaFs92Kj86n5y0/9DeqdhZD20lnRnHYomGK1Oxbn5S8o7TyM6QMqrttYfuKj5/ja2Bb9L73E9iZzyOhdN9uKz16HqQtDqtUh4qDzYeIttLXcWaWKY/sQljA0/3rpmTdYBMvETp/J2b/exhhtf3iYef3EHpedHLsFWUY7oeWOpm5cn+eg2xsaXIySqnWA2qxhkibw1JpbF2Lk1s1FB2cc1tzgYdcJ8kNYY/5GIHWjn1XTp+HEp0fN/X+gpOw9auLx797CyaCg3x3diWDcNq7c2MzSg/CcKfhhA1pVJBF06kx4TnHjtKppgE7LkwbFsLlXxVxLftaP2zE39V59RnHEbcZmdiPvDI0TX1+GTzOiCNLhWr6W673DCggJ1HfBin/sBeSEz6TQ+ActlN9F1qoJid6LqjGh0MpLkoy63gypAjuLXr97OHZmNQxQR3PTSg9x0dK/2r+CGW1eyP9D1YDYcmyfaVVFLdUefGxdU/TVoSL0aNjQScyKo3jyqOzDl6lG+gxt48tUU3n4gi+TxU/ho3GR8CsgaCQmVuu2reOzfhzgxNiDH9eEv93UjCifr3/qeLw6fUKmqjWWvzGde7+uY0nMkT96cx8z3ihqNyJHJmNCL7jpQKvYwb+P51qPBzaZ3vuX9bjdya9dUbv/nvcxwuPBoDZh1KmWrt/Hf3r25KMD8t7rIBCZMT2DC9MBr9lbm8ebjC1lV0+gPHXEdtZpKxbLvuDdcxwt3ZZExcRJvTrgEt92JQ9ITYtI0pPBUOLi6Pds5qm3vAZr07lze04gMBHe/mDfnXNzM+n1s+MdL3DG3YYSq6zBvPb2MrOfGMCg8kRue+C3TH/Xi9MgYDLI/BbNiY/O7X/PyTy2ce3IYQwZGolGdrF+Vi72N3745SvFWXv2kF2/MSKDH9dOZe7WL6nqVIIsRg+wld+4CFqdcyu19W1iJ6mD1t9spGtafhGGX8sXcizhcZPenwvcW8cEjP7Co428bTfiO6Mj73EreVyEYzcef98gKYUNtDBpqY5Aq4amT8MkqhiB/GlW1ysCWd0zNzN8JqDKFC03UD7QTPKCWqR/aqC2V8SmAV8fOv1k4eOz9U6JktpUdWVX0zHTT64lyejhlfFoFnRbsG0wUdXMQH9xoGxovXR6sJTn0+EeGRP8OBY2qZUK3499HzTez9k0j9rY+o7w6tvw+Ckf12e1CpzEFkZQVRFJWoL+qKI5adm3Ip0hMiS4IgiAIgiAIQgc6reCjZEn0BxrzjgcaDd1T6KFTqcg+THOZtbzZ65n1vpOL+yWSlWQlwqLHICvYa2rI3ZnHsnkb+GptRfMvnmeVh/rlt7O29BYyJ19HdHoaBoMHd8kOKta9w/4FC0+eg0OTRsrMx4gOAff2WexYnte0IbFuMbs//ILw+67HOvV5MnddwZ59trZtr637ec7K2aj54SbWHPo16ROvIjotA4MJvNU51O1bTMGCtyjIrQzQ+NrW7bWNN/cNNj66gcQJtxDfayCWmBi0Wg/eqgPU7ltO0ZJ/k7+vtOl+qvXULPoNq3dNImX8NGK69iEo3IrGW4WjoBBb/iYqtv5A0dbsk0cGFs5h3/dBJPQaSHB0HAaThLfqADW7FpC/8D2KC+qa2dM2HhfHT+yddTl1Ux8gdfAwQsKMqFVbKV79OnsXuUn/+7RmttfW+gN8xZR+dAWrNl1HpzGXEZXVBVNIENgKqM3dyZGfPiZvVUHTsm0td7ZIRpK7p9A/wDxZptg4+sUe/7dXv58LZcq94yR2LgjmdxVObh3poV+cgsUoUV6oY+UaIx+slxh7V6BiKompXvqGNf2TKdxHn/Dj//ZqdRglWoi6nEXeQuYtLmf6LVFcPDKRF7ceInDbmxvb12+xt3QccRN7E5JoRWty4T60k+qlSyleVUPYn67s2H1zHqJo1qs4L7+EmKHpmMKD0FQVU/XjYgrmK8T3HQ54UQNNWOarofrDV9m5cRDR4/pgzYpFb9Ej2Y7gOFBE3YZ1lK48f/JchndPJkUGlBrmf7r9DATsL7D686+A2o178Q3pi1YC9cD2pilXO4SPg3O/4OaCgdx2Y19GdI8gwqhQlV/M+kXreOfTPRx0nrC4JoJr/zSB4aFQs2EJf/v2SNMOS9V7ef75rfR7th9db76c3216l5ezT7iydAlMmRCNBpWiFdlscnLeUesP8/q9/+bAzaO4YWwnMqK0eMsL+HH+Gl770seMT3s3KVOzYgF32DMYNiiNvlkRxEYGE2HRoboclB0uZsva7XzxzQ52nw/DPFU3u7/8jGs3d+Xaab0Z1S+B1CgjRq+Dorwa8g/ks37NThauKWp3ethz8R5g272Wu245xNRrBjFpaDKdE4MJ1vqor6hgf3YO8+es57vsuoDTRRwlx3dmTKaMUrWXeevPxLQQHra/P5uZhSO4/ZpuDOhkwRrkpixnL8u+Xc0782uZ+MKp11K3YSF3PFrHHdf1YGBmGKkZVn/w2OMiXHuWH7Y+GecJP2FrF1tZ43CS0MtNRCcfwaEKWp+Ms0BH2U9Gds81U36KR5F7SwhLZsn0vsJJbCcfllSff3SlV8LY+E3WrmfboxHUXFNPl+FuQiNUlEodB5cGs/V76PFmoCGWCpbObmKimv5FG+0hOvr4v1W9gXYdUlXG0Wxn3TPDXXiYVV4rMTEWokINmEw6jHoZfD4cdXbKiys5kFtFVccOqxcEQRAEQRAEQUDKTIoVbxqCIAjC/yw5dgBvfDSZAfVbuWf6d6xtLv3b+SR4ABn/up5QaT+H7n2b8g4fKng26Rn75P38Y5wR17aFXHvPhmY7M/1i/KLqTxB+iWSyZv6WT2ZGkf/xe1z7RiEdnHVVEARBEARBEARBEH7RztX0S4IgCIJwXlBKsnl/YQ1EdOO6MSEXwHyiEpouWQRpQS0+iK3uAg9caePo38OApNQyf/bWX37g8ZdWf4LwS2TqxDVTopFtB/hwTpEIPAqCIAiCIAiCIAjCaRLBR0EQBOF/nJuNH61mvV3P0OsG0k13rvengaUbcTdeTGhaQwo9ACQ0KYNJubEPWtzUL9+Mo705Ec8xOTmFvpESzh3r+fCnX9CEU/8j9ScIvzwS8ZcMY1KUwoE5K5h/PkxQLAiCIAiCIAiCIAgXGJF2VRAEQRDQkDpiCBPTfexYuIG1xefBozHiIjq/cCUhWlDs1bgrHKgmK4ZIMzI+XD/NYf9rG3G2NGmZcO6I+hOEC5NkovfkgQyJqGXtnG3sqD/XOyQIgiAIgiAIgiAIFx4RfBQEQRCE85E+hrBJQwnrnkZQciS6IC04bbjz86hevZLSVYfwiFFz5y9Rf4IgCIIgCIIgCIIgCML/KBF8FARBEARBEARBEARBEARBEARBEAShQ4g5HwVBEARBEARBEARBEARBEARBEARB6BAi+CgIgiAIgiAIgiAIgiAIgiAIgiAIQocQwUdBEARBEARBEARBEARBEARBEARBEDqECD4KgiAIgiAIgiAIgiAIgiAIgiAIgtAhOib4qInk5jf+zOYlM7k5SeqQVbaKLp3Hvnucravu4YGeJ3wVKYirX3iUrWse5e2rLKf/JSUz4598iM0r7+aPffQducenprNy0a+v5N2PH2TN8sfZsvoJtq55lA+vDxORYkEQBEEQBEEQBEEQBEEQBEEQBOG8pu2IlUSMHs2M7lrKfljJ1/lqR6zy3FLtLJu9kb0jR3PVHQP58s615PnOxob1DLjzZl6aFoEWBUdtPaUOBRUf5XblbOxAs7RhcYyc0JOxQ1PpmR5BVIgGxW6jMPcwq3/cyCcL8qnwntNdFARBEARBEARBEARBEARBEARBEM6x9gcfdXFcd3MXQn0lvPFVHrYO2KnzgS93C59uHMZTQ4cwc+hmHl/j5IyHVYMymHZpBFq1lgVPv8cTS2rwnOlttoIU2ot/fHYlo4Ia/cFiIaNPDzJ6d+fyiSv5w59XsqX2nOyiIAiCIAiCIAiCIAiCIAiCIAiCcB5odybP4CGDuaqTjDt7K98fPLej8zqUWs+y7/dQRTDjru1J7FnIeSrHRtHJAKrzMEtWnR+BRwC0esx6hZq8fXz2+jfcddtrXHrFC0y5ZTZ//SqfKlUivM9IZt3XlbCzmHVXEARBEARBEARBEARBEARBEARBOL+0b+SjFMSYqV0JlzysW7yb0l9Q7BHAtmkHK6t6cUWvfkxJ3cQ7uWd27KNk0KGXQPV4cZ9P2WudxXz+xJtsXFNO/Yl1XFHH1y8Xks9tvDEtgshRAxn/5h6+KDufdl4QBEEQBEEQBEEQBEEQBEEQBEE4W9oVfJTCOzOxnx68B1m50XbqtKTGSMbfPJqbx3ciM0qPp7KUDfNX8PynCrd9fiNXhVYz+65/8cL2k6OYkjmKCTeN4saxqWRE6XBXlLJ+4Vpe/6I1YwMlwnoO4vYZ/RndPZwQ1UH+rn18858VfL6tnhancnQeZuUmB5dPjGbC6Bjeyy1pefnTJZm54h8P8MQQzcmfW/vw6vI+J3zgI/tfrzHjsypOOjJyCNe+eC+P9IcN/3iJO+fJDJw2iplTs+iRYELrsnF4dw7ffbiUj7a2on6aodYXsmxVc390sWXRXgqvGkayNorMFBnKzsoEmYIgCIIgCIIgCIIgCIIgCIIgCMJ5pl3Bx5B+mfQ2gHLgIFsrTxHaMiVw2ws38bueRmQVfC4XvrA4xs64nq4Jm9nXTFpTKTiZO1+8gVu7GpBUFY/ThRKVwIQZ19IvK5v9msDljjL3GsMbd/Yiw6DgtHvAHELGoP481D+DXv/3AX9ZXN1CQNFN9pYiPBMySB2STuL7JRzqyNGdqo/yA4fYbPR/CckcRrdMCwZfPQd2VFJzbEGFA2XeltelCWPqU9N4bIQFzdHUp9oQMgb05qo9m/hkq61jA6cnfg27E5sCyCrqL2z0qyAIgiAIgiAIgiAIgiAIgiAIgtB67Qg+aujSOwGTpFK3v4hDLUa2tPSZeQW/7WGE+gJmP/Mtb62pxCab6XHZFJ67ZwAj5UCTBeoZeNsVzOhiQK0+yDt//Zb3N9bg1IbQ7+opPHNnb4ZK0PyQPg3dxvbEtnsdDz69gpUFbiRrHJfdN41HxoUz4cHJbNz+CV+XNB84rd1fRL6SQXpaMr1C1nKoptlF28DF2jdms/bo3nYbx5w3LiLJlsPL989lTasnfZSIGDeBB7rJZH+zgA8WHmBfmRttaCR9Rw9k3BmePDIkI44kDaiuEnbmilGPgiAIgiAIgiAIgiAIgiAIgiAI/6uaGW/YmpIhZKWZkVHJP3iElsblSZYu3DglEi1uNrz5FS+tqvSPlPPa2fH1t/z1h9qAeyKFdeWGS8LQqE5WvzaHNzfU4FQBTx1bPv+Gvy2oRQ0UszyR8yD/emIxywvcKICvpphvZn3LZ/kKUnAa0yfH0NLgSV9BOYe9IOmi6ZzS9sN1Zslk9Ihk92sf8rsXNrJqVyUlFXUU5OTx/TtfcP/s4jM26hFdNNOuyyRIUqlYvpnl1WdqQ4IgCIIgCIIgCIIgCIIgCIIgCML5rh3BRyvxMTKoChUV9bSUbVPfM4OBQaA6DvD90ppGy7rZtGg3xQFWYOyZTj+zv9y81fUnD3BUnayfv5uSU6T5dG79mR8bj2x0FbJgeSU+ZFIGdiKupaPgrqesRgUpmPgYXcsbO4d8+Zt49ZsK3AH+pvjaOtvjqWjpfP0UZnTRolbt5ZV/76P2TG1KEARBEARBEARBEARBEARBEARBOO+1PfgoGbEES4APm63FcY/EpUYSJIOvoIR9tqZLePNKONBkFRKxKRGYJPAVlJJjD1Aut5icFqdCVCjeX0Zdk4CYwsGcMlwqaBKjSG5p6KPqwmZXQZIICTG044CdSSrlm3LYe4ppITta+NCJzJqZhNl7hG+f/YF5pSLyKAiCIAiCIAiCIAiCIAiCIAiC8L+sHbE0Ca0GQMHX4uhDCUuoCRlQam1UB4pPOe3UuJqWC7EeLWcPOKJODVjupCWoqXEEnBLSW+vApoJsNmFpKfiIgq8hZ6msOT9Dj6BQUtR4ROmZFdRtJC882Z9UjY21r37Kc/+1NT/1piAIgiAIgiAIgiAIgiAIgiAIgvA/oR3RNC8OpwpoMehPMfHiqeZlbI56BsNZx/ZJbTloJukwGPwLO52e8zbA5nJ6z9q+6VMH8OyskfQyucn+4DMebibdqyAIgiAIgiAIgiAIgiAIgiAIgvD/7N13dBzF4cDx7+z10+lOvUuWLXfJveNuY3oNnUAooSckQEJ+pNBSKIEAIQkBEgIJEFpoIfRqbOPee5Vlq/d2/Xb394dkW93S6SzJZj7v8Xg+3ezMzszO7U7bb5fwBx+1RiqqdRAKsbG2LsYXdeprfWiA4rQT09EXLXZclg7C1R0J5+ognLB2FK7VN3C5Ok6bMdpGlACt0Uu92tUh7MS7BOhBqqp8A3bwsa8YUvO475HTmRWrsvetN7j9+ULc3/ZMkSRJkiRJkiRJkiRJkiRJkiRJkoDeDD6qNeQXqugopKW76HznUp3S/ZW4NTCkpzLM3v4bxsHJDDF2EK6gEo8OhoxkcjoKNySVoe3CtaSQNiwZZ7vRR4XsoUlYBKiFFRR0MfioxMWSZgXUavKL+nJj04FHiRvOXY+ey2kpOkWfvMOtT+6lWg48SpIkSZIkSZIkSZIkSZIkSZIkSc16se1qgB07KlERJA5O6mCA7wj/5t2s8YCwD+HsBc42kZqYuGgUaR2kxL9pD2s9IGw5nDnb0XoFo7Ay/YxRpBzlDCwTxnJKSpvEWdI5fX48BjT2rdpHaRdjisbsZLINoNWVsK342zvSJlzZ3PrIBVyQpVCx9H1++NDWLvNNkiRJkiRJkiRJkiRJkiRJkiRJ+vbpxeCjzsG1+RRrYBqZSa65i2/W7eTf71ehYmH6TRdw8zQXZgDFwtDTz+KXZzvROhjI0ut28spHNajCyuwfXMCN01xYBGByMOGS8/nl6U7E0cYDrdn84L6TmZdhRgAGVyrn/excLslU0Or38MoHFXQ+hqYwZGw6LgXcG/axJXj0XDkRCXs633/gEr43woR72zLueWIndXY7Ma62/9mIMvV3aiVJkiRJkiRJkiRJkiRJkiRJkqT+0uWmpUcT2rmDxcUzuDJtMCeNNrBkfWf7lwZZ/9w7/C33Cm7Iy+K6R3/Ed+saaVDsJEQrFH24isUnTWOhs224AGv+9g7Pj/4u3x+VzY2P/phrvH6CRgt2k075kg18M24cM6M7S6HKts+2YJp9Eo+9Mh1vYwDFbsVqAD1UwwePvs975V2MXiqxTJ+SgEH3seLrfXh6nEMnBkNOLueOsaIAjtzZPP3m7E6+qbLykSe4+d3Gb/27MSVJkiRJkiRJkiRJkiRJkiRJkr6NerHyEQgV8f6nFYSEk9lzM+hi8SO6p5Bnb3+OX7y4nS2lfoQjCrunnM+ff42bnthLgwD0EIFAm3CNB3jqx3/nFy9uY3OJD9VkIFRZyMfPvcZ1v9tCWRfvawTwbP6SW27/gDfXVOExmBC+BvasXMPvf/wc93xR38WqR1DSRrBgmIJWs5P3V/jkgJokSZIkSZIkSZIkSZIkSZIkSZIkdUEMy0zp1ZiakjKZv750JpMb1/Ojy/7LMm8YiXCO44l3zmOOyOd3F/6L/1T1JkWRojD82hv497WJHHz5H1z81yK+pbuuSpIkSZIkSZIkSZIkSZIkSZIkSVK39G7lI6CVbuL5j+ogfjSXLIhGhHEMx/gc8oygHjjI5trepihCbIO56KwkFPde/vlmsRx4lCRJkiRJkiRJkiRJkiRJkiRJkqSj6PXgIwRY9dISVnjMzLhkCqNNHX9LxA7n+h9OY/7IaKyHRygFzmET+eUPc4kVATb8byO7j7KNat8QpJ12Eqcnaux98ys+6Oq9kJIkSZIkSZIkSZIkSZIkSZIkSZIkAWCMxEG00g088jsrp+aoxCQIKGk/WCdMMUy94DRuufQ0go31FJV5UaOcZCbbMKNSsvgjfvNOdZfvYOwzwkpisIAX/76ZZW8WEzh6CEmSJEmSJEmSJEmSJEmSJEmSJEn61uv1Ox+7zZrIwosnsWjiIPKGxpEUbUTzeSjZe4DFHy7nxQ8KqRoQqx4lSZIkSZIkSZIkSZIkSZIkSZIkSQpH3w0+SpIkSZIkSZIkSZIkSZIkSZIkSZJ0QovAOx8lSZIkSZIkSZIkSZIkSZIkSZIkSZLk4KMkSZIkSZIkSZIkSZIkSZIkSZIkSREiBx8lSZIkSZIkSZIkSZIkSZIkSZIkSYoIOfgoSZIkSZIkSZIkSZIkSZIkSZIkSVJEGPs7AZIk9TPjHMY8/iJZjoPse2Ae23eH+jtFxxkDc+++k8dPNbHvn3/nkr+VoPZ3kiJMRAd47N4AKx908GpVDwIaNGac7OPKKUGGx+vYjCCALW87uekLBe1YJbiHTvTz6xVDAlf++QZuG1bKE9c8z4sH9WMXl3Mawx6fTP1dT1FWcQzjkfqfsLPo3lt4aL6f1378DL/fEOjvFB2fhMbQeyqYMQnK/57AJ/81IK8cQGgMu6+C6ROg7JkEPn1f5stxz6iS/p1G8ub5iUvWMBoBIaj8RwIfvSPLV5IiRaS6Oe2pBhIMrT+vfimBD1439uBa08m8o5x583TqXo/nvZdMHYcdCO21bF8kSZIkSZKOmd4NPlpH8ru3L+E09wquu/Rj1ofAmLeIt546idgvXue0+7bjPhRRbCpzTxnDwhnZjMmJJzHagOZxU7TvAEs+XsW/PzxI5YAZ8zBiHXU1Q8+8mKShOVhMQYIVm6lc8Xd2f/gxbv9Aie94CQdYc0heeB1ZU+bgSkvFJNwEag7SsPtLSr58nsI9lR3c2Pc8PuEcQ/KM80gZN4PYzMFYoizovkq8B1dT/s3z5C9dg7+zkSFzNkkn38igqbNxpaZiMqqE6g/QsPtzij7+G4V7O0pj+ERUHmmn3UjmpOk4ExMwCDf+kg1UrHievZ9+jqfTvti+rp/0oPwEpln/YOH1J2M4yiFBJ/jN9/nsmU+bBmlEFFF5Z5OSN5XYIblEp2RhibKCvxJv0XoqVr5I/ldL8AZbHqMX8Uk9JkRPvq0z8bxGHp6nYQS8boXyetCBSt+xSV9vnejnF474+fO5JtdI+f8W89axHHg8TDSN4EonNt3DFy+uYufc+Xzn5im8ccsy8gfqrA0ljnmXjWGk2cv6/61mZX8MjCsh8n5fxYRhUPpMAp99IDtDAZkvkTZg81Mn+Zoa5p8VQgChBgPu5t9Zj7eTIIpK5nle4swK5Z/aKenJxKJvm+6U+7cxP0+kfOlJOgMGqreYUZsfrKyZAVyuPkllZHW7PQujfTleDOj6qRCdHEd6soP4ODsuhwWbWUEPBXHXuykrrGB3fj3ugXpvKEmSJElSt/Vq8NE4NIsxUeBeeYCdIQBBSl4WKUJlw6YiDt2viZixPPLq+cyLanMAp5Oh4/MYOi6Xc09dzJ2/WMy6+t6kKBJMRM17hulXnYxVEYCKppkwp04n/fypJOU9xqpHn6TWF6nH8XDjO17CgUg8hzF3PEpGmq1Fn3IM1uQYrMm5ONVVFO1Z3OaBIIz4oi9g4u8fJ8XWpuc6KpXokecQPfJMMmb+kXV/fIJqd5t0Rs9h1J3PMHiQA4GOFmwg5DdijBtO/LQRxE25kNRXrmDtJ9sjsqpNJJzD2DsfIz3FgkBHV/1oRGPNmktW1mxSJz7B6kefoMYbuXIIO61hlV93qLiL8o+EU3LIuPxBhqa1aZbsKTiGnY5j2KlkzH6eDY/9mvLacIYP28QXQd6qagoOGCmqDQ2QjrrI6/F4kDXEedM1jLrCJ/908Lu1CsGjh+o3J/r5hcWUyiVXjiRGLeWv/8k/PJnomBECOfj47aHuW8crq07i/hnTuXbGWu5Z6huY7achnnmXz+VcRzUvrFzTL4OPxjwPw4fqUGtjx1cDZUCo/8l8iawBm592PyMWhhC6gfw/xPHNEsPRJ5EpITIvaCTHbmTruoHW6T6wdKvcv4X5eULlSw/SqVdZWXm39dC/yP6/cmbPDK81CFYbqS/Saazv+xu7brdn4bQvx4uBXD+FjexxgxjpbFM3zGacCWacCTFkDypn5bKDlJxAkzolSZIk6duoF4OPgpS8zMMDjT4AYWXcuGSMWhUbtjQeuXEzmrGbNery9/Dhh1tZsr6Y/Ao/Skwi086axw+/k0nc+Lk8dFs5l/xmOzX9+LQr0r7PuMtPxqoEca+8jw0vv0pto9rqZ8IAACAASURBVJ3oST9h7LVXETPsNsZdsJKlL6+IzCBUmPEdL+Ewj2fYrX8gI80CjRs5+L+/cHDTZrxeE+b4LBw580k0eNo9EIQVn8GO0aQSKPqK4qXvUb5jE43VDQjncBLm3MHwhZOwjLiNCVfuYMkzHxI4HKmDxAsfYfAgB7hXs/dvP2XPxn2ENIEhbipZVz7ByIkZJFz8IIM2X8C+kl6WvMgk89qHSE8xQ+3X7Hrul+Rv2U9IxBA96VbGXH0dsUN/1HR+L31DywXBfV0/e15+OsEVt/LFRnPnp592A1Pv+gHR6jqKV+5rETZIoPBLDq5dTtW+7XiqSvHV1aPbMnCNvYJh512Aa9A1jLtqC0ue/A9N46u9iS9SVFY99SznPxXxA/cvRSd3mo/LpgeZmKHhMsOkn9dxab1CYaGRddtMvLPCSFUnGarEqWSbQA8Y+XLTAByYO9HPLwIc06fxncEKgfXreW//MeqKURxEzZlH8txcorMTMJoEzofuJ7mmFn9BAQ0b11KxeD/BAdMLLkWM3sgX7+3gthnjOPniMTz1zWpKTpgevwgSGoPO8REloPZTO0We/k7QACHzJbIGcH6KxBBOC+A3cWDlCTQwMBAM4HLvVzJfIkBQ+kI8777QH1F3v/xk+9JfNHx1deQXN1BR7aXRE8DnV9GNZmJSEskdFU9MbBJTJ3r4ZHkV7eZjS5IkSZJ03Ah/8FFYGDsuCaNWfWSg0ZjGxFwjel0h6/Nb3Lr5Snjt3qdZtbSCxpZ3dJUNvPXHIg5yPX+9MJ6EeVNY9PQOXi/vr7sLG/GnXEuMRaCVPM/Gv79IbQCgjoZV97M+ZiSzvzuDqNk3kfq/lRTW9Tad4cZ3vIRTsM/5OYMHWaFxCdseuIb9RUf2BPVV51O/ezHFkcoX/2YKnjqVynW7CLUsmtoyDry8HjfvM3XRECyTryL19Y8pqG6ujMZJpExMQRCi9sOfsXP9oQEqHbV6JfnP/Z64UX8kxTaWpLxk8kuKezWAJTIuZNCoaIReSdGLP2T3pppDCaVh1W9Za8hg9o1nYJ91HSnvLY9AOYQrzPILNRJo6OyYRlxjT8Gh6Gjb36akskWDoG4n/y/Xtg9SW46vZD21jU7mXn8qprEXkRz71pHyCzc+qXMGjbOuaeRn4zQMPoVtBQb0HI3aAgPeGJW88X7G5+hsXmWkqpNRbmHSMQsgBIGBlu0n+vlFgohiwdmjiBNBln+6nbJjcY6GBBJuvYlBk2PAV417bwmMiCG0txgtNo2oKWk4Rig0Lt1PcMBsyy5FknvNFhbXjOW8sRM5K3sNf9sne5faEpkeRk7UwG9h50cm2THaTOZLZA3o/LToTVvrhwTqgErY8W9Al3s/kvlyfOtR+cn2pX/oXnav3NPBH4J4GtxU+w2cOiUWc3IC6dYq9hzvW+BKkiRJ0rdY+IOPxjQmjDKh1xWyoXlFhCE7i7EugX95AdtadBTqjUV88XUnx9H9rPtkJ0XfOYksYyLDBilQ3k+buxsnkTIhGUGIuiWvNA/sHKLiWfYyld+ZToptBiljYilcWg0IzJMeY9YPL8DqXcLW+6+ioKxNL6lIIvXmD5gwLZHQtvtY9ujzTfvXhxXfcRROySFtzlSMBKj54B4Kirr5MsJw4/NuoHRtJ8fUG6le/gnehTcRZRxOdJoBDg1emRKw2BTAi6f4QPuBRe8+GmtVsAkMVnsHB1cwZZ/P4FMvJHlkLnZnFHhLadzzBUUfPcWBHSUtHnoE5pzJRCmgu5dQcnjg8XBC8a99g3L3aWQ6ZpA82knh8rre5csh1mGknXUH2dNOIjrWhla7jcplf2XXR53sZRJu+XXFNIWM6UNQcFO27EO6vzusTmDvOtzaqcQo6djjlSPld0ziO9pxR/P7jy9iUasFlxp7//l3LvlbScerToWd8x65g3unw7o//pmbv4rlsuvnct5JaaRH6dQdPMCnr33GXz4oo+2uwH0tYYqXH43ToNzMXU/aWaoFeOzeACtedvBaFcRkBDlnikZ9y3QKnbNuquMXo9scLCrAH55o/QLTLW87uekLpXVngNAZNtnPFScFmZCu4TJBQ63Cli1mXvnUwsbOtuQOI9yJfn6RIOJGcOpEM4T2s3iV+xisGBaYZp1L5uQYKFvJ3t++Sa06hWGPT6b+mWcoq1AwZueRMNPeejKJiCLhzrvJHidoePFhdq2MJ/niRSRMyMRs01BL91P9wfsUf12M2kW4nR+1aR8NaaQ9cBtp6UGqnriX/DWhI2HGNFD+t/fR55xBQk4U6sGNFD/7DjXW6Qy6Zj6uNBOh/LUUPv1fatrevwg79lnzSJk7GkdmHEYraA0NBMtLaNi0herF62ms+Ra/0MZ3gMVrvJx7ahKnzE/mH/tKI7NqvwXFkcC0+bksmJZN7uBYkhMdOI0haksr2LRyM6+9spZVrcpNkP3d7/PGzeltbpLjufrZu7m65UfB/Tx8yb949ZhNmtNJPctLrBG8X9nJr+z620p8gJFXNDJ0chCHHfzFZgrejWbD58aOVw8Ljbi5bnJP8ZM8WMVihkClkYo1Nrb9x055TevvDr2nghkTFHY9GY26sIGhwzWCBVY2PunkgNXD9FvcpGfo+HfbWPdHJ/tL20dpyfEy6lwvmXkhHC4dPAp1Oy3sezeKXZu7u+qkZ/liHeVh7KUeMkeomHWFhl0W9rzhYMcWpeO2TaiM+E0lU8dC6VOJfPapTsrZjeQt8pOQpqH4Fep3W9j7ejTbNitH8mYSlP89gU/+22aLP0OQ8U9UMSZLkP9gEktXdLQFoY4918uoM3ykjQzhiNFRAgr1+0wUfW1n55dm3B28C7xP81NoxM93M3qhn6TBKlYrhOoUPGUmytdZyP/cRnlH2/r1pJ41f78pP9u+IsHLgrda9kALKv+RwEfvNOW384Iqzrkq2Gbn7hC5j5aS2+ojM6tviGNHTYDJT1czKtHAzl8lsmrLUbJJqIx+uJJJI+DAo0ksXiIQUSFSZ/rInBggIVPFnqBhMYKv3EjlOhs73rZRWtnJlpM9rWct9EW59zg/29abvm5felrP+itfCLP8enj9RSKdPWbyMefVWgaZWn9c93o8771k6ta9ZI/b63aO0p6F2b60DB9WPYtY/exaWOUeod/3SPJXu2nUY4lTzETZBXLpoyRJkiQdv3ow+Ghgyg+v57551qabGcVMXLxAhEZx77+HNHUWWewkK6BPWMQrbywAVNY/8xy/+rT9tpot6R4fbg1QdPR+nHEmkicQE62AVkjNroL2afaspepgiJThVmKG5aIsXYKGTmDd/Wz+egqT581ixDVXUfnIcy1ejq1gnf5rcqcmQ+MXbP/Hvw7/Lbz4jqNwMTNJSDeih1b2aLvLcOM7Kl99Uye2UGkVIFiKr1GDWAv21CwEe1rHaRuCI8YAegX1BUVtHkAcuBb9mcmXLcCqCHTNT8jrQ4nKJGbC1bjGnUnSq99j7cdbmjtUFcwxCQhArzuIr6Ne1tB+3BUaOGw4Bw9HLF+N3tt8sU9hxJ3/ImeIA4GG5m+E2AmknvcMcYPepkFpe7Dwy68rxtyLSI03oLu/pGhD9dEDHEkNpuwx2BVAqyHQ0L3UhB/f0bjZt7GAtc0P166sTHLiuh9aSRzNfX9dyGnJCpqqIQwKCUOGctn/pZGmP8sdH9T14yxrnfG5IaKATUusLKsDolt/o7bQxL8K2wWjqtjI+uYBWWHRGJmpYVEF+/INtBwjy69tE1bRWHB5I/dM0zADuipwB3ViElTmzPMya2KIJ56y858iEYFwJ/r5RUb0xGGMs4C2dz/rO9t7tlfMRI/PQREqjZ9+Tm2NBs6Wf1cJ7d9I6f7OjyBix5J97xnEJSigaaCYMGWMIPn6DCz6E+z5OkI9OcJB3JWXoGh+NMWCOWcqWT9wEecYhsPqQcOCecRMsq8qpPHR1UcGeYQD17U/IGd+IooAPeAl1BAEWwzW4fHYRozE2rCTXZ93unT7WyDApnXFBE8ZSvb0HDKeL6Ugoo2fIPuC7/Dk9akYAV3T8Hv9uIMm4jIzWJCVwbxTRvOXO//NP7YdGdnxlZWwbkOoaTUENgblJZFgCFK6u7j19m2hMsqP4Z7AIs7HyDkqQjWy+3+WLrd3FnE+ZjzcwOBE0DUQCtgG+Rl5axCHHs9Xn7cdEFMZdGsNs+aHUAQQEgQDYEkJknl2kIxZftbcG8OO/W3aF6Ex+IY6FE2gKTr24V6m/VRjcLSfJKtCCJ2oXA/TbzBR9hvbkf5CoRN3di0LrvFjMwCaIOgRKA6V+Kke4if7yHg+lq/eNXG0hc49yRfjqEZOvtpLjBlCXoGwqcRM8DB5rJ+EJ+JYuvgo7zY0hMj5WR3Tp6tNr6UFsGvEjPMybLed7Zu72yHeVRwqGdfWMuusICYB6KB6FFSzSkyeSswYP4nmBD55r0Va+zo/hUbGLdXMPSXU3J4p+OpAsWvEjPIRM9qPs97Cpx+1uaEMp57pAm+BmTJL09kKm0r8EBWDplC7w4i/RYbXtRjYUytMlG0RTc+pQsM1MoRVEXj2mWhoOaagGvEEAdVE5R4ByRqxQ1TElqPUBUuQ+CwdVBMVe5ridZ5Zx4Irmjv6dVC9CoGgjjUtSGZ6kMy5Ptb/OpYtu47yO93detaH5d7j/Gx1Pn3cvoQbX1/nS7jlF8b116t0hktXqNtqpqy5h8mSESAmpvvBe91e0432LMz2BQi/nkWwfh5N7+pnmNdfC6YpZ/HBHyaRoIB/yVss+Plmwtm12BxrJ0oAegh/BOY/S5IkSZLUf3q08tHqdJKaYms9k8pkJSnF2vqLUQ5SowBUDtg7GNVoI3poKpkG0P2lbN3XfysAROIQ7AYgVEBjRfNQUUwuMXF11OcXEtLL8JS70YfHYEoajFksaVpJpddS8erPKBjxEtmjfsrYU5aw8sNdTQNwcd8h9/LTsVBB6cs/p7BC7XV8x024tFE4DEDlJurqE4k/5TZy5i0iJikG4SulcffnFH70FAd2lrV6kAi7HLouXYyZY7AbQPdvpbawxSNdaDWFy/aQedZwXGc8wsjS/2PP+l0EVQPGxBlkffcukmw6/s2Ps29r6xmRlkm/Y9JlC7Co+yl5/Vfs/GoZbq+KsKQTO/eXjL3kLBIueZJhe89gx55DKwwP98R1mtamjgcFS1ImBlYT6lW+RBF/wRMMGeKAhuXsfuYO9m4pRDUkE7foIcZffAEJCrQd7Qq3/DovghiSZp2CWWgE1r9NRVfL+4SCUBTAiNE1mJgJVzH8gjMwC53Q7rcp7c7q6J7E11PBAp6+/YXmfxiYe/edPH6qqasQLRgY+Z15ZO9azk9/upTF+32YUoZw9S8v5PoJdmZdMYXRn3zGlv7aZlLoRNt0BOD2ih50qgqWv+tgefO/DIO8vHyHn0yfiaf+bGd5F0WWNtPDXdM0TJrCknfsPLrUSEUQXBkBbr7Sy9lpQW79np+tj1jZHupluBP9/CLCwMhx6diETsPuYgqOxc+ysGCwKwh0VE8nq6+7ZMC+6BSs+xez95EvqCvyIRKGkXLTFaSOisJ1zklELXu/xUSg3qTViL71VTY/uRY1bQHDf3sGjqzh2De9xdY/LCcQexJDH/wOzpGjibauprr5Z0JkzyZjXiJCraDquZc4uKyIkNp0PGPaYGJmTsHWql0yYHeaMYvudj7pBL0+3IEItm39oH53MQe1oeQMyWJs9DIK6iJ7fN1fz4YPd/L+ZztZsaWcUrcGCGzJmZxz87ncsXAQN/98Fiuu+aJ51w6d0s/e58bPmg9gGsZ971zGuY56Pnr0X/xxW99NDYk51U2aDYLrotid39U3deLOaMS5L4rF90dx8KCCISlA7o9rGTtGI/1CD/FfRVPZ4npwnFLPjPkhFM3AwRdcrPrQjCcAliFeJtxWz7BsP5N+4qbiDgdVLTsohY620cV/H7bhz3Cz6PEGErP9xK9z8u5v7bjjPCx8sp7UPD/JNhv7m3sdrTPqmX+tH1vIQME/naz/xEKDB4RVJWlRAzOu9pF6dR3jdsazdkfX10BP8iV+tpfg7ii+esxBYbGA6CBDb6hl6hyV7JvqKd0ey+7yzsNbZzcwaYROxQdOtn5ppqZSIFwqyTM9ZEWkw14n7sJaZp8VxKgplL7tZO1/LVTXChA69hw/ORc1ktQmVF/np8hxM/HkEIpqZN9fXKz5yoRfBYSOJSNI5lwvMY3tw4VXzwRFL8RSdOhfwxs492E30R4L6+52UdTJ7537ayefHtppx+jnpH/WkGM3kP/XONbt6vCsqNppRJsZJGZYCAOGLgfsREaQWAvoVSaqDtWZgEL5Fw72fW2hZIcJd3N9NyYGyLm6jsmzAoz/USMlP47udBv3ntSzviz3nufnEX3dvoQdXx/nS7jlF87115t0hi1kZuM9h2Zj6mTeUc68ed29R+lte93k6O1ZeO0LhF/PIlk/j6ZX5R7m9RcJQggQAqPFQnxaErm5sViETqiyisL+3hJIkiRJkqRe6cHgo8qSB37PxAcATMz51e08fkqA13/0Jx7eoIIxgztevpYrXFu58/w3+by7+7KbkrjwkmFECZ3KL9fyZdsVI31GYHTGowC6WkPArSMSv8vk+x4g0eGj7t2L+eatrQTqqtCJAWciZoUjK9e837Drub8R/383E3v+IwzeehF7DyaRcdXdJDt1vMvvZsvylu8KDDe+4yecISYZowC9TiP26rcYMTMLoQdQAxpKdBYxE6/FNf4MEl/8Luu+2NU89tXLcuiMcTiDTl2AEQ3/6pcpa7VyLkDtu7ewNelvjJ46mSG3fsZg1Y8aUjBYTGi1Wyj77/3sfO+D1h3ZxokMuegcbKKeipevYP2XR7Zs1f1FVH9yOxtiRjLjzBwyF81nz54PCaHhr6lAB5TYQdhMUNc27eYhOBIVQCAc8ZgFhPRe5IvzdAbPzETR6yh79Yfs2tz81BYqo/qjH7Ml7TMmz0ltdz2EV35dcJ1OxlgnQiuh9JslXXTwCEwzn2Ph9Sc3rzo5JIR/z/NsfuafTSulIxZf3zP79/CbX33GF82LMdXSfTz7h+XMeWEBo9KymZQi2FLYTw9auqCoUkEfoZE3MUjqajMlxzI+ReXcuSEcQNFSO/d9aeTQz0ddoZlHntcZ8jMveal+Lh5t4f5NonfhTvTzi0iaoxk+xI6CzsH91cfm2tE9+Mu96DhwTB+LZdkKejqxWQR2cuDJD6itbX5Lb+UuSp7/GteDpxGVlEN0ooK7NAIDRbqKe+02ghpQvJ36ktNwZGl41mzFHwIqd1FfqOHKScCaqMCBpsEt45AsLArou5ZRtKToyPaxeohQ0W4qX9/dOh5TDr944zLOjOpuwlRWP/YkN71Vf1y/j0otrOBACIaakhgxSOG9TZE8G538117l+nbNqY637ACv/f5jRk+8lHOyRrFw6Fds2zGActLmZ+QpIYRuYP97VjxH+UkwBCwsfziaA80LfkPlZjY9bSfjyUbiUgIkJ0PloZc0G4IMO9uPSUDjRy6Wvms+fJ3799lY+YhG7OMNJGR5GDUpqvU2obqgcqUFjwYUWigpbCBxsKBqhZXGEFBhofgApA4L4UoC9gPGILnf82IXCsV/j2PJR0dWr+g+A2XvuVgaF+K0C0IMPcvPph3Wzlcz9jBf8JtZ/0g0B8ua/91gYvefXDiHVjM63c/Ik4Ps+Xfn2wHGjFIpfS6OL/5rPLIlcLWBxnwz+wz0YAJLx0S8j/HnBzEiqHwlli9eNx2JRxd49ljZ/JAFS3SLuPohP63DgkQbQNtqZ8MXpiOrg3SB/6CZPS+Z2wfqTT3rI+7dJrxaEHt2EKfBQnUXzxOWISGiFVD3mg9/r+7dWD7pIM9CFWZ2/tlJfF4NOel+sgZHU9XR682adaue9ed11BN93b5Esp4dy3zpRfmFdf0dj3rZXg/Ien0ctIOHhXP9RYB50FDOnhJDqyULuo6/qpw1qypolGOPkiRJknRcO/qyxI4YkpiQa0F4i1i/u3kFVlImY5MEwV0H2NLtHkQjIy49i2tGGtFrdvLk33e1fsdWnxIo5uYtZYM+VB1E1nRiHQpgJ3rERMwC1EDTyQmTrV3mhXY/zqb/bUazTGDYtT8iddGDjBwXi17xBlte/qDVNh7hx3f8hDNY7QhApF/O0BlxNHx+K0t/OIKPbxjOJ7dfzLZ1hehKCkmXP0J22qFhpt6XQ3sWnKc/RM4QC9R/yo63Pm//7qPATg48+z02frqegAbCYMVoMTel3+LAFOXCaGr9MKAMPZfUJCN6w0fkL+vgXZH4qVv3JV5NwTRsOk4DgE5wzyoaVRDWmaSNT2gTRsE67TKSDq0YNlmbtmfpRb4Yhs0lzibQfV9TtLbNdFG9nsqlH+Bt198abvl1RsE+7SLiLAK98n2Kd/Z0pVMA7+bH2fCnByjrqmcoYvEdSzoNKzfxVZtdYLXCg2yq0UFxkZESXtMcGYL135jZEwLnaA/P3u7hhpNCJAgd4zFIlpIUZEoCoBn4bMWRAbZD1DITH+wFXehMHqVi6mW4E//8IpFoF2nJCugalZWNx2hgK0TDlyvwBgXGsd9h5L2Xk75gCGbFgDB0p+NFR9209vDA4+FPS/fjrtNBicUSH6kOHD+h+uYtOXU3wQYNdJVg7aEp3x5Cbg2EHaOjfZzCEX1M6tYJI9BIeZ0OwkFackRrcpOu7it9Zew4oIHiIjP1aL9jfcs+x0N2HOj7bezYePS6HFhv5WCbnYb1YjMVtYCi4khsMf0tLUBqKqAa2f+5ud0EA73Qxt5tAoRGyoRgm/ssgbf20GQOBW+9AB28NeLw3/2NAhQdS/OW1spIL4NSgDoLO77saNs8QfVKC24NTCMDxHVRFD3Nl9BmG/vbrpQJmMlfZmx6T+D4AB1ctofphTbWvW/s8F2kegRWVtum+Ei1AXVWNr9n6vidp7rAX38kkf2Sn82RCIeGpZvtWe/qWd/Q8s1U+UGkBok7NPFDCTH6d+Vc/GIlk3IPj/IQmxNEEVC7s8WWmF22L0aqiwUoKtHJXT/gdqee9ed11BN93b5Esp4dy3zpVfmFcf0dj3rbXg/Een08tINH9Pz6a0urLWPl8t0s+WY3y3bUhzeBUdfwlBWzYnkhxfJdj5IkSZJ03OvRtquHKEmZjEtRCG0tYFNzj2jU6EyGGTUObj5IZTd7KuNmnMpD12ZiD1Xz9oP/4/2yfr65aLPVmbb9ZfJ3zSA7tZziTz/Cr3OUDl4fdf/7Cbvz3mbEsB8xYTCg5lPw/G8o7+gddeHGd5yFEzYHbP45a1985/C7AdTqFeQ/8zOiHniRQfHjyJo9jvzX1jW/z6S35dAqEZjH3cuE8yZhCOVz8Lm7KKpqX0GV1AsZ8+PfkR5bQOFLl7F31Vo8XjPW7EUMvvQeshc+zPRh2ax+4CGqvTqgYM3Oa3oANM1g+E/eIKej6M1pmAXgTMFiAFTQi9+kYMuNjBkXT8qVzzBSv4/9G7cTECm4pv6I3Mvnobtr0R1tXpIRVr4YsKUNwQDoZdtp6GBigFa4hQZVb9rStYP4elx+HVGGkT5zAgohGle+TU2XTyI6waXX8NFSQDFjih1B3NTrGH7uT5j6wCLyn76WHZsqul5t0KP4+ppO8f4q2g2H6n4aGnVIMGGzdhSu7wQPWPn5Czr3X+ZndHaAq7KbPr/ll3Wck2/i8+UWXl9joDYCo1KGBI0MA+h+AzvLOviCrrC7SEEfqeFMVokVRsr18MN9G86v14QVp0MAKm73sbt49H2fsfcvNgZ//ySiciaS2tyIpj98Hwl7dlLz5WLKvikk1GE56PiLOmoHfKgeHWJNKNYIdTzpQbTDrwMMoQeb/q8dmsWiH/rMiHK4EdYJ7dyLNzSMqPQ55PzURNmXW6jfeRBfXSdrUYK7+NWp9/OryKT6+KH7cXt0EILoaAsK/ogPeNuzhnPhhROYPymNISkOHGaleWJPi+/YjQiCEXm/ca8Zggw/y48RQeF7dmq7McjVeKCjgQtBwA3E6ZgsRz5VUkM4FcBnpOpgBwfTFar3KejjVSwZIazCfOSdTbpADR7JPC3YFI8abPl3AB2jSQcE9qEhbApgDjDu3mpyOzoBs4pFgIjRsBmhw1GYMPLFnW+ko52J6/ONqHoIY2qIaAM0dNLUeTdZqDlmb4TQiRnaNKCl7jJT3s15Uv2Rn75tZmpDAeKy3My9W2f7pxZKtpqor+18+/Kw6llfX4BeExUFkDU8RNwgYDPgCpA2UsNi0kgbH2LdVhO6ohKXo4FmoGpX64EjY7qf4Wd5yRobxJWsYjbR5s0KApNNb/th62R0o57153XUE33dvkSsnh3jfOlN+YVz/R2PetVeD8R6rR8n7eDhtPT8+mtL3b2aX/3f6h5FGyjYw5sFgBCYbDYSM5LJG5XGnFNi2LVqD5tLB8i9mSRJkiRJYQlr8NGem8Vwo0bh5kIqNAADo8alY9W9bNpU2fGs3TaiRs/lsfsmkW1ws/SJV3j4G3c/31ToaH4vOiBMlqbtHj0r2PW7yRzZHt+IwdzUe6MHvR13joV2sO+Fp0n99U9wGTS8S+5l59b6CMZ3HIUL+JrL1E3lknfbv5Tct4LSjZVkLUjGNnQCVrEOrx6hcgBAYMz5MZNv/i4OQxXlL17L1g2V7b9mHMPQWx4mPTVA5QvXsvnLwuZ0+/DueZNtj9dj/N3fyMy6ntGL3mLZf3eio2B2JTStDLRlETMyq9NUNDGhHBrc04spfOGnxNz5JJlpU8m55YMWA5c6atlrbF85mNHnTANfI6renJ9h5YvAFOVCAJq7pv2KTwB/DcEAYGv5Ybjl1/HZK4MvIC3TiFC3ULJiW/evdS1AsGozZR/eRk2xn5m3XcbgGx+m4e7rKKzuvOTDjq9P6Hi9HQ0+6OhNo+8oA2BWc/FGGzfutDB5QoCZo4IsGq/iMuhkDg1w9dAAZ06yERlFTwAAIABJREFUcedzFnYFjn6srlijdCyA7hHUd/LjUd8omt6ha9eJFlCuhx/u23J+vSMwGgA01GO6C6WKf/U77NiyDOe0ccSMzSN2agZGgx3ryAmkjhhH/En/Y88fv8bTbuKEjubvqDNCa/5MdNXP20OHrk1A19G1pniORH7o7wotR7T0wq8peCmDnMvzsIydQ9bYOaBrqNWluLdvp+rjxVTv8wyw9qk/aKiHVvYYIt34CZLmnMlf75nEECvoQR8lB0vZVx9svlc1kJiTTlY0GIwDZ+WjaZKHoVmgV9rYsaw7eSII+Tup8IcqWIvDGBwaBgG6W2naOrgDgXoFUBEODbOgVWeofqhd0EHT2nwGh98hLZqz1BajNl2OdpX4vKM8JQj9yP1SG+Hki7++4+9pDQpBwGjXsRih4+UZAndpRyuUIsca03T0QJXhyNbMR9Ef+akfiOKb50LMu8aHY6KbKRPdoEOwykTVZgt737OTv0dplVe9rWd9QjdQtduAPlIjLkdFbDZgHB0gQTHQWKHizAsQJUw0mkPEZwABExX5R4Lbp9dz8k88uCxASMFdZKKuUaA137vbs4NEO0B0+cTdvXrWf9dRz/R1+xKpenas86U35RfO9Xf86V17PVDr9XHRDrbQ0+svspHrBD0einflU1WvsXBmIsOnDKL+sz3s7+4rnSRJkiRJGnC6Pfh4+z9uZUFUU8eG0eHELhRSz7qIdxY0z2qOd6KIEAt+dgtTQkCogD/d8i6f1LU/ljl7Mg8+NJextgCbXniVu96upJf9uxGgE2qoQgMMhjjMDgG1be/8BGZXPALQ6ysIdNgpa8M17VQcBgEoWMecQ7xzMWXt9pMNN77jKFxjbVM4rQR3WUfTuTW8lcXoJIMzGYsCXjVS5QBK2hVM+PFtxFjd1LxzHeu/2NPhQKUy/DIyM80QXEzRqqL2D27uryhaV0HGwhSix83D/t5O3DqHVwaqG+/g88ff6HhgrxN69Uds/vWZVJx8HRkTphAdFw2eQuo3vcG+D95EP/1TBDpqXWnzDNDe5Es4TzDhll9Hx7ISN+scohQddc/bFBeHMxVVJ7D5HxQWXsTwrHlkTcuk6MOCTs4sEvFJAJpPYdVyK6u3KGSNDrD2j3a2Zfq5+Vw/uaO93H+GgavfMfb4XX0DxYl+fuEL4fXpYDFiMffBu2e8FdR/9Rn16xqwjJtCw29ewz14NumXzsAx9iyGXHCAbf/ef4zfaxiZ82x9lACeT19g65pBxEzPwzkyi6icTKxxaThnpRE9fRzRT/6F/Wsbmr9vwBFrxSK6mxadoNtDvf/47m5EmLBYBKDj80V2drtwjuS2OycyxBJi7/v/45d/2czO+hY1SXFx2ZO38rPxERyr7i2hMuRsHzYEVR/ZKR1Iu4aHqzlztTUu/vMbG2FV2UjnS4sC7yo5qn8Arizql/wU1Lwfw39XBMmc5SM1N0jC8CCu+CAp84OkzPKS/Pt4lq8cALOneqh6pwn1LB8xQ4MYUEgYG8RYZWHNx0GmXRQgyRGFOzVIrAX0vSaqDnWCR/uY+AMPLrOg7jMnS5+3Ud3Q4sBCZeQDlUzJPXr70q16NhCvoxNFX+RLr8rvxL3+uuVo7bWs1yccf1k5++sSyHU5GZJpoWCXf+D9FkuSJEmS1C3dHnyMT48jI6r1Z9bYGDJiWx/OlRyLCyBYTVQH97+G1Dzue+R0ZsWq7H3zDW5/vrBpIGcA0Mv34VHBpQwiKtEAtW2mp4lk7ElRCDQC5fkdbgtiHPFTxp6Rh+LfTlVhMnE5F5B35VfUPfVffG2+H258x024igJ8Wk+2SO1dfK2+knAuY+/4NYmuIA2f3syad9d2MqNcwZIxvGlrVG8F/g6fBDUCtRXopCBi07Ao4FY1AnWV6GQjYtKwCno0+AiAdzel7/0fpe+1TXwKg7LTAJXGg7sPd7iHly86gca6phWTUbGYBO0fdi1xmMztkxdu+bVjm0P65FQEfmq+eb/pJfbh0Cvw1WmAkai0wQg6GXyMVHxSO0GPwrpvbNylarxyRZCsyUHy3jOythfjuz6PwA9E2bWm96J2cCynQ0cBVI/g0A7W4Ybryol+ft2mNVJRrUOMQmysDUFDHz7w6+juShq+fJu9agx5N4zGctJEol7f3+m2iN0+7qGT6LAX2IThGA20ajUFVH9YQPWHgDBhHjGFtKvPIj4zgfhLZlG+4UM8KmDK4a5XL+PMqKMd8RCV1Y89yU1v1R/jgdljTNiJdwnQg1RV+SJa16zjRzErRqCVruOhxzays+1MAhFFYmzTwOdAoQz1MCJPB4+VHZ8aj0nK1EYFVQdTlNa0iqSD9sXibN7HolHp8D6rJ3w1CjoqIk7F1tF9SDeEly9683m0X6KhOLSm+xu3QiACu0vrXSZIx2jp+C++2qb6Z45XMQq6ldf9l5+gVpnY/66J/e8CQidqtJfxNzUwZJBKzvfc7FoTTVVzferrehau0F4TtZqP+MEhnGYDybkqgc0WCtYrjL7cQ+pInZK4EA4FvHtMNDY3uMY8HxlO0MttrHzaRnXbmbSKhs3V9XarPdGf5d4TfV3ukYivL/IlEuXXk+vv+BN+ez2Q6/Xx0g4OOHqwaSJkjMARbUUgBx8lSZIk6XjV7elxvzr1fibMup+J573PyiCEtn3GeXOaPjvpF5up03UKX32OKbOaPpsw/yXermkTWdxw7nr0XE5L0Sn65B1ufXIv1QPoLkIv20BtgwZKGrHDs9o/KtonEpdpBHzU7tnWvrMvai4jv38tDqOHmndvZdWf76esHqxTfk3e7Ix2xws3vuMmXOlG6jwaKKlEJXf0EjsFW0Ja0/HqSvEf2tqjl+UgXCeT+5M/kJao41l2B2v+vbjrG/lDq0ys8Vg6GIQDgckZ15SOUKA5Pg1f/lb8Goi0WcTHRW6mqUg6m7RhZoRWQNXW/YdvtMPLFxVf8V5UQCSPIrqDzi8lI5doQ/uOkXDLr83ZYJ5wEclOBd3/DcVrisN/cFDSsMc35bOudvZkHcH4pE7VHDBQooKI0kjupEO1u9QKhUIVhEljRHIHXxAawzI0BFBfbqBG71247jjRz+/oia4hv1BFRyEt3dVBN1Bf0AntO9jUxkbHYrb0svNWD6L5dXQExihr+/YzKhFrTB+sfdODBHZ8Q8GzS5vOLTkdu23ArLnrF0pcLGlWQK0mvyiSw6gCZ0I0VgGhwnLyO9hiQ0nKYnza0X6/taYtFIVo957IiBMaGed4cRmg8Ss7B2qPTTRaiZF6DTCHiM/sOB2xOU3ti7/I2G7yXE+595rwaSAyA6QkhHGAXuSLY0iIjpoP5+AQBgFasaHTra27TReE/AA65ugO6rBDxRnXUUBB7R4jmg6GEQGSbR19p73+zM9WdIF7q53lT9qpV0GkhIi1H/lzX9ezdsnTAKG3fWV6+++VmqiqAZESJD47QHKaoHyjieB+M6U1Gkljg8QNDaIgqN5pPPzcYY5r3k6xxEh9B7vpi4QASR39foepv8u9u/nZ1+Xe6/j6KF96XX7tIu76+gs3nW2pzYN9Slgv6+mZsNrrAf67eby0gwOOMBNlb0q03vXsHkmSJEmSBrgej5jYRg9ilFGndNMBmvqIFEaMyyRa97FxQ1nHr0wBhCubWx+5gAuyFCqWvs8PH9pK6UCbqh9aQ+mGMnSMuGZdiqvVQJQB+4zLSbQJdN9ySjdXtw4rEki+/CGykg2Edv6BzR/tRKt+h60vvY+PeJIu/T2DUtrctYcb3/ESLriK8q316ESRMPsc2vWvWqeTMi4BQQjP7rVHbrZ7Uw6Okxhxx5/JSjPgX/cLVv/jPbxd1jMNf8k+gjoI03RSJya375S2TiV1XAoCndDBLbibj6fteZfSChVhmsLg8xfS6aIZJRZ7grOrRBxhHELmd28h1gTq/jco3N/iigozX9TdX1Hl1RHWOaRPSmodn3CSMOsMbB21BOGWX6vjp5Ayaw5GdEKb3+pg++EjFFcGlk6XWSpYJlxHeooRCFBfsKuTbXe6H5/UOYdN73KeviVOI14B3S+o7ej1lT2glZtYXQkoKidPD9G279WQHOSMISB0wdrtBoK9DPdtOL/eC7BjRyUqgsTBSTiPSYeFAYO9w9keh4mEOEwK6D43oV5PBVcJVNQCCpZhgzC1OieBedpEHL1e5t2a6Or9hc3vF9S1EJrafG7BXYcnenXvv99yQyerHg3Dp/Hgo1fwlz9cwR+vyaa7Y+h9HQ7AmJ1MtgG0uhK2FUeyzdZxN/hQdTCmxpPRtuNUWJly+RTGHq1DVffT0EjTCs3YYzsUL5J9jJyuQdDErvfNnd5T95ZebKakBDCEyF4YaLcNisjwkjNKB12hdL2p1ytrtR1WCsoAY4DRl/mxdnq/pOFIah9bb/LFkOdlUJtbH8wBBs8MIYC69ZYI7MAicJc1vbMvemSw3f2SY6aX5E7aF+9qG6VewOkj7+xgJ5M9dMz2I4nsj/zs8v1exuZ5fJqg5dywvq5nregKAQ8gdKyuoxSwaqRijwBjkNQzAsTpJkq2KBBq+r99rJfBQzXQjFTsOdKuBxsVdB1Ekoqjbf4IjZTzPSRGcMCmP6+jnuRnX5d7b+Prq3zpTfmFc/2Fm87WBN6qprYtKiPU/S2zwhROez3QfzcjdT2IIR5m31vDwvtrmH9poHsTA8Mu9/B1935QsZqxdnES1rRkBkUL0HXqar1yMrEkSZIkHcd6OPioMGJ8Bg7dx8YNpU03d0osE8Y6EaFi1m7ruPtT2NP5/gOX8L0RJtzblnHPEzups9uJcbX9z0ZUhDv/esZL1Sf/oNavo6Rdy/hrr8DlNIESjWPKr5hw4QyMhPB8/TQlrd63p2Cd9mvyZmaAdzm7nn+eRhVAw7fqHrauKIGoWYz4/vVEGyMR33ESTq+j/JNXaFTBlHc3k648H2e0EVAwJJzE4Bt/T2a8Ad2/lgNfb2lxUxlmfNbxDP3xswzJthHa+xQbX/qEoC0Oc3Tb/2IxGo888Wk7XqeoLIQuXCRd/iyjZozBbAQwYkyZz9BbHicryYCuFVH85edHtlcNrWXvmx/g0wzYZ/2JaddfQ0JydPOghoIxbgxJC+9m8u8WM3n+4FaDHWLwdYz93s2kj52CMzkNa3wOMROuIe+uN8kdlwChPRx47Z+Ht3bqVb40fML+ZQfQhIukS//EsDEZGARgTCLu1CfIm5VCh1vOhV1+Lc4z6RwyRtgQejXl33zexQpUgXH8g8x99D0mXHo9aWMm4EhMweJKJSp7LpkX/p0ZN56PTQG95j0KVpf3Mj6pU0Lj9Gsb+MulfuZkaO0G1Y2uENedGSRWQMUmExt7O+qlGXh3sRE3kDbTw73zQyQ0/w440wPceY2PXBMESy28sU30PtyJfn4RoXNwbT7FGphGZpLb9RhheIST+B/9lBHXziUmO7rNijKBiB1B+kXjMAqd4OoNNPZ6dFXDu3UfIR2U0SeTdVo2JhNgsGM/6VxyLh5EZEdwFaxn38io284maVIm5sMzPBQMGePIuGI6FgW0XTtpPAbvJlJciUyemsNJ03KYNjy626tX+zocKAwZm45LAfeGfWyJ7Cg6ni35bPaDkj6Rn944nIzmRfwGZxKLbr6Mh8514DvaMgO1ip35QXRhYeY54xnc0UYAEaGTcLqHJAsEVkext+hYxQOoJna/Zyaog+O0OmadE+DQXADLYC/T7mwkwQzaARs71kagfQma2fqSFa8OUQtqWXSbh9TUI5NAjAlBMs5oYP6fKllwmtpmckgv88USYMJPG8hMbSpnER1k6A/rGZkGNFrY8Xlktuir3WTCp4NhjJtpZwexmQCDRuyceuZcGaSzl9vrVVY2vGMihE7CZTUs+J6PuJjDe15gHeRn9O3VzFqoHcmXfsjPmAurOfPnDYyYGiSqxeoqc5aPSd/3EK1AaIeZcm+LQH1dz1rSDFQXCBAa6ad5cXU5I0KhapcRXWhkzglgOGChtBpAUL7BhJbtZVA2UGeiquRIqNB2M5UBEKkepnzPj6O5bRDRIQZdVcvs0zTUSL40uj+vo57kZ1+Xe6/i68N86UX5hXX9hZvONmo3mfHpYJriZuw4rcvJe73W4/b6OPjdjND1IJwhUib6SZvgJ21IN8uhF+Ueru7eD5pSBnHaaaOYPjaZrOQonFEmrFYzjlgng/OGMn9KHHYBureaPYWRfR+4JEmSJEl9q2cT2JQ4xo9xIoL7WNM80CicWUwcoqDuL2BjJ9tcGHJyOXeMFQVw5M7m6TdndxKByspHnuDmdxv77QZDL3qOTa9MZdr3TiZqxoPMmvFbNE0gFAWBRnDPk2x8a2Wr7fpFwkXkXXEmVuqoeOMuCkpazLnTKyl9+VcUDX+W9OG3M/asZax4Z9Ph8OHEdzyFU/f8kY1vTWDqhdNwLXySWQsfQwtoKGYzAtBDByl98U4KytRexycyzyZjqAsBmHJ+xP+3d+eBVZV3/sff597c7AthCyQgO7IoIAgi1gVxV1pbnaptbatTa2s7TldnWlvrtNOO072/6dRObautra227gpudUOrIIICKvsWCAkQsu/33vP7A6ssIUByTVjer38U7nnOec7z3Jzc8Mn3eU768fX7mOVWtt8xnfnPbHv7j6+w6v++T/4Xb6BP/mSGfeZRhn66lUQ8SjQ9bWc/k9vZcf+/sPyN+l3Ok6RlwQ0sLMhkyuVnkX/KtznplG+RaKojEeQQy4y9/YNBnPpFe7yj0wfTZ+bVDJ61d+/Ctg1s+f2nWb68fu/XOjUPDVT+9YusHfF7RgybweivvMiI5jqS0VzSYiHNr/6FbcdeSv92lurp7PztlEbejEsoSAsIq59g87K972dPkV6TKD5/EsXnt/dqSLL6BVb9781U1Lf3hDj463VKtIgrvnUes3q/+2NfwTExIELxubP51cTWd55fiXULuekny6g41Kq89yMZTTLxlCYmndJEa0OEzTXQLz1k6Gdq+UTfJL3SoHFzBt97KEZDCq5X9mI2twyt56ZpSU77UD2nvj+grm1nhWIESNal8YvfZ/BGW2raHen3lwrxFct5ruxkriwexoxxUeYtTvUmQkmI5pM7azZ5Z15Esr6KliqIpeeQ9dUbGNC/L7EYJDY8z/p7VrS3Rc7BX/GN5ylfMZFBYwro9bHPU/CRBCFRgqCN5iceo3L8hfQvScGF/iGSRfbU08mZejqDwzjJ+maSkQzSsmMEAYQ1y9l85ytH9y9JRAqZPrUv0bCZl59fS2OKT5/cspj/uWsCt15VwnGXX8GDl7RQXR+Sk59JRiTO2gfn8uSQC7j2hA5OEjYx74GllM2YQsmMC7jnwVPYWNa4c6nxeBl3fO0RntjRQfsDldfC2FlxgmSUtQ9npHzptT3VP1HAy8fu4JSZCQZ/ageDPxHQ2gqx7J3Ls4XVGSz6SS7b9xGaHaymFwp4ulfIzKtb6DWzlrPOqCXZFCEehKRnhu9si1c7f4+GXRqXgMrnM4lMb+CMXzYQb4gQZCWJRoFElHW/yGfN9tTcX/z1HN58s5kp4xMM+lQll14dkCQkEgRUP5LLmol1HNveknsEVP6lF/Pyq3nfhW0MuLSaCy+BeEOEMJbcuSd3ELB19e6tun08I0kKT25g2skNTAsD2uoCEpGQjJy33y9VGSy6LWuvqqTufp+9I4yw+bEs6qc2kntiLbN/10BtRYREEojHeOO7+azf5efW+hUxmsI2stNC6pakU/f257bWpRlUxlsoikFidYwdu1Z2bs1i0X1NnH15G30uruKDFwY0NwbEcpNEIwE1j+WxYVAdE45P3W31zNcRBz+e3Tzvnb5eN49Lp+evk19/ne3nruKv5bDktWZOOqGNcd/eyuj6CPEEkIix5N8LWVHx9oHROGO+XMsxvd5tmzFoZ4dyzqjlnHHBu1uJlGbz4i8zadytv514Xh8m3zcPl+dgd4tm5TB4dA6DR7f3akiyqZY355dSlupxkSRJ3eqgwscgf9DOoHHdu0FjxvghHBcL2b5kI6WH2T+wt6+N+meu5cWKTzLqwsvoP2I4GRlttJYvY/tLt7Fq7mM07PpbrNHhDLn6m/TPg9alt7DsmXV7B6d1T/LW7+6h9xcup2D2jxj15sUsX9nQuet1tp891q6Bmkc+xgsbPsGIcz9E/+EjyciCePVq6lY+yaa5/8emtZXthM2dvV7nxNfeyoJvzGfQOZ+keMJU8ouKSEtrI161htqVz1D21K8pXVmxdz/Demqe+BTz3jyfIWdfStHYSeT0LiAar6Jp02YaSheyffEjlC1eslvbcPO9rHw4h5IJU8ntP5CMrIB41Rpq3pxL6WO/Zcumun30tJPj0vQKK275AHWzv8TQk2aQV5hJWLWYLfN+wYonWhnx/Uv3cb3Ozh+QdgIlJ48mQoLGV+6jssP5Cmlb8E0WNM2k3/Gn0nvIUDJ7FZGRmwWt1TRvWcqO1+5nw9MPU1O3jxjioK7XBUEmx4wfwpSivX/nNGvAQCYPePfP8fRVvGdFMu+VMMJ9v8xn9YQ2zprUxgnHJBhYFJIZQHZfqNqexuOLMvjd0zHWp2qMkxH+9oc8Sle08LEZrZxQElIQg9rKKEuXpXP3Uxksau+H4860O4Lu77lZP2bOpq+lqJN7iG/m0Se3ccUn+3Hq6YP4yeIN+yrc6Zywhq0//G8ap5xA75PGkjesiPTiLCJBQLQI4hVrqHz5RbbMWbr/yrQDlaig4qe/Jrz8AvpPGUxGdkhiyxqqnnycsufi9P/P1FxmpyQtz97LuubjyR8/jJxj+pNRkENaooW2slLqFy9i69wF1FcfER+cOi1SfCxnjoqQrFrBoy83vwe/eNbG0tvv5OrNp3HtP43jxGH5FOS0snX1Cp5+YB63zanl3B/v/yx18x/js9+o47OXHcfUUYUMHVmws1q3rYXeaQHtrh5wkPJnNTI4D5IrslnxVjdszpSIsv5nfah9vYHx57RQNCxBZjq0VsTYtjCLN+/NoqIyhf0IA3Y8XMjDS5o5dnYTg49vI79PSFo8oH5jGnXr0ylbkMn6+bHdRrOr4xJfnsvzc2JMvKKRY45NkN4SpXpFBqvuyWXFG5HUvecSabz1X71JfqKOMdPayM2F1s0ZbHw0l9efgjEdvc8SUTb9qjcPv9TEmPOaKRkXJyc/hPooVatilL+YzfIno7v3tZvHs/bJAl5oaqZkQit9hiXI7ZUkLRGheVOMra9k8taD2Wyrav/euvV9tovWRXk8dUuEiRc3M2BYgvyhiZ3LU8YDMvf4CTi5PsaOVshOj1Dx+rv7OoaV6ZSXQtFwqFkZ2+OXRQK2/7k3j5XXM3F2M0XHJMjIDmhcn8HGubks/VuEof+xr8/zndRDX0dwcOPZ7fPeyet1+7h0cv46/fXX2X7uKhll5S29SXy0jnHvayW/MLlzydhEkt1Xl0+Sf2wrRf32PkVa/zb677KcapieQXvfOg/2eX3YfN88TJ6D3al180aejxdQVJRPv14ZZGXFyEyPQCJBU10j27ZUsmZtFVUtR/Nv6EmSdGQIRg0e4Hd0SdI+Bfkt/OymNl66JZc/pahK5FBypN9fZ0UGnMitf7iQE+sXc/0VD/HivpbzSpVeJzP6RydS8/WfU1HhR5MjX4TRV3+au67uR+kff8uHb92c4r1LDyPprZz48x2MLYqw4Qd9ef6Fg96S/cjkuKSW43l0ct7b57gc3pw/SZKkw4Kf0iRJ+xFwZNdnHen31znJ8iXc/lgN9BnHZWfmvbf7/LzD0PGokTWMf7qoP5GGNfzu3rKjN3gEMqc3MqIIwi1ZLJ/vR/N/cFxSy/E8Ojnv7XNcDm/OnyRJ0uGhBxdbkCQdFsLd/nPkOdLvr9NaWfCHebx89oWcfNlUxj3x9Huyv+Q7wnDnHDgRR4GA4vNmcH6/JGvufJY5W4/mSQ/JDGMs/3MaLcuz2HY0p7C7cVxSy/E8Ojnv7XNcDm/OnyRJ0uHCZVclSR1LT3DuGQk2zUvnjfd66c2ecKTfX5dEGXradM4dkWDZY/N5cct7+JEhYxB9zium+clXaGj0o8kRLchi4oVTmd6nlhfvfY1l9T3dIUmSJEmSJKWS4aMkSZIkSZIkSZKklHDZVUk6wtz8g2pmHvTTPWDZQ3n8yzMR9z/UARl22y0Uph9sqyQNf/4RK+ZWvhddkiRJkiRJknQIsPJRkiRJkiRJkiRJUkpEeroDkiRJkiRJkiRJko4Mho+SJEmSJEmSJEmSUsLwUZIkSZIkSZIkSVJKpPV0ByTp8BUwbdCx3NEvRvSdv0syb+MKrqmMc1hvqBvk8p3xQ/lwLHj375K1fHXZBh5K9Fy3JEmSJEmSJEmHtoMMHyPkFfWmpCiXPr2zKcjNICs9Qhhvo6G2gYpN21i1rpYG/2Fa0lGmtbWJ11uThISsaNt37BhJL+Hs0aczu2QEI3NyyQ5a2F5byoLSF7hz1Vts3sfzs7vbQYL1DQ0sSAsgiDEuO53cgxoRSZIkSZIkSdLRKBg1eMCBF+cEORx/9hjG5Af7OCCkrWor818sZUtzajooSYeuf1Q+prF12zrO2tRAvIOjozmT+Pppl3FuXhoBECbbaCONWCQgIKRu+5N8dd5TLN0jvOzudnv1O6Mvd40dyKTQykdJkiRJkiRJUscOsvIxSXNNDevK6ti2o4n6xlaaWxKEaen0GtCP8WP70KuwP9MmN/LES5U0HdZrDkpSCgW9mT3lEs7NSyNsWslvXrmfeyq20xBkM6JkFjdMOZXj+pzFN49bxycWr6app9pJkiRJkiRJktQFkYM6Omxi1fzVLFxWwYayWiqrm2loaqOxroGyVeuZ91o1rWFAelFfSjLfox5L0mEomj+FD/bPJAjreWrxH7mjfDsNIZBsZE3pI3x90TKqiVA89FTOyAx6rJ0kSZIkSZIkSV1xkJWPHWvZ0UB9WEjvSDo52QGWPqpbBdlc/IN/sjpSAAAUoUlEQVQv8a3psOhnP+ezzxZyxTWnc/GMYkpyQmpKN/Lk3U/xv3MqdoYw+2h3zV+qSe563ugArrv9Gq4ZFmfujd/n688n3m0zrZ6//NdTtF5wJh8Ym0PDuje49XtzeTprCjd+5RROHRKjevnr/Oy7j/NEWZKjwuE2D5Esxp4zg49fOJpJIwrpnQVN1fVs21LBovnLmTtnKa9t6+rcBRT0GcqQCIStq3hmSyO7Px1DKjcv5O+tx3FB+ghO7Z/JYxubCLu9nSRJkiRJkiRJXZPS8DG9MJucAAjjtLSk8szSwYn0G8fNt87ivKIIyUSSIBqh7/CRXPFvxRSHv+JLc2pISRQY5HDeFz5ALNFCWzSdorEn8LWb87kgfxiTsppoIp2BE6dx0xe2sOjfXmN7CtOdWF4Jz47oTd8AWqpLmb6umsbUnT4lDvl5CHI47StX8YPZfUgPINnSzI7qNqI5+Qw/vpCRE0YxpHoNn32wvovBXEBhZh4BkGzaQUV7N53cTmlDCBnpjO49gOjGdcS7vZ0kSZIkSZIkSV3TpfAxCAIIAtIyMuhT3J/x4wvJCELi2yvZ1GANjXpKlDEfOoOhK1/iK195gefWNxMbMJxP3ngp15yQzfs+NpVxTzzFslQkLUGU+MIHuPSbS6ge8j5+9ZtZTBwxnLHz53DJvy9kS98T+Z87LmT6CaOZkv0ajzek4JoH10GyoxEyggNdVjOkLZmgPiWJ4KE/D9HRJ/GFC/sQi1fyyA/+yo+eKKc6vvN8vYYcw+lnn8DIulQ9y95JPPd1E+/8t09OIZmso75H2kmSJEmSJEmS1HmdDh/Th4xk9tReu28aGYa0VG5l4YJt1Js9qgelt6zmO994iqd37Pxzonwtv/rRS5x2x5mMLR7KlAEByzal4E0aJlg6byXbkhBuWMVLG2cycWTIm88vZ3MbhBVreXldkpPH9mbYgAis6ealV4M8bh4/hA9ED7RByPzSFXx8e1tKLn+oz0Ph2EGURCG+9BV+8Vg51cl3z1e9fh0P3rau633beUIqm+pIhhDL6s2AKKzYM3SN9mNY7s5AMMjIJT+A+rC726XodiVJkiRJkiRJR63I/g85QGGSxooyXn5pE2Xu9ageFVI3fwnP7tj9b5ObSllSFUKkgEEDUvTWD1vZUdW2s8YsbGRHdQhhgsodb++fFzZRXRtCkEWvgtRc8h+S8Wb+XlvHszV1PN/YRiK1p0+BQ38ewnDnsyqSn0Ov1D0N2+sgtZXrWBdCEBvFWQNz96hHDOg/eBonx94OAyMx0nuknSRJkiRJkiRJXdPpysfWDau5dwMQBMSysug3qIjjxhZz2jm9WLlgNUvL27q4R5rUWSFl6ytp3uuvW6irD6FvjKzMVF0rTnNr+M7/t7axc8/T1n9cM05LWwikkRE70KVPD0yiqZKvrq3s+KCwlhuWLOWGlF75QB3681C1ZD1r2oYzdtjJfP+/Y9z1yFu8/HoZG3bEU7MX5S6Sda9yX/np/HtxDjMnf5zreJB7tpRTHeQzdvBZfGniGMLWRsKM7B5tJ0mSJEmSJElSV3Rpz0cAwpC2xkbKVq6jsjbJrFP6MXrqEGqfWs36phT0UDpoIU1N7S0bGrKz0C0gkrIqt3+cEwhDEskQSJJM7vJ6EggiRA946dMjxaE/D8l1L3Pz/xTzo8+NYdBJ07nhpOkQJmnYtpVli1fxyF9eYs7yptQEkWE1c169h/E5H2F2wTA+cvIX+MguL7fVLeD/lfbl+nHDId5CU0+1kyRJkiRJkiSpC7oePu6ipWIr62v6Mr4gn+GDM9iwssXqR+ltqa17PPCr5qVFyTiIi7cm4tR289aU3Wn3oWhj5X13c8m8Qcw8cwzTJ5Zw3LgShvcbwEnnDmDameOZctPtfHtefUqeZcmmZXz/6Z8xf+SpXFA8lOFZWdBWxcryV7hr+askj/0yUaC5uYaasOfaSZIkSZIkSZLUWSkNHwnbaGoOoVdAbl4mAYaPOhyE71TIBe2FdEGMrMyeiQ67LMjjm+OG8IEDrroMmV+6go9vb69i8b3Wc/PQum0Tj9+9icfvBoI0BkyYxHVfOpuLRvRm9rXTuOfvT/NWijbVDNsqePatv/LsW3u8EBTwwcJeBCTZWFNBaw+3kyRJkiRJkiSpM1K26CEAQTo52TvDgTA0dtRhImyjqSVJSEBefuZeFYpBbh+G9jlMw8fDyaEyD2Gc8tcX8u1bFrAhAdGSgYzOfe8vG8mZyDl90wiSlSys2H7AS712dztJkiRJkiRJkjpyUJWPkcx00ttaad5HBVBmcRFD8gIIk9RUN1n1qMNEki1ltSTpw+DjBtE3Uk7FO0lMwMAzJzA5vSf7175oVh++X5xHL6C1YRtfLG+gec+DwlpuWLKUG3qgfwev++chmhYhGU+2+6wK0qJEAwgTcVriqb3uXiL9eP+kmRwfhdbKhcytOsAosLvbSZIkSZIkSZK0HwcVPsYGDOG88WmUl+6grKKe6vpWWhMBaVmZ9Cvpz5iRBWQHEDbuYPWmNsNHHSaSrF60gaor+tB38ml87dIKvnN/KZVhFqPPOIObPl0CLUBGT/dzd5G0TKbn5dE3gJZkdYrLmHtCd89DhOEfvZL/GF3Gg3Pf4PnF5WxpSAIR8oeN4drrJ1MSgaZla3itKTVXjBaeyg3DoiwqW8/a+mqqkjH69zqWC8bM4v19ciG5lfuX/J31Yc+2kyRJkiRJkiSpsw56z8doVg6DR+cweHR7r4Ykm2p5c34pZW4gpsNI88KX+f2S8XxxUh6nX381p30+QZwoaUGcNfc+zUNTzuLyoT3dyyNft89DNIvRp8/g30+fwb8lEzTWNdMcyaAwN41IAIkdq/l/P1tMeYoKA4O03pw44n1cNHLv18JEJU8v+h23bturfrXb20mSJEmSJEmS1FkHFT62bt7I8/ECiory6dcrg6ysGJnpEUgkaKprZNuWStasraKqxTIaHWYS2/jjjX8k/tlZXPa+YkpyoaZ0Pc/c9yy3PhLnit/0dAePEt06D0k2PPIINzaO5ZTJx3DcqL4MLMymINHC9g2bWfz3Jfzpz6/x+o7ULUmaqHmVX7+ZwVkDhzE8t4DeadDYtI3lW5fy8MoXeKamud2K8e5uJ0mSJEmSJElSZwWjBg/w354lqVMCpg06ljv6pbF12zrO2tTAe709ZE+IZvTlrrEDmRTW8tVlG3hoH/v+SpIkSZIkSZJ00MuuSpL2FNCnYCB3ZCUJCVlSsZEf1iYO76rCIIt/HjqAM9ICCGK0s3KrJEmSJEmSJEl7MXyUpBRIT89iajpAkpYdQU93JwWiDM3JYVpsl3s5rNNUSZIkSZIkSVJ3cNlVSZIkSZIkSZIkSSkR6ekOSJIkSZIkSZIkSToyGD5KkiRJkiRJkiRJSgn3fOwhKzdu6VS70ccMTHFPJEmSJEmSJEmSpNSw8lGSJEmSJEmSJElSShg+SpIkSZIkSZIkSUoJw0dJkiRJkiRJkiRJKZGa8DHalytv/TqvPnU1Vw4OUnLKAxIbwTcfuonFz1/Pl47f5VaCHC758TdY/MI3+NWH8g/+JoNszr75K7z63L9ww6T0VPZYkiRJkiRJkiRJOmKlJHzsM3MmV41PY+sTz3FfaZiKU/assJGn71zAimRvPvTZqQyL9nSHJEmSJEmSJEmSpENf18PH2EAuu3IMvRLl3PfXdTSkoFOHgsTaRfxpQQvpY6dz9cmZdGM9pyRJkiRJkiRJknRY6nL4mDv9JD40LELrksU8vD6Zij4dGsJ6nn54OVXkctaHj2eAu2NKkiRJkiRJkiRJHepapBbkcObssfQO2nj1ybeoOIKyR4CGhct4riokY8JkLhpq7aMkSZIkSZIkSZLUkbSuNA56H8u5k9Mhvp7nFjSw390eM/ty9pUzufLsYYzql05bZQXz5zzLj/6U5Jq7P8qHelVz5+d+zo+X7p5iBtn9OOdjZ/DRWUMZ2S9G6/YKXn7sRX5xT9uB9JLC46dx7VVTmDm+N3lhE6VvruT+3z/L3a/Vk+ioafNGnlvYxAfO7c85M4v47dryjo+XJEmSJEmSJEmSjmJdCh/zJo9iYgYk16xnceV+osesEq758cf4zPGZREJItLSQKBzIrKsuZ2zJq6zcRw1mkHsM1/3kI/zz2AyCMKStuYVkvxLOuerDTB69hFXRji+bPeFMbr1uAiMzkjQ3tkF2HiOnTeErU0Yy4T/v4MYnqzsIFFtZsqiMtnNGMnT6CAbdXs6GI6y6U5IkSZIkSZIkSUqVLoSPUcZMLCErCKlbVcaGDksC05h09cV8+rhMqN/End97gP97oZKGSDbHvf8i/vv6Ezk90t6ypulMveZirhqTQVi9ntu+8wC3L6ihOS2PyZdcxPeum8jJAey75DLKuFnH0/DWS3z528/y3KZWgoKBvP8Ll/K1s3pzzpcvZMHSu7ivfN/Bae2qMkqTIxkx/Bgm5L3IhpoDHiBJkiRJkiRJkiTpqNL5PR8jeYwenk2EkNL1O4h3cGiQP4aPXtSXNFqZ/8u/8tPnK2lIAvFGlt33AN95pLbdngSFY/nIeYVEw2bm/e+9/HJ+Dc0h0FbHorvv57tzawn3txVj83p+/q0neWZTK0kgUbOF+295gD+XJglyh3PFhUV0VDyZ2LSNjXEIYv05dkjXtsiUJEmSJEmSJEmSjmRdCB8LKC6KQJhk+/Z6OlqNNP34kUzNgbBpDQ//rWaPY1tZ+MRbbGnnBJnHj2By9s52j86r373AMWzm5TlvUb6fZVCbF7/O43tWNrZsZu4zlSSIMGTqMAZ2NAqt9WytCSHIpbgo1vHFJEmSJEmSJEmSpKNY58PHIJP83ABI0NDQYd0jA4f2JScCiU3lrGzY+4j4unLW7HWKgAFD+pAVQGJTBasb22m3dgurO7o0Sbas2krdXquqJlm/eistIUQH9eOYjkofwxYaGkMIAvLyMrowYJIkSZIkSZIkSdKRrQtZWkBaFCBJosPqw4D8XllEgGRtA9Xtba/Y3EhNy97t8gr+0a6R2nbahe222+0Iamqa2t0SMl7bREMIkews8jsKH0mSeHs/y0jU6FGSJEmSJEmSJEnaly6kaXGamkMgjYz0/Wy8uL99GfclbC82TJF3+hS2G06+e1yMjIydBzc3t3V8rCRJkiRJkiRJknQU63z4mKxn244QggiFhVkd5IshtdXNJIFIfja92jswI5uCjHba1bzbrqCddkFme+12O4KCgvb7lpaXRU4AyfomahMdnSKbPgUBhG1UVjYbPkqSJEmSJEmSJEn70PnwMVHFuk0JQiIUlxSw75VLQ8rXb6chCdGSgYzK3vuItGFFDE9rp92G7TSGEB1UxIj22g0fyMi92u0qQvGoIvL3Sh8jDB3Zn4wAEpu2saGD8DHSu5DiTCCxg3WbO1xfVpIkSZIkSZIkSTqqdWHZ1VaWL99OgoB+w/q3E/C9q2XpKhY2QpA9nNln5u9x0RiTzx5LcTs9aVmymlcbIcgawYWn5u5ewRhkMv2CsQzYzx1knDCBcwbs0bmMEs6f2YcoSdYuWEt5B5li2tAihkYhWbOFN8use5QkSZIkSZIkSZL2pQvhY0jpq+soS0JszGDGp3dwZM0K7nq0kgQZTP/MJXz2pALSASIZjDz/Im6cnU+ynQAwrFnBnx6rIhFkcurnLuHakwrICIBYLidc9kFuPD+fYH95YOZQPnfzWZwxKJ0AiBYM5OIbPsBlgyMka1fzpznb2Hf2GGH4hBIKItDw2lqWte1/VCRJkiRJkiRJkqSjVYeLlu5PfMVynis7mSuLhzFjXJR5i/e1fmkbi3/zALeN/xifPu4YPvXD6/loTT11kWz65kXYPHcBz804iVn5e7ZrZeFtD3D7uI/yz2OHcu0P/5WrmlpoS8sgOxaydd5r/H3iRE7J21cPE7z51DJip87gx3+aTlN9K5HsTDKjEMarmPPDR3l4awfpZaSQ6VP7Eg2befn5tTQe9AhJkiRJkiRJkiRJR48uVD4C8c08+uQ24kE+p54+iA6KHwkbN/GrL/6Gr9/5FsvKWwhyc8hu3Mrfbr+bz/x0DXUBEMZpbd2jXf1GfvGvv+brd77J0i3NJGJR4ts38fhv7uZT311GRQf7NQI0Ln2G6744h3sXVtIYjRE017F6/kK+/6+/4aanazuoeoRI8bGcOSpCsmoFj77cjIuuSpIkSZIkSZIkSfsWjBo8oEuZWmTAidz6hws5sX4x11/xEC82daIT+RP56QMXc1qwju9e+nv+WtmVHqVKhNFXf5q7ru5H6R9/y4dv3UwqV11duXFLp9qNPmZgCnshSZIkSZIkSZIkpU7XKh+BZPkSbn+sBvqM47Iz8wg6cY7cSSM4Lg0SG0tZWt3VHqVI1jD+6aL+RBrW8Lt7y1IaPEqSJEmSJEmSJElHoi6Hj9DKgj/M4+XGdE6+bCrjYu0fFRSO5prPn8TMMXlkvpNQBuSPmsyNnx9PYdDKa4+8zqr9LKPaPQKKz5vB+f2SrLn3WeZ0tC+kJEmSJEmSJEmSJADSUnGSZPlr/OC7mZw7IkGvvgFs2TusC2K9mHbJeVx3+Xm01deyuaKJRE4+g4uySCfBluce4zsP7OhwD8ZuE2TSr20Dd/56KS/eW0br/ltIkiRJkiRJkiRJR70u7/l4wDL7MevDUzh78hCOG9mb/nlpJJsb2bJmI8/NfYk752yi8pCoeuwe7vkoSZIkSZIkSZKkI033hY/ajeGjJEmSJEmSJEmSjjSGj5IkSZIkSZIkSZJSItLTHZAkSZIkSZIkSZJ0ZDB8lCRJkiRJkiRJkpQSho+SJEmSJEmSJEmSUsLwUZIkSZIkSZIkSVJKGD5KkiRJkiRJkiRJSgnDR0mSJEmSJEmSJEkpYfgoSZIkSZIkSZIkKSUMHyVJkiRJkiRJkiSlhOGjJEmSJEmSJEmSpJQwfJQkSZIkSZIkSZKUEoaPkiRJkiRJkiRJklLC8FGSJEmSJEmSJElSShg+SpIkSZIkSZIkSUoJw0dJkiRJkiRJkiRJKWH4KEmSJEmSJEmSJCkl/j9CTRrqhY69QwAAAABJRU5ErkJggg==" /></p>
<p>That way, if your program crashes, you can raise SIGABRT and it will create a
memory dump of your program’s state. Then, you can boot up <code>gdb</code> and
inspect variables and call stacks to find out what went wrong. You can also run
the program through GDB and set breakpoints or step through code as it runs.</p>
</div>
<div id="namespaces-in-c" class="slide section level1">
<h1>Namespaces in C</h1>
<p>C unfortunately does not have proper namespaces and everyone is just trying
to not step on each others’ toes (and sometimes failing).</p>
<p>Typically, libraries just put a prefix like <code>mylibrary_init()</code> in
front of their functions, which is verbose, annoying, and far from
foolproof.</p>
<p>A little-known feature supported by all C compilers I’ve tried is
<code>-fdollars-in-identifiers</code>, which lets you use <code>$</code> inside
identifiers. This means that you can have identifiers like
<code>mylibrary$init()</code> that solve some annoying problems when generating
C code from arbitrary user code. If the user defines <code>foo_baz</code> in
file <code>thing</code> and defines <code>baz</code> in file
<code>thing_foo</code>, you get <code>thing$foo_baz</code> and
<code>thing_foo$baz</code> instead of getting a name collision.</p>
</div>
<div id="dependency-trees" class="slide section level1">
<h1>Dependency Trees</h1>
<p>One nice thing about generating C code is that files can be compiled in
parallel and can be built lazily. Tomo builds dependency trees when running a
file and compiles the necessary files.</p>
<p>This process is also <em>lazy</em>, so I avoid recompiling files when the
source files or their dependencies haven’t changed. (I also recompile if the
compiler flags have changed.)</p>
</div>
<div id="optimization" class="slide section level1">
<h1>Optimization</h1>
<p>I’ve avoided talking about optimization because it’s a <strong>huge</strong>
topic. In Tomo, I don’t do much optimization, but instead rely on the C compiler
to do most of the heavy lifting. Optimization is the slowest part of the
compiling process, so I have mostly avoided optimizing the parser and
cross-compiler part of the pipeline.</p>
</div>
</body>
</html>
|