From 52ef4b6240c6560ef93dce5451097d736a24e91f Mon Sep 17 00:00:00 2001 From: Carl Richter Date: Fri, 18 Dec 2020 16:08:48 +0100 Subject: [PATCH] feat: add 'tyclipso' theme --- .../themes/tyclipso/components/nav-footer.vue | 61 + .../tyclipso/components/nav-sidebar.vue | 238 ++++ client/themes/tyclipso/components/page.vue | 659 +++++++++++ client/themes/tyclipso/components/tabset.vue | 151 +++ client/themes/tyclipso/js/app.js | 1 + client/themes/tyclipso/scss/app.scss | 1005 +++++++++++++++++ client/themes/tyclipso/theme.yml | 51 + client/themes/tyclipso/thumbnail.png | Bin 0 -> 22355 bytes 8 files changed, 2166 insertions(+) create mode 100644 client/themes/tyclipso/components/nav-footer.vue create mode 100644 client/themes/tyclipso/components/nav-sidebar.vue create mode 100644 client/themes/tyclipso/components/page.vue create mode 100644 client/themes/tyclipso/components/tabset.vue create mode 100644 client/themes/tyclipso/js/app.js create mode 100644 client/themes/tyclipso/scss/app.scss create mode 100644 client/themes/tyclipso/theme.yml create mode 100644 client/themes/tyclipso/thumbnail.png diff --git a/client/themes/tyclipso/components/nav-footer.vue b/client/themes/tyclipso/components/nav-footer.vue new file mode 100644 index 00000000..08e44fcd --- /dev/null +++ b/client/themes/tyclipso/components/nav-footer.vue @@ -0,0 +1,61 @@ + + + + + diff --git a/client/themes/tyclipso/components/nav-sidebar.vue b/client/themes/tyclipso/components/nav-sidebar.vue new file mode 100644 index 00000000..cb5ec0b8 --- /dev/null +++ b/client/themes/tyclipso/components/nav-sidebar.vue @@ -0,0 +1,238 @@ + + + diff --git a/client/themes/tyclipso/components/page.vue b/client/themes/tyclipso/components/page.vue new file mode 100644 index 00000000..8d5b222d --- /dev/null +++ b/client/themes/tyclipso/components/page.vue @@ -0,0 +1,659 @@ + + + + + diff --git a/client/themes/tyclipso/components/tabset.vue b/client/themes/tyclipso/components/tabset.vue new file mode 100644 index 00000000..0b240c70 --- /dev/null +++ b/client/themes/tyclipso/components/tabset.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/client/themes/tyclipso/js/app.js b/client/themes/tyclipso/js/app.js new file mode 100644 index 00000000..34efb224 --- /dev/null +++ b/client/themes/tyclipso/js/app.js @@ -0,0 +1 @@ +/* THEME SPECIFIC JAVASCRIPT */ diff --git a/client/themes/tyclipso/scss/app.scss b/client/themes/tyclipso/scss/app.scss new file mode 100644 index 00000000..f49873b0 --- /dev/null +++ b/client/themes/tyclipso/scss/app.scss @@ -0,0 +1,1005 @@ +/* THEME SPECIFIC STYLES */ + +.v-main .contents { + color: mc('grey', '800'); + padding: .5rem 0 50px; + position: relative; + + > div > *:first-child { + margin-top: 0; + } + + @at-root .theme--dark & { + color: mc('grey', '300'); + } + + // --------------------------------- + // LINKS + // --------------------------------- + + a { + color: mc('blue', '700'); + + &.is-internal-link.is-invalid-page { + color: mc('red', '700'); + + @at-root .theme--dark & { + color: mc('red', '200'); + } + } + + &.is-external-link { + padding-right: 3px; + + &::after { + font-family: 'Material Design Icons', sans-serif; + font-size: 24px/1; + padding-left: 3px; + display: inline-block; + content: '\F03CC'; + color: mc('grey', '500'); + text-decoration: none; + } + } + + @at-root .theme--dark & { + color: mc('blue', '200'); + } + } + + // --------------------------------- + // HEADERS + // --------------------------------- + + h1, h2, h3, h4, h5, h6 { + position: relative; + + &:first-child { + padding-top: 0; + } + + &:hover { + .toc-anchor { + display: block; + } + } + + .toc-anchor { + display: none; + position: absolute; + right: 1rem; + bottom: .5rem; + font-size: 1.25rem; + text-decoration: none; + color: mc('grey', '500'); + } + + & + h2, & + h3, & + h4, & + h5, & + h6 { + margin-top: 8px; + } + } + + h1 { + padding: 0; + color: mc('blue', '800'); + margin-top: 2rem; + position: relative; + + @at-root .theme--dark & { + color: mc('grey', '300'); + } + + &::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 2px; + background: linear-gradient(to right, mc('theme', 'primary'), rgba(mc('theme', 'primary'), 0)); + border-radius: 3px; + + @at-root .theme--dark & { + background: linear-gradient(to right, mc('blue', '300') 0%, mc('blue', '500') 10%, rgba(mc('blue', '900'), 0) 100%); + } + + @at-root .is-rtl & { + background: linear-gradient(to left, mc('theme', 'primary'), rgba(mc('theme', 'primary'), 0)); + } + @at-root .theme--dark.is-rtl & { + background: linear-gradient(to left, mc('grey', '600'), rgba(mc('grey', '600'), 0)); + } + } + } + h2 { + margin: 1rem 0 0 0; + color: mc('grey', '800'); + position: relative; + + @at-root .theme--dark & { + color: mc('grey', '400'); + } + + &::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 1px; + background: linear-gradient(to right, mc('grey', '700'), rgba(mc('grey', '700'), 0)); + + @at-root .theme--dark & { + background: linear-gradient(to right, mc('grey', '300'), rgba(mc('grey', '700'), 0)); + } + + @at-root .is-rtl & { + background: linear-gradient(to left, mc('grey', '700'), rgba(mc('grey', '700'), 0)); + } + @at-root .theme--dark.is-rtl & { + background: linear-gradient(to left, mc('grey', '300'), rgba(mc('grey', '700'), 0)); + } + } + } + h3 { + margin: 8px 0 0 0; + color: mc('grey', '700'); + position: relative; + + @at-root .theme--dark & { + color: mc('grey', '600'); + } + + &::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 1px; + background: linear-gradient(to right, mc('grey', '500'), rgba(mc('grey', '500'), 0) 90%); + } + } + h4, h5, h6 { + font-size: 1rem; + margin: 8px 0 0 0; + color: mc('grey', '700'); + position: relative; + + @at-root .theme--dark & { + color: mc('grey', '600'); + } + + &::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 1px; + background: linear-gradient(to right, mc('grey', '500'), rgba(mc('grey', '500'), 0) 70%); + } + } + h5 { + &::after { + background: linear-gradient(to right, mc('grey', '500'), rgba(mc('grey', '500'), 0) 50%); + } + } + h6 { + &::after { + background: linear-gradient(to right, mc('grey', '500'), rgba(mc('grey', '500'), 0) 30%); + } + } + + // --------------------------------- + // PARAGRAPHS + // --------------------------------- + + p { + padding: 1rem 0 0 0; + margin: 0; + + @at-root .contents > div > p:first-child { + padding-top: 0; + } + + @at-root .v-application & { + margin-bottom: 0; + } + } + + hr { + margin: 1rem 0; + height: 1px; + border: none; + background-color: mc('grey', '400'); + + @at-root .theme--dark & { + background-color: mc('grey', '700'); + } + } + + .emoji { + height: 1.25em; + margin: 0 1px -4px; + } + + blockquote { + padding: 0 1rem 1rem 1rem; + background-color: mc('blue-grey', '50'); + border-left: 55px solid mc('blue-grey', '500'); + border-radius: .5rem; + margin: 1rem 0; + position: relative; + + @at-root .theme--dark & { + background-color: mc('blue-grey', '900'); + } + + &::before { + display: inline-block; + font: normal normal normal 24px/1 "Material Design Icons", sans-serif; + position: absolute; + margin-top: -12px; + top: 50%; + left: -38px; + color: rgba(255, 255, 255, .7); + content: "\F0757"; + } + + > p:first-child .emoji { + margin-right: .5rem; + } + + &.valign-center > p { + display: flex; + align-items: center; + } + + &.is-info { + background-color: mc('blue', '50'); + border-color: mc('blue', '300'); + color: mc('blue', '900'); + + &::before { + content: "\F02FC"; + } + + code { + background-color: mc('blue', '50'); + color: mc('blue', '800'); + } + + @at-root .theme--dark & { + background-color: mc('blue', '900'); + color: mc('blue', '50'); + border-color: mc('blue', '500'); + } + } + &.is-warning { + background-color: mc('orange', '50'); + border-color: mc('orange', '300'); + color: darken(mc('orange', '900'), 10%); + + &::before { + content: "\F0026"; + } + + code { + background-color: mc('orange', '50'); + color: mc('orange', '800'); + } + + @at-root .theme--dark & { + background-color: darken(mc('orange', '900'), 5%); + color: mc('orange', '100'); + border-color: mc('orange', '500'); + box-shadow: 0 0 2px 0 mc('grey', '900'); + } + } + &.is-danger { + background-color: mc('red', '50'); + border-color: mc('red', '300'); + color: mc('red', '900'); + + &::before { + content: "\F0159"; + } + + code { + background-color: mc('red', '50'); + color: mc('red', '800'); + } + + @at-root .theme--dark & { + background-color: mc('red', '900'); + color: mc('red', '100'); + border-color: mc('red', '500'); + } + } + &.is-success { + background-color: mc('green', '50'); + border-color: mc('green', '300'); + color: mc('green', '900'); + + &::before { + content: "\F0E1E"; + } + + code { + background-color: mc('green', '50'); + color: mc('green', '800'); + } + + @at-root .theme--dark & { + background-color: mc('green', '900'); + color: mc('green', '50'); + border-color: mc('green', '500'); + } + } + } + + // --------------------------------- + // LISTS + // --------------------------------- + + ol, ul:not(.tabset-tabs) { + padding-top: 1rem; + width: 100%; + + @at-root .is-rtl & { + padding-left: 0; + padding-right: 1rem; + } + + li > ul, li > ol { + padding-top: .5rem; + padding-left: 1rem; + + @at-root .is-rtl & { + padding-left: 0; + padding-right: 1rem; + } + } + + li + li { + margin-top: .5rem; + } + + &.links-list { + padding-left: 0; + list-style-type: none; + + @at-root .is-rtl & { + padding-right: 0; + } + + li { + background-color: mc('grey', '50'); + background-image: linear-gradient(to bottom, #FFF, mc('grey', '50')); + border-right: 1px solid mc('grey', '200'); + border-bottom: 1px solid mc('grey', '200'); + border-left: 5px solid mc('grey', '300'); + box-shadow: 0 3px 8px 0 rgba(116, 129, 141, 0.1); + padding: 1rem; + border-radius: 5px; + font-weight: 500; + + @at-root .is-rtl & { + border-left-width: 1px; + border-right-width: 5px; + } + + &:hover { + background-image: linear-gradient(to bottom, #FFF, lighten(mc('blue', '50'), 4%)); + border-left-color: mc('blue', '500'); + cursor: pointer; + + @at-root .is-rtl & { + border-left-color: mc('grey', '200'); + border-right-width: mc('blue', '500'); + } + } + + &::before { + content: ''; + display: none; + } + + > a { + display: block; + text-decoration: none; + margin: -1rem; + padding: 1rem; + + > em { + font-weight: 400; + font-style: normal; + color: mc('grey', '700'); + display: inline-block; + padding-left: .5rem; + border-left: 1px solid mc('grey', '300'); + margin-left: .5rem; + + &.is-block { + display: block; + padding-left: 0; + margin-left: 0; + border-left: none; + } + } + } + + > em { + font-weight: 400; + font-style: normal; + } + + @at-root .theme--dark & { + background-color: mc('grey', '50'); + background-image: linear-gradient(to bottom, lighten(mc('grey', '900'), 5%), mc('grey', '900')); + border-right: 1px solid mc('grey', '900'); + border-bottom: 1px solid mc('grey', '900'); + border-left: 5px solid mc('grey', '700'); + box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.1); + + @at-root .theme--dark.is-rtl & { + border-left-width: 1px; + border-right-width: 5px; + } + + &:hover { + background-image: linear-gradient(to bottom, lighten(mc('grey', '900'), 2%), darken(mc('grey', '900'), 3%)); + border-left-color: mc('indigo', '300'); + cursor: pointer; + + @at-root .theme--dark.is-rtl & { + border-left-color: mc('grey', '900'); + border-right-width: mc('indigo', '300'); + } + } + } + } + } + + &.grid-list { + margin: 1rem 0 0 0; + background-color: #FFF; + border: 1px solid mc('grey', '200'); + padding: 1px; + display: inline-block; + list-style-type: none; + + @at-root .theme--dark & { + background-color: #000; + border: 1px solid mc('grey', '800'); + } + + li { + background-color: mc('grey', '50'); + padding: .6rem 1rem; + display: block; + + &:nth-child(odd) { + background-color: mc('grey', '100'); + } + + & + li { + margin-top: 0; + } + + &::before { + content: ''; + display: none; + } + + @at-root .theme--dark & { + background-color: mc('grey', '900'); + + &:nth-child(odd) { + background-color: darken(mc('grey', '900'), 5%); + } + } + } + } + } + + ul:not(.tabset-tabs) { + list-style: none; + > li::before { + position: absolute; + left: -1.1rem; + content: '\25b8'; + color: mc('grey', '600'); + width: 1.35rem; + + @at-root .is-rtl & { + right: -1.1rem; + content: '\25C3'; + } + } + } + ol, ul:not(.tabset-tabs) { + > li { + position: relative; + > p { + display:inline-block; + vertical-align:top; + padding-top:0; + } + } + } + + // --------------------------------- + // CODE + // --------------------------------- + + code { + background-color: mc('indigo', '50'); + padding: 0 5px; + color: mc('indigo', '800'); + font-family: 'Roboto Mono', monospace; + font-weight: normal; + font-size: 1rem; + box-shadow: none; + + &::before, &::after { + display: none; + } + + @at-root .theme--dark & { + background-color: darken(mc('grey', '900'), 5%); + color: mc('indigo', '100'); + } + } + + .prismjs{ + border: none; + border-radius: 5px; + box-shadow: initial; + background-color: mc('grey', '900'); + padding: 1rem 1rem 1rem 3rem; + margin: 1rem 0; + + @at-root .theme--dark & { + background-color: darken(mc('grey', '900'), 5%); + } + + > code { + background-color: transparent; + padding: 0; + color: #FFF; + box-shadow: initial; + display: block; + font-size: .85rem; + font-family: 'Roboto Mono', monospace; + + &:after, &:before { + content: initial; + letter-spacing: initial; + } + } + } + + .diagram { + margin-top: 1rem; + svg:first-child { + direction: ltr; + } + } + + // --------------------------------- + // TASK LISTS + // --------------------------------- + + .task-list-item { + position: relative; + list-style-type: none; + + &-checkbox[disabled] { + display: none; + + & + label { + padding-left: 1.5rem; + } + + & + label::before { + position: absolute; + left: 0; + top: 2px; + content: ' '; + display: block; + width: 1.1rem; + height: 1.1rem; + background-color: #FFF; + border: 1px solid mc('grey', '400'); + border-radius: 2px; + font-weight: bold; + font-size: .8rem; + line-height: 1rem; + text-align: center; + + @at-root .theme--dark & { + background-color: mc('grey', '900'); + border-color: mc('grey', '700'); + } + } + + &[checked] + label::before { + content: '✓'; + } + } + + .contains-task-list { + padding: .5rem 0 0 1.5rem; + } + } + + // --------------------------------- + // TABLES + // --------------------------------- + + table { + margin: .5rem 1.75rem; + border-spacing: 0; + + th { + padding: .75rem; + border-bottom: 2px solid mc('grey', '500'); + color: mc('grey', '600'); + } + + td { + padding: .75rem; + } + + tr { + td { + border-bottom: 1px solid mc('grey', '200'); + } + } + } + + figure.table { + margin: 0; + + > table { + background-color: #FFF; + margin: 0; + border-collapse: collapse; + box-shadow: 0 0 5px 0 rgba(0, 0, 0, .07); + + @at-root .theme--dark & { + background-color: darken(mc('grey', '900'), 3%); + } + + td, th { + border: 1px solid mc('blue-grey', '100'); + box-shadow: inset -1px -1px 0 0 #FFF, inset 1px 0 0 #FFF; + padding: .5rem .75rem; + + @at-root .theme--dark & { + border-color: mc('grey', '700'); + box-shadow: inset -1px -1px 0 0 rgba(0,0,0, .5); + } + } + + th { + background-color: lighten(mc('blue-grey', '50'), 1%); + font-weight: 700; + color: mc('blue-grey', '700'); + + @at-root .theme--dark & { + background-color: mc('grey', '800'); + color: mc('grey', '400'); + } + } + + thead th { + border-bottom: 2px solid mc('blue-grey', '100'); + + @at-root .theme--dark & { + border-bottom: none; + } + } + + tbody th { + background-color: lighten(mc('blue-grey', '50'), 4%); + + @at-root .theme--dark & { + background-color: darken(mc('grey', '800'), 8%); + } + } + } + } + + // --------------------------------- + // IMAGES + // --------------------------------- + + img { + max-width: 100%; + + &.align-left { + float: left; + margin: 0 1rem 1rem 0; + } + &.align-right { + float: right; + margin: 0 0 1rem 1rem; + z-index: 1; + position: relative; + } + &.align-center { + display: block; + max-width: 100%; + margin: auto; + } + &.align-abstopright { + position: absolute; + top: -90px; + right: 1rem; + height: calc(90px - 32px); + width: auto; + + @at-root .is-rtl & { + left: 1rem; + right: initial; + } + } + &.decor-shadow { + box-shadow: 0 3px 8px 0 rgba(116, 129, 141, 0.1); + } + &.decor-outline { + border: 1px solid mc('grey', '400'); + } + &.uml-diagram { + margin: 1rem 0; + } + } + + figure.image { + margin: 1rem 0 0 0; + + img { + margin: 0 auto; + } + figcaption { + padding: 4px 1rem; + text-align: center; + font-size: 12px; + color: mc('grey', '700'); + background-color: mc('grey', '100'); + + @at-root .theme--dark & { + color: mc('grey', '400'); + background-color: mc('grey', '800'); + } + } + } + + figure.image-style-align-right { + float: right; + } + + figure.image-style-align-left { + float: left; + } + + // --------------------------------- + // DETAILS + // --------------------------------- + + details { + background-color: mc('grey', '50'); + margin: 1rem 2rem; + border: 1px solid mc('grey', '300'); + border-radius: 7px; + + > p { + padding-left: 0; + } + + summary { + border-radius: 7px; + background-color: mc('grey', '50'); + cursor: pointer; + height: 40px; + display: flex; + align-items: center; + padding: 0 1rem; + transition: background-color .4s ease; + + &:focus { + outline: none; + background-color: mc('grey', '100'); + } + } + + &[open] { + padding: 1rem; + + summary { + background-color: mc('grey', '100'); + border-bottom: 1px solid mc('grey', '300'); + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + margin: -1rem -1rem 1rem -1rem; + } + } + + @at-root .theme--dark & { + background-color: mc('grey', '900'); + border-color: mc('grey', '700'); + + summary { + background-color: mc('grey', '900'); + border-color: mc('grey', '700'); + } + + &[open] summary { + background-color: lighten(mc('grey', '900'), 5%); + } + } + + } + + // --------------------------------- + // HIGHLIGHTING + // --------------------------------- + + mark { + &.pen-red { + color: mc('red', '500'); + background-color: initial; + } + &.pen-green { + color: mc('green', '500'); + background-color: initial; + } + &.marker-blue { + background-color: mc('blue', '300'); + } + &.marker-yellow { + background-color: mc('yellow', '300'); + } + &.marker-pink { + background-color: mc('pink', '300'); + } + &.marker-green { + background-color: mc('green', '300'); + } + } + + .mention { + background-color: rgba(153, 0, 48, .1); + color: #990030; + + @at-root .theme--dark & { + color: mc('pink', '500'); + } + } + +} + +// --------------------------------- +// COMMENTS +// --------------------------------- + +.comments { + &-container { + border-radius: 7px; + } + + &-header { + color: #FFF; + padding: 8px 20px; + font-size: 16px; + font-weight: 500; + background-color: mc('blue-grey', '500'); + border-radius: 7px 7px 0 0; + + @at-root .theme--dark & { + background-color: lighten(mc('blue-grey', '900'), 5%); + } + } + + &-main { + background-color: mc('blue-grey', '50'); + border-radius: 0 0 7px 7px; + padding: 20px; + + @at-root .theme--dark & { + background-color: darken(mc('grey', '900'), 5%); + } + } +} + +// --------------- +// RTL FIXES +// Vuetify GH Issue: https://github.com/vuetifyjs/vuetify/issues/6317 +// --------------- + +.is-rtl { + .page-col-content.is-page-header { + @each $size, $width in $grid-breakpoints { + @media (min-width: $width) { + @for $n from 0 through 12 { + &.offset-#{$size}-#{$n} { + margin-left: 0; + margin-right: ($n / 12 * 100) * 1%; + } + } + } + } + } +} + +// --------------- +// PRINT OVERRIDES +// --------------- + +@media print { + .nav-header, + .v-navigation-drawer, + .v-btn--fab, + .page-col-sd, + .v-tooltip__content + { + display: none !important; + } + + .layout { + display: block !important; + } + + .page-col-content { + flex-basis: 100% !important; + flex-grow: 1 !important; + max-width: 100% !important; + margin-left: 0 !important; + + > .v-toolbar { + border: 1px solid mc('grey', '300') !important; + border-radius: 7px !important; + + & + .v-divider { + display: none !important; + } + } + } + + .v-main { + padding: 0 !important; + font-size: 14px; + background-color: #FFF; + } + + .v-main .contents { + color: #000; + background-color: #FFF; + + @at-root .theme--dark & { + color: #000; + } + + .prismjs{ + box-shadow: none; + background-color: #FFF; + + @at-root .theme--dark & { + background-color: #FFF; + } + + > code { + color: #000; + box-shadow: none; + text-shadow: none; + } + } + } + + .comments-container { + display: none; + } +} diff --git a/client/themes/tyclipso/theme.yml b/client/themes/tyclipso/theme.yml new file mode 100644 index 00000000..7f3f42d4 --- /dev/null +++ b/client/themes/tyclipso/theme.yml @@ -0,0 +1,51 @@ +name: Tyclipso +author: Carl Richter | Tyclipso GmbH +site: https://tyclipso.net/ +version: 1.0.0 +requirements: + minimum: '>= 2.0.0' + maximum: '< 3.0.0' +props: + sdPosition: + type: String + default: 'left' + title: Table of Contents Position + hint: Should the content sidebar be shown on the left or right. + enum: + - 'hidden' + - 'left' + - 'right' + order: 1 + icon: mdi-border-vertical + showTOC: + type: Boolean + default: true + title: Display the Table of Contents + order: 2 + showTags: + type: Boolean + default: true + title: Display the Page Tags + order: 3 + showTags: + type: Boolean + default: true + title: Display the Page Author and Date + order: 4 + showTags: + type: Boolean + default: true + title: Display the Page Rating + order: 5 + showSocialBar: + type: Boolean + default: true + title: Display the Social Links Bar + order: 6 + showEditSpeedDial: + type: Boolean + default: true + title: Display the Edit Speed Dial + hint: Shown in the lower right corner of the page. + order: 7 + diff --git a/client/themes/tyclipso/thumbnail.png b/client/themes/tyclipso/thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..489e3f836fc2c8e1313f28f7a94a55b79a1c6f6e GIT binary patch literal 22355 zcmX_nV|b-quw~2+I_TK8ZQHhO+qP{x>5hG3bZo0*+nV#;xide`d0uYRUbU-MRlQM) z@)8Je*l-{qAP7>DqRJp3pdP?uTNo(de^U7!3h)Asm8zzzrkpIdiGv-zk*R~R8NH{S zBk(>52(N&rqmhY?nJb~OnT3@-AMte;fSAzAl#f`0O^#8{QN+yBO48feOvPJX)x_Jz zgv*pzfFF+6lN;E8otdi3~nrxp>*T8hO&$yO8|X#Q$wW)Xc@i*~-z?%E6xSzc!7G9o$^`h>02g>xAKddjSrY z;s1{pc=G>eY-SIfrZaFp*wQs;KrsbbiHIn=C`$+vN{NZEGjXxA(=pRCfq+mZxh2ie zh$^9t3XDX4U=wL+$_`kIn=B5E7!N6G#wtPOWN`o%KRkOlQcP=X(aG5T>0aPhscp(4 zQ&aQU{up^r=VWC|9c@nY6}G->~ZlNdrqqM$1sakTywG_MXXL6<>~VMD`T@T)00P zfx)vN%NQR)ByRS!J2X{TTbX=KeK3=hq$_5g=EkZXl|mRJvY4xyARQZppO$30b@9E^ zd-li3%|E z79cQT9VN9~KtK?O{`-NZ(IDc0fDnR6i3+KD=3eG`1?q{VeG44-Ue)rtYX!rMMUvQu ziWPyou7V>7tNsF=n{&#Fo#u>}(e;m=2z0`cz;d!cb=2h{wMtxKB{fnIU35Z@n}`gC z3qcA?^nd>Ns^nI4GXVI@JfD}Qcp02@Uv77*d2qR%`LGv(zF{C3!o+^(AM=g+E?ys^8~dxn zE^6Q5`7-TVJJq{75^yv#pxfZx*sJwN$J94=yCT3_uS#8Z&kVTSxJwg)&ya%5v)%1U zW8#TqeGw7R&?A2QM^8N#zfK~A^g%l_9B>uUsXkT5Gm3Hn_EQr1xYtbOaBmp(nefhB z*#PA6&5Y`+up8e4VfUW{J`vCgUlZmR_9CWjs!!^BDC1nxEXZyOZh;vv#lCo+GXAcw zNI6A0dafXld)q)cvS$atn}SwioPcRVCW$J-RKGR|?l^8VYHa>K?Yd-abGX$BBI~RD z#s1B9Q|)GxUYozEzcjkpI}GLv!vQ;G+1LSw0rK4lT$t|hR*;8+){m0NZtyV>)}Lp@ zWU4ihrY|-Tk(&u;1AAo^AGKS5a5=9({SpnJ?r>Msp}y>$Mkl&&QVM8Z&sXYt9nHE% zGpSDm>|VQ)E)3M}@o_9XY3~kllQ-G}!pCUBp%r=^SUmjD8g-~GYHlEvT7`s$;XwrQ zgHt_{_kO0j+?)L6uz%ZjXHtUrZ*C`oOJ{6-EJ8n-Q*#}c*pPC3_5!Qz13wlw(tGaS zZ&@==h?Er5_3VQ5dkNh&9y!nGZXJrTZxW*YYFY$MOD@ zas}7vFURwS=qIEh5REJIy@t@MQ0?}>W5AVd0``9pC2M9_1(gS*w{GrFs?cYVsPbRO z7h?(v=@P%{$tI7J+q4fkBZ}^ATbc$gli!B0JFF$Svh!t>;j{P)V&IP?6yhux-@QJs z>y4^7CkJ=nY8(5A0ctCGBB}-Bqxi@qn5OVlCBWROw6_#m-u_Ijeu6dT(C`)O(sL~g zhYJ#~er^_6O~u0%UsPfltd-(j6_Ys1y!amQMPEf{izoZ+U4{l*v-!pk4A^_-A^JM0 zxOv*|_?UweWC@~ffDl|LdSw3t_D&PhjR){0fS%6VXnQGS3P`)y5p?e}z*wrr*uIr& zv4QJYIgkLe`0)WCQP5joKcFpB0P*SA5GRDWSB-f@l}IEc6Lg2P;*^qOt5g?=J@Uz9 zTz|_kuBF)7 z;XGY_;evrGu^g~|XF+tQaAh>C!la0N1Crf!*du;9?5|SyMBsn7!V&dEpWK76Y8O0} z%MVm2c%HcebH%#eUngYPrKq5*C=f4ge*&fxqE<%gCGvGCK0-*Vjk z^$pHo%r=qH5D`ZXonNbVPug7d`caWRBm|DpAm%=QSzZ3{W!cA^bSFe<@fdfU8HvLMuO8*obaeGxhmO2|2QRQjL%Q4`^DDRN){vtbV{ zMDe-6Md&E$<$cWNV{N$7Z4Tvn6HJj>ontv&$Xl^xaM3v#WD%8a8q}}$=baAJMtcfc zpeV90Cu)=;UyS-UrjjwOT6ZPUDJ>Ra*WV+hVQjzoj{-EuQte)S`n*&m6`ZwWs&VtP zYSHrKte3&^{);D-iYc95TLOxi!`hep$D+;I((lbsM|d6tGS;8XS&;Wo_0}?Eb_Cui z2Rsndp2nUX&oKqE7gSmfT9rS2^%=e8*8{d(Wuargq>&O$i&Yx>C6Inq)Je$Yh|XGk zd54@yEOLP{dgf7jpA&=zUusSo3ty}t%OO(lMzscvh zZ9-+%0Vx;BrQLe}N!ZX-IBhQiD=#MQa66Yl30VT$KIY2axG)zI{onnPUJsxb@~@VAi4X z3s8CL!e`G{{K}(D5EO1(bUaIDbPu9kH07bV2~fYsI-xXDWAE~=2-zWZXZs?2uuG8N%-3l z4&Hg>e&K>2#U^Rb`r9R=&C+6Dlg5NAdejH-zfr!<{G=v4tQ0bzo6%!t-NDp=VCRw< zUsL{I6TLeUmOOET?^z_wfqCqcs6on}{~c#aMsTBoU2I?!e@YE}l z#TZI{2P?69;7gvmf#=McHoT?Ueqg{|$2lJG zrB}3X^nz@MYxneYH2fs>s3S8aM9LI59w9y+gb&jBfe*HQVjZAw;uN4Jh?MOykIthY zE}?esBFapwte)+%SXYR_*@KD@7mkk=XFoFR&4BXkv*=BRo}Irem{^MepZIeezmjjj zZbHARavRHvm9Vz4*lE+RV56}Qpb(e0x$VoVg@?!&{ty0ZT{0oZ_tPgr`^yhL(Afv= zf)8S44!J6C^xC$i=H+?{nP+~$E6=ymv8zH|vd3&QL3C@%^C{G;B}(v4{VJ&r`V&5a zdDnb5uU+k)UGB?$l*?-K;Cbs}j1a)#4R}cf&kuGQ5Gw8iL50dRckl>X*=5;%k@vVO zBoSbhXv{BJOdkoVxq=~&$WFR&QyNU8l>Hncg`_6wl#re+N97)s1M!G=D)lJrocs6l zA1PjeHoWzKu2z_-^74ee&ePvtsQOq1^rAtRRQNhU$Su#6n7gC1>q_NdsUJO-U!gj6 znLpDU?FYHSB$dinwC{^H(hHcHqq_7klJ8-|4Av~}BY#Tv7+F6%HOTkvAo<#-xOrL| zg5F#>T|CcCF?u&kn(woq%Y55hRwJ$Goo%&#JiH4sF!t*_ z{F7AwflPjMLSFR^-d&f*gjHahs`&uo9K<_qZdmi9;xzh!)HJ^X$sS9y29~hP?iEWw{1J3Y;$sRMLfW{Ub&C11_|FFmc85;Ic)_g4zcRd~Inl-@ zy*897);W8Mb>5q5c~&%>)XyZ_jhk^#O%`8szS~@*;2u?5BH!siTdR_NDsQ3_>7{Cb z@SJ)wwP|+3&{Dg#*j_hK*4vB@a_ba1rT@HUy5CKxtPk_Ak&0eC_cU%oc9aPVMDDLe zxoHlW`zU1>4)nsuE~v!5pIXftJ}!?=UHo|cgkPbQ`1NPUO5!+QdPIU+$JIPn7U2I* zAzbMYkP{D<4`DAYf61_6DoUWp_Yh*E)T{F`6gXbx_X^$XDf0bR!Q*ZJ4n78h?x-Jv zEgxL>v8ckL>iPRKz0C4MO`)T-IUR$WrN*AsP|6b|ayJWCV+kZq{EI~*!_DBKa zAIhSbO1RXjp9lN^yat`XzK>l(9pfMJq~GEMMm4GUgz%emuD-);r|ovHr=8ZrS`C7) zJi9YZqlLZZ1+@>q=j zoZMo0HmDz>L>kfET%JV~O8aun8>}FdZ>kgDAOe=|eQFakW57Y*m-O}baRfro>7v@b zD&3tuE9yabUsNAjd^K(fMLoQXk2M?w^Yy`BD$yrlH>mAB)4|uM=e~N~C1Hs8lN|`$ zV#i_CenY(46<&iO>a_e*`)-HRsI-E+z z?~0i&gci&j9d-z_^++2!E1;#H|JeP?IcT%qHRKZjfMg_egC{l(|ERQr;Uo3m!t3X1 zCKS!tOME3*13ehNN;$S_$!>=pxgLZYB9}Mzcf8RCn67O4oWIf`IWI*wT|rMnaQg0^ zF(+RleYh{(vG^}}&WuprJ;m#AaI9uVG2h+z?;o(W9NT(nvbjFZI6|ub_qdiR9|OoI z_`$hGo#)c8VGcew<=5vI+A@|1>V?2#a0RI}=zQJ|UAuM{3_OYNfg-;kRH@=(C#3ls zAk}O?2YUdi#pl*JM$q+&8^{5jVIW5`X?Np$Bqjr}W)NoHAhn|o;d-y$8mwMD;cPDw z7w8Z~On#pf6~2>S{_=W0$zn_z#GK9s+N#@5HW~7#Lg~{3NBPoF+LH{#3oQB92y$muI)4bM&6Aoxo2$?KaM~S zRWZvZr|c6wjy{T>PDnC$k%V~kpY%u^!N6L**R|NcgiElXk7uvZ=6(xM36M7V-+4jC z>l?-FG(iy&ln1CK)oW~`$V(DQwo?%A3q(Ucf^hYDOO}dDlh6YP+b`BNC~+$_G4$F) z`3BVw(Tyo^JWkt@YM-5XYS=; z7#XXu!@E7E&B$X$NA8cV?evCV1D`-_Tncfq@by;z1CthaJPM9yxSufs-XN0*P!>#Z z!9s0f+$#$|$%NPS+m4^Ss2e(wK)vA;d9L+U*a+eE-L+P_^K*K&)Cal4No)aoZouaD z@ujyba<}}U3->8|$v_+#ZLrmGjwbp}&RB^Lc{#w&)3RGOSl1|MDJ zHGv5(I8N+CK|_n7G;jz7QqO1EKnuS=%wV+=9ZI|Asqe`CuM-?;ZKeM%8tk0907k?E zevh*qIPdb^wlD`5!4uj+G6)9b_{?5~=(77B!T@jKt~@Csty9gVGy0@_$#}e7HnGdq zN8dvrvv<$~a$!$DZzQO-xo*nZ^vd$^Awp6WK6V#V32MQu&{=je7Kh!xDQO?@gf4KK zz4tes-rId?211W|H4T1`sF%$+sPSqkOA^vFWls=Y47h$PMYQ>HPD4~XyznoWC;3E; ztpD18IGcv1$HT|9%+bi_a5NLRK{wn<>?9HtKSI!bE$9=d$LDUlJiIR-sXa`?0Lh@n zr7cl|&g&?47D>N95&+bG#Ef5z=E_iaMc>W99D{ZpvAOAkQ2uOE!5%#JzXr`up_&W?dp(W4zkOf`Zvn=`lz7f88R134A^hec`m^j5X2_#+UN7U{T(u`Ff={tRVyAzTw}Kcz&;JXN&5Lia0EO{*O}GR8)ba=RG+NBZ z@m0c~7byJ<4@XP9;R~}g+o#6A#!6R^i0mt)tPNf5qZbh9R|PG_ch4zv30w3Hye`iZ z)EGpyE3qC&SY1#%-gMhi%K*cahK{i6GRl{8NOL)mXNPh>o^b87Gj7%ZX_NX)Qeify zNOYgo`yqJIC@;Bzr+t)E2CgHOroe?ssr9+5ZA+aA4Ur2C3r5fa4=yH5PZ55U`xyBx zE}Jd<;o1~rzZZvgpTmFY8pzoRy5gEgS$~$vx2@4cZg{amsc5Tzu-P#JY(Qk*gDFb z3HtQtI)-iR&GEjsLp}7P!3>74B}T*EJpv;}|LhFPE-tSUq2({Lt$a?Q_Q`EmF)@`3 zAGD!Qagf(1L@_>3+?WDTN7ouM_L6U3M6vT~0G#c*PuRSA36b z^y57~7#BB8ml>9bNGh{VI2U0M+fRZ4*vTWmh z{kpJlD!>_t8hup0uX=;JRQImpJ0|qrl7ZH27#nnoZm}Lgik}DL7LTn|auB^+OYA>g z;RZv%6~HUNcEGgv{3JeFD_;FLc+RAT${vYT*!EVpLhRQIOT=+!_)&iRx!Ri_H1NK# zFkj&k7lB#h3iaJjh7sKVv*1f$Wq%iMNIv^CuT9F+@5UN4;r>TdhkSPHL>%%jQNDZ0|J1@4;Ga*ZnO zAKQ(pByv(H_ShxPU6(>pKba zDvDtd=`o?b$FICK@xpz{n*c=wTSx~T`s>zfxAs??4Ni&t=;aFF_BjxqM;@UfO!_+e zLfghyu0a^_(jtmiZ*IG=ETUA!yzpLTuQb0R1rN`yiN_qMaC$mhFJ+@&5iriaCl-Zf zw*R8CJ4z^|$6xQVyXDfgkY+hEWI?N;Mf>qo-pf-XMU4Nzt*}A^+5T>Fd4gD>;p9~k zrc&N#pSo7dN`Jl1-<|{{pj^sG1h18*kf`cOFL249;u66+h(>BptF`(1rn6+=%u~}R z0IHf%LdX~8i7<@@J5d=9EaLY$Xw>zhCf&wjQ+$qBRpJFOzDnl1#hM!<(;6E3P`h(TJQZtIp9fZ641|5R3=zuO(co5RAuG{%uK#;=zd{lE>XN4%6 z!CCqx+l22ehXZ5t$N-+xj^zFe`#Rc{bG$=jJ3st4GKAR}4SxKl6sSRQ3)a%3HQs{j{074a04Eo4&_2G(CO8*01~4 zmgqipegyig#Uo~|&&-qb+ zb;ZSw{GQ(ALjJ?lbllR5EM$EhX0z8LZ44s)LH08hg|AOJQw&VD(iPG^-D&1 zBBiFTT+$+D0mHLgboO0@OIO7~E4m!#k4v(jOk05!^y}Keke#%asb~fz?oh3p-%2w;9=sshbBZAIjh>EG6}B__N(o+!(KymUEj#I&azMSRN3XTadXM~a3q*XE;vZB zNhlZM#k=iIS#J($8l>|EknJf zY`a!q0z5cBO-0BwWwyyMvF#mOh(&G0IVI`}I4oe)_akmk7TVl| z+)LUYX-sCT-s-pRK%Iytk>m@sfIFEI$yc&E zDLlT>pYQm_+7Sz)SjL3o-X@xHCla)yo3Z5TKyuqUN%u>CNI3vPO3KKqBn=%3JJksms5maRIaIv!Fk-I<*=xdJNjv)P(p4tA4Gj zASre(SH$E)zICxJqY@8Ni-O*NQ zdt%x>mLj|KkqXK6mo=|vi{mv0CdbZfZ(!cFWbpTSpP}jqj`VH1#E<ao|-)z7Q5lv~l*xF?0|cq=krr+&c~Rn1sW6 zy>gTX!KmBtwF_|k4qHIX0vyB$KXIx0NW`JSXi+llVaaR_zyBeNdu;-GQ~>Pzl|@Eg zYLEDe9YV}3V8pNOcKu6LP#dCa8Njzijvl(l&;ambIUt*+_v{@S)}7s)3L$5U|5YrT z^4wY{*iUJL>)+`&ubu$Mx2vyqGB@cbehRwWD$rOJ2Bhv3;O9Yy?O?RePYk%7O#yqe z`f|9DLrYf=OPR_F38@jT94>QuldLLBw)j3&|F0HcQx{{j)ErUg#w_SUt)DUj`wtl2 z!R`sD0x0r*D>49J4NS}@fY2SASp|=r!j!s#!J-@W9@Wbnm9M3Ig!>efnVm|LSJqp0 zd02~!0JNFYC>u~%PhFi6S7?+u>%^a>3*A4skg}VsR{o9Vd;iX~wp?l9N94a7?1~wa z7Ts2?oUn1#klO-5d7EMNaA889xMX2RcyQazLx8UN`Tz~;l%~R;0oe31X`#cCzP{(& zeCFV4feY!?jE@qm3rxH3)SFT=1ch?nf^j$=SaoUN>l`erg(-kAsO@F-VR?;I1iga^ z6tp5S*#)ub4epCH7C7nvcR%MBnBNvt9t@z{^A}b4ix1`Of63UWvzR7$t>LKPW2t{O zCjq*SB%;Uih0|fIQ9YG7q56a6i0s$$L@VqQGgtPi$xUp~Ev7GZbf0-2>Do;LcD2Z7 zbCG<)?@L+x)zLg5k&;uJ!gscv_KUym0X|q>_$+H9xfJDk720;ClZ+-tLF?9`u6M*< z*UQ`XzDL+qiXsW^pBFz6KG1KwAIrd{Cm7&`7g#6R|x}vAY|yaBY-7&pC4ut z2OqcH(9^N-G;p}GzHdgGus})#UR#>{uVF~BppHDGq%#i$;<~*QPI>$`|H8l4IzkNh z@z4Dn3aLJ2I&2tFX`!1O#rW${-En?zb1$kJ-rb(;TTkk-g-{drZQ)MvJrC;o$=zS^ zcsQTSitRgI_Z!Z$W=bqkU~Ja;$k*5sGni_~F|3*I2bR`Hzab6sp_Uf(Xp%Azkkn^k zP#X{@xKKCY9I6sg7pR!7+*&QsQ=EhisbsrBBS#1Xlwc;6sum0{{a>pSk#0Sg9$Rjg8i4`?}5hm z|2ii6CO%;$?OcuKkl(QGyK5if?!4la?)Mpu&1RaBF;3}#;QUWYhx49uB9qf5*`xZw za^p$~M_)3SE)^-Iau6-Sn~%^X;3@*?&+kzGG7B>#Vv|7AGf;pXlf@ zU;d-ST9x=%VJ7&^>MNi5!N?p4eC7Ckj~lR4qeAdbkaYvqMrHJsOpk#O31kTQ)aJ;~ zU%QY9fZL=2t~MLx%-O~l>huTzMXjRpdz##+< z|E!0>xG$w$bl`5@Kmd$oQE4cIc4)7+_gjwbp7ES@i(yX_w^Tr&bc&%0*1H|_(xlvyMcNq@OFZA=uz{V0a#EpLA{9}zgnZH zw8u_&`^0PVMWC;yzjKsWPWoR|*1{I+dF_bbF?;8SDl%2q2AB1WG#f2oOM`0V#Kkf5 z=cE$ND6a1T;Azw4{5>R0wbV79rPw-?RXDRt4%zCcM;N7^HB%bU;=UANtw+}Y{na-_ z0y)u+bJ=+?G>I`@J{m~4Fsp)2sf-#V-Phq=KJY8atS#XAaX$s(NI45?_JBmbuX^TN zJrc=rWHZr~PLX>GnSyab?V5E_xmbx}!#e&AgmpL#5smriiO#<&(ihr*iW*8HOU6VR zY=2tE{3+VAq2ry9;#cg960>N{wjMJ;D`{nuoAV~;Nul~$aEiLd@FY!iH)5PM3&aND zcMguSXVi5MGP}m$B)nEso6PS1M&Dqf{WuYt%sL zD?%OdZ58Wq2khIZz~e={4B{gEX4a%4gM&+A85kabs(*QOH?h4-+3OEt+H%qv(s3#i z+KKcCgP_L;?hbWTj(~HY>s7}wB?18A)J!C{#a}CLYI52R8+>J$Yqk4JLV+K-X`R%)|)iI!Nu@e}7W8+XvxT&?R|Kir|A}1C*D1) z)@Q)rA*cHW>M>{Fb3G_ zd@w`xEc~o?RMqYFYxUvPx5+3r8j{<#vM-(bA=M?hn19KE+FS*qK%#C3P%j#2kb7^H zDw!=*ya=evQNXmQLIS~|=pW-Y~4v{C7VL zy(ia<{|fzU#QKNPXsXL-4My$zRKrE}iJ6qK={+@|ug~13=0yO}2w+>!E53_0sNoPo>sJ3Tuv4WLEz)NU7neRU z%XYHy`t2Ox^}Df>S2IgFOwoD{2s9mCz7_RiQzVdW9;{DGsrH(9-567akd^vKu5FTk zzO~4q{7-S&Z-rKF#CI!&iVA>OKXbZvTgkUpQQ9ftl|I#WrFS={-^_-8h;`{uFuyuz`GJXgy3SLox zIREH|JcKjYdf9cJW!P#{5T+K18E3o$-6kU|xZK$AQ>?z55_3UK@gKVCLq*0681zo- zMcQ)7zx3xuz=n$dCDG|pdI#(YUE0%SUIW?QFT*X)m>H49aQKJ zhAzHb=87-7Q2`W5S$#@aF6#h1>wXgqQW`W(0Rux_?(a(vY8G<;aPD}PAoplAx(fr& z#amZcx~(8!!eyp_m7s$RCYkhDmi54^Zo;{);*||$N{>xow{LIiMugE(U_8xF z01@WnqC(|MU=w3e_H$$z4`WFCLTk)$9Zr9%3}xc)f{||iaR>~{48cZo6suxd{Eh6} zpWSl`+Ys$aoZ>THD5G`U_)2y8-PXfd4jsVUEu=$KR394VF)Jg=RTm~`?ooWy^%hma z(pWj%yyb#+kv`0fLMzgHoCzj%En+b5TRO(wNa;39$=_45_a&;Hwm9={*cbc!TT5VI zt+KoMF8yx)Z|~)^tMW}Od)qZ=>$NL|wmO5TbO^mP8*DU{B3pVT)l#=g9V5g9%wJeZ z_g|7!hsR}o2s$iQj4Hp#QKL3KPquYt9Lnq5qO-OBtKoDd)k$1-bogQm1ELC z$YEI;^j{g80&0dj+;#ngHvVSXO*M&nrwmT>9+yQMUu2RtoAdUE=(5E?dJsMyTMK<0 z|C|$X$<3Lr_YO(Lm{8|wD|oF;?5PW91s5aM|jh26^82Es{W>4TG*ym*~pcI&XA zpr!v3RuC;yqCSY)_D3nMVwYUDI*N;Q$Q6)Fva!a0;WjFCeM_f|gIQ%}E?V6Fs2SAO zWzS0H|D7WwOwo{Gxabba7d^PvF!0$P|F0<$R8B7wktrs^r2#wPX2UXTPqnyhiGE}r zG0taIPns*L>FUtkGDF9f4b_+|k|s>*IcD};P5fz@VGDZnqt)BU(PQ}&mOswa-4kC)Y9|JnpK0X;*WXV5j>PdfN#pYWaM-`0!W!`3dx~a}Eq^!>Ct^LD;`R2=00RMsX>}_A2GR7ltp1(@26R;))qbxB;gY^eB*ZLhV8FcR7Hm-y-K33~bJ~;(FR;A)%Lxi+G$=&5S z2gM0O@??Zv_LJZ((ZLRUL&%;DEi|Q1Nt8EB$ED*j?;PCn#C@O?54YrN%zikqIp zQm(WpT%By>m*mmHlIOc4CDm_Iss^1$T@Bw2tVFpKeo; zSV7k2Bl?++@{GquL>7d2{5k>Hmq7Z(r1e8lnDaXYQWQ3+KKugi{sbp`bYz zD>0MD3sF+Z$Kmx+Z^%hzpOJH~a9Otq#g1>Fj;>$h$bilEpu}bV;Snah7IniRWFNfq zODZV;j}F$i&RxdcJN2aUo`LGi)rFZ(08>J1=zC9F{x{)`NN^t;sfYY*V~KhFYotN7 zM$&xjdz12YeIg7b>P^sbv-#APGU}87Ol(}?<&i)EGFwWT`3LEQbdz3ybkqoyl1s$y zzMZh*AZPb)=XL*4%P`|$S_(^6IjKa<;(pk&f7X?0A*G^Lzciq%K(tqv)fsNFE9{#( zxT$B1F>S#xK1>h!>T%O30_{W86D;3{WI?dsaxHg>P_ST(b%PT<^rc(d1ZGqqTJV`n zUOOd*sl1k+5URtI_9qmGbE~lc)pCBwx&%#>nU{U!iz;7yWv;e7`-gHqGYjJ+T6Bw! z52MwN*R|+r7zqxla&y!NkSg2|D0KW8OZZlT`axBmZ);r8@^3i ze35MnMLkQ#sZ*uPkSnt5gLw8=Wd}T8rNwMeks{FJ-Lz9j9lyf#u(-dfRD;S84{c&p z3CV%6?J-k~M9O}*x$=Hu#%b0Tvo|Ejk@ussjHjVEU*#Mtv6Rk@2OC7a5K|N3)#rtT zCLn5etO__K%eUj&%f`#8cO zPbuomt-f^sk;`+(BZnII?*$rr0D*#lct3<39i94lUD5$J6>kL!!eX3Z*xwQ-*5B=D za2XL0j-;rqcudmKn68K2hC|OxN0Ah@2a|Csi5>**0~i9A(Ot6isvP7s=qoc1zShp$ zgPbXwl9p4iJCl{@2jNN|%>i<3kGF4~6_xlpUp;W6hgmF*>whk1<`E!-?84_z9#3;c zS65n7>{S@I%P-sauj>ceEb1#|b5>8Hf%(T(kZ#2Gw()Wtr!W)xlY?6XJD{C#c<<9* zI%61Ij6@~vH_(O!6IimWCc!z$yNx9Wa5_a_X=TW;R8vC0uKCito6T zBAVd{PQ|BxoZMW=f>8E}h1^&@BdO;7a|1(Kg~Ba8-VQ~=h7#w)7QD4x?tg0sTUdD) zIV43_rq@h(qMQ@kgH43zJPMMTF z;teEWm;X$;PF)mb7=`%My?VTpsvrGxDDO=ElDskIX?xV2`$a_$sdIVs6`HVeJ*Oo-;H0lb6a`rA~M@kgtcyb7ktARsZ|OCTKJe zPkW1~!M@aEIk!M&xr>HKa{^{?9hz(Ds6V(_7hAvoy*La^- zHZw1hlUQKJ{zC7(meKf+!99~?>js^e9B>)+DR1Ow}|AWdz09M;q=Wg2 zFdkVQ2FuHo-!S6|^Z^tCogc!X83$za^OJ`qO#S%rIo4ZLdMTENkGytwi=^s6Z}nxx zfSMpV@h3LI{GsK`3!^u+9!6Zu<#3WbRmL0*P5IexN+P&I zHWN3b;63sivm~}fP2l{XY646Y;C z1M-lMAF~cqIPKLXxmLWrViVpP+Xvd~Tuv1t#d~b^%G$0>Tdb8!-ryDXZ7^c}4gxJb zzj2`NN+vwcl@0?0vq}bT;R=+D{E!c*T9P;2A5YSEQ42bivv(V^K&-*a^*JuP(oSu~ zFf$wt+RUZY<_@i{lD!q{lHZHb7Ayo@A~+Fp+QLyiXHp0BZgD8kf6pP~qBDhTyetoI5Z-)+A9x<8SFP-;Q|!))s$ z_LoC2Ti`CfiBtPCugiQyWSWv+(Gcv^aSXdcfB?oMN^epVQ#zoW+(jXonOH%Q8>AxE zXoE=5?tR1wwP;vb#l*R;5^V-=M?3{?X4>(AN^RXV=(_^npeQMT?450S0eR(z3bA!I zclh%t!(p*x;=58JqX40sa7Hs$Mp#{Li$rAZd=b7p-(7ynR7}o3M|t%NtIsM$;ICZ7 z?Hn^mHiz3`O?>-+q?Xl4gG^6TLBwZA9+p1RX~JR0sV&j8?ng z#G36c!SbuLKYik8=5sYv`h(k68=nwKGCd_B^zBDpCS$;-XvA!*FMITBe)5M1z7_>p8eJ7#>MBvjmYd63NzhDDq1(=9@VM; z$HR2aw)Zo{TW;|lsgX8MUo+OsYKxbPznC$oOuvdaGVOe;>*-K6c$}MV?m-hT^Ao>Y z(hps?C3w;O4IP&-T5Lsl=pfN!+d+JjH=4OZ87wOBPyn*;?UnaosAK|@KUm2%7>){FpFovFV4Uo4> zbn$Jv&F^Z*)+lPS_|~zGR7cyx-hoB7`Cz>|*Bnc^*7)ZNvIRZw`g@>qx`*@Ce8Vsj z`?f5`g)xM9rL4<9q6xkm@fff)8!+x2U~rbT_8ZP8n)6qKI;m=kr2BX%4?mn0^3;iT zK9l$SNAvLIz6K^~QVqgr+VEm`6hDSKrJ=T8Hr%R$vlM8;`*m+6u-F7#Q_H~gg{cy1 z4=-dj7K$bbYK~0TlR&xibW8p6R3ll!u_u@MHN$jdjRE+1aEegI*OE=^AxKhntm74#@$r+$Fn@@trPe|!-}N8z^# z+7C2(nYg5z%*{;JQ<+a>Z|vcV4F z7U)mz>r*miK0+W-1rluE6X1w)Lbmfzf42M^+%)DpOqKuApB*iAE)9M}Ui$En$ZxIP z3Wjw{lus2$@Wv)TxW6q(2|gCzi7mg<9?X@YIpm|S!tHoBOKY3zXuhlB%23_rJf8n6 z)MdclYnT&^QzB|zoNkRZ+_I7bfo)`VsHhusmi|^Xz~nX3IWLzssI%sec9cP|{pzun zXtr4>*b2NfO@Tzlvq>Y!e|7-c5wYU`eMEVJ%-*RqLKFMGJA`+sjZ(hAVXHK98 z)Rt%nlCN7nj1vtnXgX#M7917vqO$k{vi0U$U`gdKvAt^u11GSze!cIn(1ECGoB+%O z!A8AE9Wv4*xO~niyOF!iP!k&BGK`Yfo1_Xl0uRd$xnLp-*|;u;Vn+yY$Lud|>=+$j zc`OZhmx1~#(M>ztV6iWpC(ZzdXoo~9#gVRdhg*USHFPuEFDkebTBk(mEj*QLRH=`D zAseP7wY3i*2Bn{ee{*^FeadoZzBiBjK|a268=s!+-@owuHMRnd3Ha_Rw*M~Fu$qXR z_y~_@{%p~XjyV%ss2hO{;(N4tal?c z@H!Fy{JHj={yHtkBYp4@aeA9I6Zq}<| zlbBx#tXK0;h=%T)zl;yX3e?}}rMi~|x2;EM&WWd}5A&@HhfK#8IsLKp3qBa@_P_eY z7OGW6(XrI~lO2oPJqz7}gUp@2IF`lG(0%dm<(D6<9Z#^ywr{OJqo?*3(i%uP-;MNJ z{q!EW5b z!jd&Nj7_cx zFfXCmIBkYWJ5z5E4m14OljC<9evYts{ZA{AtKe}Kp7|Jh>0GA?HmQ!VM6xsop-$2m z>f6F{YofLDVg?ry77%Ku3x96Z8;8W#7Cn|SH$VKz|9cYZ42N`C8hexfBh9SY1(P~J zj@^h09NJG`UR7{W@E%S{%zJg`uWZ!hHpIG1LtLvcHgpL?T*q^0Q7si-JjUBCSf z&@Y%uew1CsZC*Dfy4IC>k=az-5`8zCJ1Q6i>>bj=l}KsvMy&flbtr$kMl};l!a5*y0b>fB>oyN>b;XeSXxUV zrb7I0%>QIPVJX84z|H&9Ixn&pwn{j0b9`J@Oz{JJ<;P-~SDX3O^GsE6ugXM%HY~}| z0d>4Az{D_Do?Sj7g1h2&fplU@ma{lh()(w`_7p#(9f7mD%g^><)6jFDZ{emL?&6+^6^( zJsQ-lK~kR@FF(#1?(N0A2Y~ZYY8!9;1$EaO@q{mvbdpa$kGluT{R(X2A^yMy=RUIY z>Mn7}7&N=LnL2UWTzI&p)<;TYl-%fc_>2lsKxKW9>l8;ikwI^i`Vv5I`kiJ>`E$J7 z9QM^N0Zv%|$0z6_r9{>I{`xFIZ*h*}o#P30s>QYZNAAStj}H$!Rr&ToTzL2H!6hW(QPay=zzbVLM#mNCoh0OsIILaYLkKZLWO!YsdQ1-T0U}naN?E z_hU3SzjO#oCUCqt*x2y1K14RA*)Z#+P5qTmlvlTxEX5Uu?Zubp%y%5h`Qsw+n6F@+ zt|HIiKZBHAgbi9eK%1~Fj~`W?{Q#|oxKYrIM?2MP$_e%Qc=dY+w`j6~TKqEc>6M{F z7~L=xs&$M*yz4Fa*Hefxs?O*cZ(iV<=@a|cuQP4*Lgu$kUUF={`LW-n_=wThkhGn9 zB*5mvH*LU?(s)7AC9o(AAZA|y`2VsS67szDT7nlj6=zH5NBnGp?q{5^w3{@E>*XjY zIt{xX)4=CrJDxi+6fsQVf4DyxD$&vIf9>gs#l#*{L&`3=kT3o^9<^u^Jomdi@d$>y zLqB&P$}XBos_hTXvlaTLHPW~P=@<7rhz5$kKFv1xTG%^YGS+vLb9uByQGh~0nBzZi zA4lHfP@&3MYPY#3w&FaU9Nv5xwBJg&sy*ub4Bw5Y-&2;u!TwnLOCDTZk9DaPFA7MRKpb@yHdmBYatFc)+4r;N9nHEh#aOW%8a#hoG85tWx#`NHP7@+8*_s z)-W$qJi@AmatM7{VKRCdT9_-!XJpq}y-Cma;9sG-K!z1Y>`5^0di!5FIxw6O;jG3J z@Y%6els#_g0(bAg%q6q$hPP3&*||x3n6k+JKjr z8?1FcNFf&Z8_KJM64O+uTs)y%!3<$dGs*q~$4nlvEhc+63o_NXR_k1%CKbv;Ls|Mo zycMUDdOq)rpUtoAk_4B&8?)Oac(Actz#X3{S3B$xPvxmEX~?Q8Cl)|9`KJ>?l~Lbe zK6&EzH%0S1w77V2si}8GP*l{a@k8W(i@uLTeQnTvr_jtooM@Lv__cAar>Ef$$VUGC zWy_1*GHYy`8WhlLF8*tzga~fNCG8P$Og&>#-foDlxtGO6{_Lf#2=XD8)4b!GcZe&_ zQvWJsL6PBS8mlvcKT_WJ3rX2q3xS)vv}jgHVshlZABZ*%u9jgYH(S!u2Bz!qw!6uk z_L||t1`~34;LE5{t?|2nAlF_+jX6SIhJdqY#I}`vMjE`+SRN4wE}81~o3}^z$9s<)!ese&Ty|jho5=efCmm9Z)vSxgi&NxkyS1@t$yqIDUNjpvApuW#oQX<^^YK?XW*oRGJ5URK7bO_j|;ZS{6?DUBo2c zai8}(UTiVs`e9(!f|faPn~nLt ztWHjaW1y&f5a>cmC@iithsorw{pT4uq|tA!SAKX(-{Z{lwhgLcRTZsv%0Sa$9qSoS zd_jmQ`bM5neyL}yLtuSjiUerq)uCQQwdn6MUzG(pl5GV&u9Z?9k)&y}q1~f6Hw#w# z2uAGXWbA8fdrdlYF`U=G$vEG>>pJ=@*pKf(zZ7v*S0Ng*SktKW23oIAK_ZBsZigBz zga}8m%?EkWS^u!VsF3Osb~tuI4?+01yT-liC`>iF|BSd&DVoyKHB`JCm-=_X{Q zmCGA>nP!$vW(Emu*FgtP$OkJJ%Y)7uytqpvK;19(m)_G<*<%8M3w|cri?135)4W8F zI+Z8ObSl(H&to9Hx<9!!9hJ&*xh+Q*)c0kk%j0@tXLPCG8BD`k8yG*NUz-4&$KvZAq%X&=s>xpeK9O?*m?0`=5zDzn);G7#LY=Q`CSO@ zr1JrV5b}xvBgW_YTbL|DE#`}!*l~Djx`yZt8qFCLG5!>IOd6KK3N0+k3 zqXtVi$5H+3fc($3rKN8fE}W#WVGHi1^{cy78@yN zdv3TVH^i0_^l^D3>-V&p_-;(Rd{3pY)xgyucbZ5J87ti$6*{b^y0&6cbj^GVW}T0t zwCX3p$dv+bKSEcJW*r@Vq^uvK<*4N+IcU#S%OYBcJAFv=@zL0pUiN+B>F16bXTL2T zm%oim0gFYnSVb9Ujxlho_+_-M^r{+1h(tg;tIhB#)s@aOkDYt`kz+47w_S}vkNV64 zf7vL3nbKBjjLYrGEPl0Ai$m=LIJ7&n{dU77-fZyHY_1La4iV*~PxBIpah2n)RFl{1 zQRqz29u4I66+t$h!DZRWPDEolPeUGmV=`sC(-YGx&@nMK_?U3+YENJe&*MdCV7aDL z61=$`I(g6SSXu1R72Yar`VKKJc6G1dKJR?|^)QK*P$rO^~=$(qY`&KGtq zl6k!%g-Txd`idAbYxQY>FEMgdTb?+&?ho>e=kH{Ulq{FPB zt6JNJL*_(9CiUv71vdB>3(v2CmY+qXQZ7`_H&}xh$rXe+3+3gvXR0n{)MWRJ74E}m z1YF4#RZhWU#Sldn0{JUKC;ekNr@jP(FCh=BGWZ%IxcdYOIbn211Ex6DU+`Iimyg`L zy{hk?pL})Wz_`sRY`##MmU&|_x~V67oi`{D76cE;>Ce2gbR*_Gj*}R5_URef1A;KO zmo{=?cQ2;y0&KLA zPZF~z=ib(NZ8{Y?qfB6s!c=~_nhcP?7!g6l+jlD;VS!8@LxM}^4jKxb~D_OkHd zOey$AdFZ9yrPb_5u#T;dMKf@ekj1qa3n>42O2{AuIxSng&0=rzX|;A+#>147?qCyi zeG3_g4c@7(LuZoAb&-fswO{%D{!^PiX?>> z@J|*%Tf6ekHN-1fqv+%414%8XSBXGoP&M-?x<#uvX14v5A8h}^g6m;9(Nweog9LN* zYCA(flF@8-ZuKIj7IaS3njnj-Xg&zZ=r?gGV@gxy*r=ZjQuq>YV!jX>Kj zBGVf-0Vy^N_qXXKSqreFtmNoN61DE^ZL1^d4X=`$u6CGR2u`>WCZVejxO|ApX0-<* zpvurkirSUJt7v(Efji|T5A^-FP~dSkQ|XMr6ZyyefpA&=7*D=t&S{bprlwvju2oa0 z0qD&a`ZFy{fyyD&j8B^v`6&>)8Tdgf&ZP+hQvpWD&QCBY@}7%Y=>5lZHzw~Gz`<65 z*FT8s9Bd5Vw#_Us2s*|acB0SVFTYnu6qr^@ZkwizA^e17B@ZYtvgQM24$UwiNi8I0 zvPh`L?}Sk5;K@|5&fwz}UXnmJ5&DdKioUBtQ&+~@Cf2iWvrA&hBSt1rk#fXf(x;4l zUfFgh4eQr;j#VFI;Kc|sV8bkzLdg#n#3_%OJ}hAF^fYoDzG<@C_ngKq8){_SZX*RSJ5m6{{Qx@jAV$&GD~jlq zrZaK67;5g11okpe`(e9(|EUHLn#u`Y$EWr7_#Vu_#_hO-$Gku|`PjSy20nZ_8f$a{ zYT^qDL>wagZ;5-S_+ZNRitmnRxcdNi)vU(pwK1Fb`yXFDgU^1A87Q^e;p1e_ccvNKx7XI7g5E(ieX{QZq$$Ak%D#^RE#2IB6TukUE zT;F~e;ceX&0+z@Di9iiaKlau5MGK*A3dtFN>xSKtZC)%d7We9!Am_a8 zB(^_qUnR`Ex4+-7)4fx~^Fy~Q#tS24a6j!+U+pLPI2KcPV2#Jp)YJCPs4`f(js>U@ zqh^m=fMt=bkMsyzb^UASKFI2cTTkXwkE~n$TQ(z<^)*vm(sU-Tp%(MXzIP#HTqw%G&?|ycvQ0rF)jE9o!SPAtMc53$5v8b zT39^BU&L|r`O>mjVQsV^+LGM5aj&(jBbL8Wc*onz!4xys=`B6^!tHr0ep~7AGBuQN-y0?Z%1J5UJ+bE zI#C+1rdSO%(`Ns%9{RWt{;GE7f5N_?BVU3=D`W{ervHVdtKI*)$-iwF(@Z;<5;LOv z>e5pCZfi_8FbL#7zzn9Ros7CoIX}89pvaP7%)`dTo`>-A7C>owjHyUVBx|erC4KyV zKavlG09sSwnCct~wPvdPPj}XaN^xI}KA}}zs6k)~J#-UZw?PKDa8|fx;9=wSU%+?% z+IE+gu6X~K4+uy`Sw@$O&GpbH{9moVo?%X(-!-a<^8Yf;b=|v_1PRZPC0DTMxm`Pv zd|q_hhTXsqhKM|$FP~W$mR>JksQ%F;Ms3@D_`>{S67UqyX-ji0l_&9vMAZW2RX6ZD zNP4E6znJWQgO_iHENQu8y(Mjz|FIdex+hpYZ(*J*+l*aD|jPY literal 0 HcmV?d00001