From ad65a871e5ffe8af49afb5ad5e7057ecf66f1349 Mon Sep 17 00:00:00 2001 From: Nick Graffis Date: Sat, 22 May 2021 16:39:49 -0700 Subject: [PATCH] resume with handlebars --- .gitignore | 4 + build.js | 47 + dist/assets/index.3b565527.js | 1 + dist/assets/index.4c84e427.css | 1 + dist/index.html | 292 ++ dist/resume.pdf | Bin 0 -> 257462 bytes index.html | 381 +- main.js | 1 + netlify.toml | 21 + package-lock.json | 3761 +++++++++++++++++ package.json | 32 + resume.json | 278 ++ src/basics.hbs | 16 + src/basicscont.hbs | 1 + src/education.hbs | 19 + src/github.hbs | 1 + src/helpers/index.js | 34 + src/index.hbs | 66 + src/link.hbs | 1 + src/projects.hbs | 18 + src/socials.hbs | 21 + src/stacks.hbs | 8 + src/workexperience.hbs | 20 + vite-plugin-handlebars/CHANGELOG.md | 95 + vite-plugin-handlebars/README.md | 198 + vite-plugin-handlebars/dist/context.d.ts | 2 + vite-plugin-handlebars/dist/index.d.ts | 15 + vite-plugin-handlebars/dist/index.js | 396 ++ vite-plugin-handlebars/dist/index.js.map | 1 + vite-plugin-handlebars/dist/index.module.js | 386 ++ .../dist/index.module.js.map | 1 + vite-plugin-handlebars/dist/partials.d.ts | 4 + vite-plugin-handlebars/package.json | 99 + vite.config.js | 25 + windi.config.js | 16 + 35 files changed, 5897 insertions(+), 365 deletions(-) create mode 100644 .gitignore create mode 100644 build.js create mode 100644 dist/assets/index.3b565527.js create mode 100644 dist/assets/index.4c84e427.css create mode 100644 dist/index.html create mode 100644 dist/resume.pdf create mode 100644 main.js create mode 100644 netlify.toml create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 resume.json create mode 100644 src/basics.hbs create mode 100644 src/basicscont.hbs create mode 100644 src/education.hbs create mode 100644 src/github.hbs create mode 100644 src/helpers/index.js create mode 100644 src/index.hbs create mode 100644 src/link.hbs create mode 100644 src/projects.hbs create mode 100644 src/socials.hbs create mode 100644 src/stacks.hbs create mode 100644 src/workexperience.hbs create mode 100644 vite-plugin-handlebars/CHANGELOG.md create mode 100644 vite-plugin-handlebars/README.md create mode 100644 vite-plugin-handlebars/dist/context.d.ts create mode 100644 vite-plugin-handlebars/dist/index.d.ts create mode 100644 vite-plugin-handlebars/dist/index.js create mode 100644 vite-plugin-handlebars/dist/index.js.map create mode 100644 vite-plugin-handlebars/dist/index.module.js create mode 100644 vite-plugin-handlebars/dist/index.module.js.map create mode 100644 vite-plugin-handlebars/dist/partials.d.ts create mode 100644 vite-plugin-handlebars/package.json create mode 100644 vite.config.js create mode 100644 windi.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..71dd429 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules + +# Local Netlify folder +.netlify \ No newline at end of file diff --git a/build.js b/build.js new file mode 100644 index 0000000..3aa676c --- /dev/null +++ b/build.js @@ -0,0 +1,47 @@ +const puppeteer = require('puppeteer') +const fs = require('fs-extra') +const jsdom = require("jsdom"); + +async function buildPDF(html) { + const browser = await puppeteer.launch({ headless: true }) + const page = await browser.newPage(); + console.log('Opening puppeteer...') + await page.setContent(html, { waitUntil: 'networkidle0' }) + console.log('Generating PDF...') + const pdf = await page.pdf({ + format: 'A4', + displayHeaderFooter: false, + printBackground: true, + margin: { + top: '0.4in', + bottom: '0.4in', + left: '0.4in', + right: '0.4in', + } + }) + await browser.close() + console.log('Saving file...') + fs.writeFileSync('./dist/resume.pdf', pdf) + console.log('Done') + return pdf + } + + async function buildAll() { + const html = await fs.readFile('dist/index.html', 'utf8') + const css = await fs.readFile('dist/assets/index.4c84e427.css', 'utf8') + const dom = new jsdom.JSDOM(html) + dom.window.document.querySelector("head").innerHTML += ``; + dom.window.document.querySelectorAll("a").target = '_blank' + dom.window.document.querySelectorAll("a").rel = 'noreferrer' + await fs.writeFile('dist/index.html', dom.serialize()) + const newHTML = await fs.readFile('dist/index.html', 'utf8') + await buildPDF(newHTML) + console.log('done') + } + + buildAll().catch(e => { + console.error(e) + process.exit(1) + }) \ No newline at end of file diff --git a/dist/assets/index.3b565527.js b/dist/assets/index.3b565527.js new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/dist/assets/index.3b565527.js @@ -0,0 +1 @@ + diff --git a/dist/assets/index.4c84e427.css b/dist/assets/index.4c84e427.css new file mode 100644 index 0000000..e1a98cd --- /dev/null +++ b/dist/assets/index.4c84e427.css @@ -0,0 +1 @@ +*,::after,::before{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}*{--tw-ring-inset:var(--tw-empty, );/*!*//*!*/--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}::moz-focus-inner{border-style:none;padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body{margin:0;font-family:inherit;line-height:inherit}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";line-height:1.5}a{color:inherit;text-decoration:inherit}img{border-style:solid;max-width:100%;height:auto}img,svg{display:block;vertical-align:middle}p{margin:0}ul{list-style:none;margin:0;padding:0}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgba(31,41,55,var(--tw-bg-opacity))}.rounded-full{border-radius:9999px}.rounded-sm{border-radius:.125rem}.cursor-pointer{cursor:pointer}.flex{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.grid{display:-ms-grid;display:grid}.hidden{display:none}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.items-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.justify-start{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.justify-center{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.flex-grow{-webkit-box-flex:1;-ms-flex-positive:1;-webkit-flex-grow:1;flex-grow:1}.font-bold{font-weight:700}.font-semibold{font-weight:600}.h-8{height:2rem}.h-4{height:1rem}.h-full{height:100%}.h-12{height:3rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.list-inside{list-style-position:inside}.my-4{margin-top:1rem;margin-bottom:1rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.mt-6{margin-top:1.5rem}.mb-24{margin-bottom:6rem}.ml-4{margin-left:1rem}.max-w-6xl{max-width:72rem}.object-cover{-o-object-fit:cover;object-fit:cover}.p-6{padding:1.5rem}.p-1{padding:.25rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pr-12{padding-right:3rem}.text-left{text-align:left}.text-center{text-align:center}.text-gray-800{--tw-text-opacity:1;color:rgba(31,41,55,var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgba(75,85,99,var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgba(243,244,246,var(--tw-text-opacity))}.hover\:text-fuchsia-700:hover{--tw-text-opacity:1;color:rgba(162,28,175,var(--tw-text-opacity))}.italic{font-style:italic}.underline{text-decoration:underline}.w-8{width:2rem}.w-4{width:1rem}.w-screen{width:100vw}.w-full{width:100%}.gap-8{grid-gap:2rem;gap:2rem}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.col-span-12{-ms-grid-column-span:span 12/span 12;grid-column:span 12/span 12}.col-span-2{-ms-grid-column-span:span 2/span 2;grid-column:span 2/span 2}.transition-colors{-webkit-transition-property:background-color,border-color,color,fill,stroke;-o-transition-property:background-color,border-color,color,fill,stroke;transition-property:background-color,border-color,color,fill,stroke;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);-o-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:150ms;-o-transition-duration:150ms;transition-duration:150ms}.ease-in-out{-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);-o-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{-webkit-transition-duration:150ms;-o-transition-duration:150ms;transition-duration:150ms}@media print{.print\:inline-flex{display:-webkit-inline-box;display:-ms-inline-flexbox;display:-webkit-inline-flex;display:inline-flex}.print\:hidden{display:none}} \ No newline at end of file diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..74930b5 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,292 @@ + + + + + + + + + +
+
+
+
+
+
+ +

Anthony Fu

+
+

Software Engineer

+
+ + hi@antfu.me + +
+ + + + + + + + + + +
+
+
+
+
+

+ About +

+
+

My name is Anthony Fu, a master of computer science student and a freelance software engineer. My passion for software lies with dreaming up ideas and making them come true with elegant interfaces. I take great care in the experience, architecture, and code quality of the things I build.

I am also an open-source enthusiast and maintainer. I love how collaboration and knowledge sharing happens through open-source and I am happy to see what I do could eventually feedback to the community and industry.

Outside of programming, I enjoy doing photography and traveling. I treasure the feeling when capturing wonderful moments and sharing them with people.

+
+
+

+ Projects +

+
+
+
+
+

i18n-ally

+ + + +
+

All in one i18n extension for VS Code

+
+

TypeScript

+
+
+
+
+

vue/composition-api

+ + + +
+

Vue 2 Plugin for Composition API

+
+

TypeScript

+
+
+
+
+

vueuse

+ + + +
+

Collection of essential Vue Composition API utils for Vue 2 and 3

+
+

TypeScript

+
+
+
+
+

wenyan-lang

+ + + +
+

文言文編程語言 A programming language for the ancient Chinese

+
+

TypeScript

+
+
+
+
+

type-challenges

+ + + +
+

Collection of TypeScript type challenges with online judge

+
+

TypeScript

+
+
+
+
+

icones

+ + + +
+

Icon Explorer with instant fuzzy searching

+
+

Vue

+
+
+ + More Projects... + +
+
+
+

+ Work Experience +

+
+
    +
  • +

    + Open Source + OSS Developer +

    +

    + December 31st, 2014 - + present + | Github +

    +
      +
    • Vue.js & Vite.js Core Team Member
    • +
    • Received 8000+ stars on personal projects
    • +
    • Maintaining numerous popular projects
    • +
    • Actively contribute to the Open Source community
    • +
    +
  • +
  • +

    + ByteDance Ltd. + Front-end Development Intern +

    +

    + May 31st, 2020 - + August 31st, 2020 + | Shanghai, China +

    +
      +
    • Developed a marketplace for low-code/no-code platforms with integrated documentation site, demo and coding playground.
    • +
    +
  • +
  • +

    + Foremost Groups, Inc. + Technical Consultant +

    +

    + September 30th, 2019 - + May 31st, 2020 + | Taipei, Taiwan (Remote) +

    +
      +
    +
  • +
  • +

    + Lemonapt Ltd. + Developer (Contract) +

    +

    + June 30th, 2017 - + February 28th, 2019 + | Wenzhou, China +

    +
      +
    • Developed a document template module that can generate Word and Excel files with dynamic content. Significantly reduced the cost of working time in apartments' working flow routine.
    • +
    +
  • +
  • +

    + Fastfish Ltd. + Software Engineer Intern +

    +

    + June 30th, 2016 - + August 31st, 2016 + | Hangzhou, China +

    +
      +
    • Improved back-end ASP.NET server performance by optimization SQL compounding algorithm
    • +
    +
  • +
+
+
+

+ Eductaion +

+
+
+
    +
  • +
    +

    + Computer Science, Master of Science, + National Chengchi University, Taipei +

    +

    + August 31st, 2019 - + present +

    +
    +

    Researching in Human-Computer Interaction(HCI) field

    +
  • +
  • +
    +

    + Computer Science, Bachelor of Science, + Tamkang University, New Taipei +

    +

    + August 31st, 2015 - May 31st, 2019 +

    +
    +

    +
  • +
+
+
+
+

+ Stacks +

+
+
    +
  • + Frontend + Typescript, Javascript, Vue, React, Electron +
  • +
  • + Backend + Node, MongoDB, MySQL, Serverless, Nginx, Docker +
  • +
  • + Mobile + Android, Kotlin, PWA +
  • +
  • + DevOps + Firebase, AWS, Azure, AliCloud +
  • +
  • + Languages + Python, Java, C/C++, C#, Go +
  • +
+
+
+
+ + +
Last updated at 4/22/2021, 2:58:47
+
+
+
+
+ + \ No newline at end of file diff --git a/dist/resume.pdf b/dist/resume.pdf new file mode 100644 index 0000000000000000000000000000000000000000..475178c24fb0daaed86a9097bf8eb346ea77e68c GIT binary patch literal 257462 zcmaHSXEYpd*!NmCdheo3f`}T?W7SB4kVr)Dg6O^5)df+4AUZ)rk6u^rz4s+V@2f3q z=kb5u56`#voH=vm%v^I%IWyON{mS)FQ|Sf2uz)Dh!^yp!H6melA$CWz&qOjZf{HGd zrf!Zd>^zFrE{^s#?)JPyf|@Rl7VhSjcRRIgZA=C4&Skfk6uvv~zri++4oaqOmh3!A zQX)bk!a~nPM1&-tNjwwc6B6RSTkhi29WDOI0r@4cNY*#&hp%syM1yAcU$xtqED@19rordF0jf*)-x+^pH335yU3 zzO=NlvUdA_+lr2MjxJhGrsj9&Dp`8im|MP6QMkL7jhm~crHi7Yy_2JZrGp#01d-qi z8#}kVM;ClyclVG=mgbHYcf+b#I#}I}DKb_^^o)Js(+#1Wc`QVL6Pf*jf+-{sHc4gwT8wuJyb}=_L|aKAOqUoWhDQ|_m+fGq zS7}|d_?7O)x~b{MJ@5-9{XVi+*?T(wzKU--e9W+FMWAI}hb}W*%V_sqwOgLq2B6ZA znAY=K?;eIxuO5bQ;5M@p2pG*NJe)ZlSsni3e!P>hLMJ_p#rj5Od;(IJ?c9$&f!5-t zRBhjl)aMK16J*?7=M$5jHZ?aI%apS)%-$@wgBag)O^xNUGm&Q3t9f6qq6JCJewhc$ zocqS?rO(YNs%i1o>7z`8?&vbKf-F&51y-d(J`1U-&PyA{I$nM*)RF2#+r?r(85{je zZB-@zvX_MPzx;;`P~}^mK4iW<@SKbF^e)a%{_VNh=jz-0{mq!w&y3^%_pFQg-G~)M ze?K3fi9A_cvUF43_Yk{DI_hYM$=rUchq(F2Z&!mkK~rx@Y%yOUS}*!M9nou<8b__} zdsbx<>ls!VF8z{LMzHx!mc_bdH`H)e%f)V#SnI)5D7s1mYHw<~7X5To#aZ$a|k zaN%&)X#w@-%4e)*kJZ)^Gdwc8EuUH=gf!v zl?H2Qlnh^&`Zf7u>$Tv!(OuCkC@Wu7BQu!4x*J0)?=# z>vqqh$>f7>q|EgYH4^rh9*Jd(#d@;%ZGOr6Y_oN^+{Ct0hiaQdU?$mM`K4sCCn(qi z8Tk|zg^$h157ujCBtMm79h`9WcGl8hA^&scevXa8XZ_sTViO2GKTSs5mfl`SuUuQv z2ISmGJeB?JU-D*96{=D0g@VF>OWFE9BKkA)wDXS3=D(I-Q8lzYG2~_e&K7eNcyqDr z$SSaGO7@C&n`1!LI^PB{6Mz%4KoMPLCoM%CN7pxc?*9{i2M3TIie0q2KRBIvVGw@2 zJQ9eLXM%BbmR&=r%Ux%lt+v!K?bKKLj}b+$!5VcLgW#Bb_<@`co*&HjeB3FB+$CW& zUW3ARC19qx82<-XV}Z7n-=(KxfayPCt`U6uV|+h6C31tyw}FV6B>j~?=eI{x9)uTA zw|?V{y0!hfO!v))X)85oTz$BIoN+}tMCh}PvA)BuhGv6Qu&e9QLJio}>78oI7x##i za@Xo=+_<1)xkl$!#Us2;(!O$|hah@`;H`ygi;}R5G~doVke|IbyR;M)eR2n#iGu~? zEC{my#BiV%MBO&=wAFrn@!V*K)bA*5c6%5z(Tn7G0CXSBnh>=4t)TEdjRw_I!|KhS zno_e*(SAE>ye%j{st-6CVOgMDAfBsfbwwU50OOYz1Dx9e{-32(@L}jl6=4blaG=Ei zc4)o2DYR9jI6nY`hI$ix~icc8?tX8VqAM`lp9Y}P9Rw}bmCgGNeG!Vy)3W1jt3L>o|vUq_TE z7r>E}4%ioU z21PJ=K^+M}M})BVA7|UyUBnpdXBttWTg*!3*FpgvqOpmQ7Jb2b`y0BJ{tiDuW&9M7 zz57RV_Ez60x{C79)G^!|w-`;swqoj#iy+UnDt5yg1uv(YzIY^%1)u=y9Rlucqj`b~ zLlq0I3K}K+lzUCLpZeyjMLz~nuMWNS(fATMP-#-r4R zvvtdv_x9Hb!aRTkJC2IAczX=6fD@l+uEO+ARr;7o+E@Rs&A-?$&Va?xjKGwzhrZuh zZi6tq$Hw^hCx}{NO>qXuQ?HED-rr)53%Bfu6Qt=!AM&P4W41DfN54zGvyBj%$`yi8 ztv*5OY%A{*@mL~@5cJVveU2`DdZE8}g;j|@cb&0n*y{eIMkjyoZ0H3}`hi_1s={&g zAA570JXMyiO17p2&79ar{hHT>Cps?~ZjS5sba2?O>ysR(CY;mmMH5$kF$!awlkxcX z+R>X}Pw?ZY8E-D(7@^O@1#Gu-FTZL#7$9~8%M$@5CGZu_7N`>bABafewei{EPNj}i zDq%NRFWFw|l|G}cGX8=w;%`kkY}s}9-HDu|m-2GuBi5w9zYqF-I7Sr~p$B4gm}c zuE|SRDO{@wU^G{(iU9j5loXO^2=?f#-t3CqFJ=T$TU?b!S{vMR z&ng_`g~Cm%TsHdho}RwK z(~R=Mv6!KOl?>_D)^(ru8)C#wvLZe?!Q2UYEvhVIT0l55{gD;CuQU0z7?j zY=$Xc&O4oxM70y87uSr004-Tv_u_kmQv9m61Z> zg+EuysW>-;Z2X0&Mtp0rFT#(q4|Z#rR=#vf=N+xrLCq0e3ufeqrn@SKEZOXZJZX5_ z=f{Q<*g))?b)f~5cHus#ytz`Fdt}(0bhac_ z<4A}4XNf)X`Mhq+qRY7Dv*TTN2+yN$BaLK7IU^wvo&B@i`Eqg`X=<-Xh$4ua^VU0H z^0z>MGqm5#o*X#34L7tS_Dd5D`Pgi894oEb3k3483qh4>+60Tq zaJ~ltQ4e69kf!1ftE25q0RAnkHfln)2Zq5oNQVFi0o~{{vfcdP-iaVn7R6I~vWD}6 z!Vz}}YGIA=n!JLx173y4zS%c^-*(VK;5+Qye0$Qj%;vWf+UtRA zOnP75hHn>$vD%4fJJ>kGS0=BEB@}YN)oNSc&F)WCwJ~1u1x<<{AQy_oZ5%5MGt2`= zP~@!G(^-T*f(pGE`7Chj^EKQ@pekZ?0fpRnDszDUyKA_I9kO=sBJGTD zz=BJB;%|Yh7S5IDVUr;!OeN1()Qg2yl^ z2*pP_f+U48)48LUInijYu55Og7zL2#u<-( zv6aOqx&=t@B>A%XR>XS}q5qNYa=KvMQG3#5;jbtjF<|D$<#FCl)q&2vZa(=&f3^QD zTKW76UHZb>o{s_o@RJ&5`r8Ha)9YqLNBw)Ak}{)g+~A@cbZyCqN`^3O6@Uz`jFErh>w7No`V4;R+M z$K*1hSzx0UvfWLCKWQU^3CT#W-45?Pjputm#dp>GV??%z{#NHbD-=+M*bpZ z`sq)^Z@q@9dUmD1d!z$@BImj>Z|H-w>UVZbEKPR0$F8TjLTZQiR!$9PdmeIgm!;wZ za<0w(!x;b2j=n&*0xmkvMIuykLB+^x@q&NWxK>xy1iXpsw&8c*ZzRt8ee{6ZX$9#B z_scqdYl18qN++!wh1q*18tJx^c-$lN{oxpKgWz3{on*`U9>d&HN)hIz9>aC-C&?du9U54~o7Xa3OJ2dmwor!q0u_v2h0Q zQGM~O#9w3TBBVt4tA`uA#HgAij<~w=(Kl@ZPBU9PS;qLh+nQ(Lf09S_ka&`~Qu14S zuF3ghievO|%_zo=Rw8PBB4QaXDj}-mIA%=ZyU_cIBfb0~JaNbkd$-Qd*j~5c5W&8wk8 z&_LiQ5qOS4(iZ*1!6K*tkf%`(Oa>r0s^PD|A_T5g0EO#2-al zGd(4yB^iHJ)be+=gPr)B0VfL^_P#(49&@wJmXI zIU7Pf*%NHKOz*t=)V?!v=;NUjLfwU=t7TAc#zB=rj53kY_ZS?kR%me+dWq_lMs!Vb zaaYt_Nbz24KTN$62`}IeqcS3!o7L_s=kkg0*cjal+KACGw4T7}@J3@sWlsFrZ^LW_ zl4!@|S>9^0C(`Zj;qm*ANtNXjDBv6WtO?^Zd9W^dm%e$VOVYRJWpItH(9*}j0P@rn z?!0f&1|rb*r^b;0n{aav(5(d$KKwPMWPS~cA^!_xWf2QVW`P0Q1%$?xlEAO|FXKup zfeyc)!?wVYJlVf6Umajej<aCC0r#7&*h{nC0K1pa!}sPfNGK6bhtp3f|h)Op8x; zt2lN40e4WZ!9iN1>Fm z*xM_1s`3%}#`kPd*JY#udm2~#teIYXJqYDYK}k(vKehVvc!*?^e3}npykCcoN~CQ2 z<@~7={lL!CT}WF_pN=<)4p40EG)+`ZnWx|EM0bgPWmO%J!?%RE9Sg=t$0$`OG!Sng zvmwocqT5j`IwJH>lV<(5z$ZWpcqzpE-aOq4N~E{D9@B4lBp zZgOsI%@_Sj>c2c#XD8mZbyfqKQYJ)zEA24@P<{~4?Q3bA_qMGbg{)KzrQPO(*-_@k zADk#au&x#am;)=iCz_`0QUK6a_7bZk!oBZ?Mp9x6hcVar0{MXA8NhXQAI;TAEu@VZ zZIwU8H?Qo%IF{kWBjlw`&IQZ3C;1AkybxE zJHE$bXHvh`0z*%&s7GT(?x>uC=})g_%DVe|M`M{-SAD9;9dnA5vy#tB>+y=f|w14mqoJOR^w zZcP3rR|4XI+fHt)3)@4UNb-RL#jvHv06|ULF*FI!&FLId76crX+h7EzRe}p1NCEyB z!6ob+mZL$hdu*o%hwc}a9~V7?cILEe-fM?LUp|r6(!3wB0603xx~p*D6NP1SW6KkP zOXkmf2&vmqliTunY>e1Z8l0}p^{rgsZVY($8fncghs`Fw)}DKV1|R_S!{;nl+>a(h z5G(;(1Z1H>#tAZyf-s1^fAe(Jlv*R0YtKRrr7i9ZpbqPF9N){j^gHX|jvktbZ!vC- z_+fmD(Z?WGn|;f%ZKVLeGj_`X#OH+NS|^=kmX_=bDRN2^ZQ6? zMsT57a;U!qXVc-aj6E_lPBtu8*k?BNujMNPJO}Ejt1R%!?H`VkO%X#V{R6ofj6St0 zZJNJt32veMxYnajx3Lt99URbR)$(v~WbKXSAw0w{kqUkX(RI+}TbYpb-AnagN8<7b? z1Rwqh+r|+MfqdS`Z2d9tc6D|HHXKj)wlf4^%Y!p*;K#$*lbGY6n=}Qfz|OOHdI@Vo z&9BoM%PhCR_mx+%k)j$em4 zke6M!*s`<@xcJ-v-^bv-{C(xSw4eDkLZBnCp=l;yc&(0fo@zfK;i0seyUtIa{l#@L zX?#=0Z^T6DU#u7D9vZQ9y`WVbTf6p3?+*MrIG>PW5%59iE4lWXiZ= z{5<7aE<^;;0m>U11cFWNwpENKYN#>oi7Tb~ea#e{boB|%l@#lG%KetCl z(imU$N96U8?c$;RcaDbVMbwj1Txp#g;v6MC`UPy`20=*egoL!!_6yui(xHO&Ibwa% z3tpm&*6(BWMO9=A9LZEl>Xe&pUp|E>V$$elu8|L_#&mzV@4aL;hw$tbc!11RtjMLB zcG*egEQn1)2=JV+=+ia=8KlQP_S6M%-)-w+HqEts4tBl%eWHvDXY~}>@LCS`jP&|e)U}^(~ zgY9r-$W%D)cg`5{e1)L&Io%G=^MrrQrCw^&y(Ah9^xthbGw`EjnYpXp2Ug3&`=+gS zIec*yG{n*3 z52m93T=eAk1B(h@w)Q2)Ii2u_ZH0d%Ha*(l5AfEm%j^* zjdN}kEq+^!-g+W8%`Dr(G`2>;TYa6i@m(MCIt4Uc-sIK!MG)?9hF2WMG^fE9-buP_ z`|87fsl_3|MA0+qFKUz8Z30!wR^$_1$I6X~CHh*H=?tZh4qtv(V0$hfSdxjk1KD?q zhT;m?LD9~rm$Fe`g~+-CuU`2JZ?;~KRz=bC1+fabR@=8&L=PZLyZsAmg$ER#XPpAE z!>HIN{-oFwuW59SC{Ab~L(b(Mj|mBSP(|{s^m{O~AcMZtB~yS8^mmv-<(vtCkAluL z#_m81+Yzy-8}KwTU|ytMClcnPSCbP|9sw-;y_f{PCJ*m<9{UP?d5T_TSGDJQx$5%s zYa;E}*5j7E2ETe=zRbnq^4wL!H?4FA)CeUOn$^7|+bk*L+g}>qH@+aYisBCyg%=Jb z5!}l70Th4u&IhRcFD;&`Y|vc~?zfd6PRWj=xt)YI%ljVc4dQlcun0WLu76XQ-tY4O zp;xGtDnC}X^etji8((UW6!zEnCa&24pVUDgIPw#?iGO`6Qn=v+_jeHc^boz}vn3x; zm(*4Qnqtk9lMkd8Zg$y!xoFC}S6)qRTxwj=3MzZ#K`)z24wjn-`&)%v5aI0uoj@?~ zDe%#IxqCqH+p!K%R64;^3>mgy|00co0J?&ME!4ROSQA8J4101$F;LSNOpY{vkoVMa^eP}XQU}ZlZSC zg{+UKOuyMQCmBudz|e$swgvFe(9h;5#e$_Yf50=b+=!8PfU5}{*qJ(2dJ4-*N#BF{P64i`Z4p)oET4vVdjaOe+EA)I)_QDI@qy|xF|u}H&o^lX=I z!>7%!CBM|B|uO$N2(3_!dwcV4sTU#*X@TiD75?e!#iBvF0TJQ#IHf2}eqs zOY|DZr)Ry{_O|NR$kP{mn)9EgS--QHmP0nz(_r`_THfq|SmT#;#D@$+ty`s2rCS-l z*4Uv9*37|oqZV%}44&4y;a2h!{jt%>bR7r*Dd!O;Z};3ITlF4fvE-|0G&ZMA&7IR0 zke!WuO!bAI{Ux=&T_=QJs^hlS0Y4l`)_|hi4+g4=o-rqZ8*RAWof&@>X8OZvM1EBD zbotu#gG;(WUX&2~>NoYH32x3ok!05G6l*b!HV(VBXU$mm^6}Kfa2-kuYB}YGJG{!t zKGjX+mT50wzA^ij;u#BBFQaf$NO>Z;rDsbU5Crf>Azthve6TP?TGu-a&`7zYvstHv zeVvMoS1{+yYW-c+vnHQ~u=xI>I=eeRmz2pOpywDd26TPu4#e=DAU*>32>^Kj$`sYu zKe`&pAxBB6Gz!bb)*S=*|1zw7^#pke{oOy#rt*_x+$&0`@%9^M$!JS&PV%aQ!^>GR zUTF1(tw8H29d%%T?$pj7<97_pPeZL2drUyyOOd~b`x5ty8gZg<04{DVC7h*nbyu&_ z|~)Fa@Ot8e_*N4+g%L|WLJ#I<-0@Q^HnMbOuP|C zZX{L)>6Qb1gZ;YF6J!)mPGbonzNfmLKd_n&&aTk~1f|FX5S=x6=No zHNWBw^uV7!U1h>pB37*CKsN*VEA^+YW$r^H^E}z;GY=wAE9FM)TR5WH{oZ8KlbYSl zBy9FU`nUT$6D8-+nkz)XE%CfYJes8q=mSW00Q@F7HEQ{XEbr%nf@nncXWzpt!S@)k zR1?Jta6+sV2nctfc83f70`~2*N)}PTMHsLD_?g%YV=BXzK%X+6CJViaH)9 zN59}rnPZ-GONa4e2$;+)BZzo*3eg&feMy{f^7?aRzA<%)Y`1~lg8Y!6l^Pk8lodh= zdTFO*eq4DyE~yD(^W%Bf@`=`9dhfJsrbUBgG4c~}{VnV7hdM@dza4y60yw?RD(&sY zDX8(f2|)LMFnm!Ga{NIY`r!0bQ`ThKdi>c!u{EC_#x^w9U5q5k&1^y0BEy?Bg*@&L zodVlSalvyFu2V-DblKKfd1oWg8=9MDp5P zSG#NqeO>Qul!`miE{ylr9MO*O!bvQ+hk;UE z1NZ=txee42^#=ixW53~#ju9qbzyHO29MG@|9RJvNKTqISP>l`uZdLZ( zN-A#ZSVZgT@#Zxiq&)}dCKQbrZeezVbml~L@Cg5$cxkeW(Di{{ zNYmI-cYJCpf`Ia?^m{L!2fSbA+QQe8_&PBn4jxxf#3~^{b;sstEjy=QB@tZsIr9uhBD zndhRA!P|NllHiV-JXy7yDVoWb`$7~14_>lG$@>hwt38!;Y${%b`82?d3b&1tjCpYn zqZGJ7umwDwHENqI<=eZzz^&5i0%iU|+E|(8QXJ|b?|s^vwK+>^!*-)8y36sSXL?KE z`EGvU(ZonyZOctRzJoO83cA1CpjZLBlRWjnuq|fWhulLN`)|gI69!~=cb8x;0(>vF z(VH8*HcGJ~YXTHp1CAtE(F;3>47b~)k%@^~EzRvb2%`hu_mFcq)je~yt#y3Dazlrn z3=kG!7f}tU86oTP!x<0JuztQ#Bpoh@jBlLKcnG*LOhlR+Rq733+Xn=*w_^uD)j&a>ixM=CDH?4GY}{IT!n@~JNZ z(473LKGmb5$EABQv)6Z8l=Ief@?>p%uAyrKJG9=^&&d(z(v`>UC&neBI0O_7Wm?I)@P1;`(w{2Lnrf$qGP|kPZXo>RPo1>qDAoS}o>lhx;MqSf8RXHx=f!K%d zE-x@#0QDab?!hW2z=rC3hJyA0$=3&!SjP{vI%|MR2-_rtv@jTVDmly~JvTMm;Zcmn zKiA@L@^#n+K~;AQ;63X` zFopv1Hj(_l{j_f0yToH2wy0XKzGXlMyU^%cYM51f-NjzpRRK^%NE7(lcKj zIr_G@(PK0UA-{WY*bH5O@X8HGH>|3nRvNtZYVvWOe0o*|_#yV_=pa#nom#$}4#gGw zo*=RS1<|^K?f{fN-upypV!jgZDl>bRj!BMCoEah*sb4tVI@=aU|M**Yfew4B)Eph znknjmLj34g|1@Gco&rmIN}{?ukAuf~!y6X%tDW3^SM~&AeAb189{T+ez}4I9pB(}; zuS=!!K|so5kG1$rUq7yjpKRMQfHV z-wyl(nRqRkOy|z;!9&I=s`lHpEr6L%$b?HX84f3ei4TTPUH;rsSxQ!kV4qLm^!Evp zb(sgydIq~1J;6Fs>y5GYYboPA}-ezW-O1VdW6!dH-H8RpTM~RuT7@HnLoye14q8t@%P?Rp0h-s~c<*Po(e&hfiBbAO4nPnvK#?a-*`ZA$lAJnBT= zKnbJK#rjApSI$}%1+^y*-5;A62sdCV+{VO)GrONgaF=o!emAg9 z7&>T6cAItf=1g&xuDy)C{d+vY)#7TvN^Nt>{TF5@yb*ybnl>CvqDIkR;Uy5;;Mo10 zo@C^!E@p<6>NEn-Oo3AHJCfgW-dI@sfInsj9B86z8e^y$Qc0O|}N8{oyj)?wo`W^YHVG+%$NEu?@6JjNll%^pRKkEMq@WtR@V zdDLe1W;uj6Uov(qGjLxCM@k*}d^x|IQP*TaqK`A~S-_ozGQbNt!sd6`I%?$mEJWz@ z==M=J?V|Kp)4e%fCZ_tjXxFYY>OAEX--R(bwZZ2UUPNuk_qc@Mk5C-0aSFH%A8O8% zeTs>rO7WNfU$rt$3!Y6x@49w)qiFUol!D58pBwMq>sLmFu1#+-Z28#Z2k~@K8H}9M zoe5@In9NT42Cw;N24$$+DPr7lcVWZDdjz6C_B}|F? zwg3p~WY~(Lgfmc1LI6NT3?d zN$EK#moDO+xYL!MGaiEYDr_y83YG6Q820CR>8hNsw$F~Z%1BlbGU+e+xi z*Ap`zK$#G4o=fGBmLfEuLrl?*_!|fWPabXxgWqXS0-?t#X> z+DA72d4eC!!k#v>2jczXE=kryxILQ*KY=%gmwZvTFggWd_H{z2M+G>hBkI#Qm=ki- z4bhhy><0_{vk?9T*`Fjy&FnEme%Uasg=oD}IMP-~f&ZJgJcy(e38pdBojljUG4bw)d3Bq}M6s%2i!DP)V$ zW+sa5oz|P$%HQf3kxW}u7E&btP(N=TCfr#+=I#@JaKWYl*>G`pbMf2Z|QfEXa4^|5LnxzO`eXy{mU)WSMWy)*ick`40r_kl|F2U9Vo>iyJh@T&RIuOUUDD8h9o1n4Qm;vZg zkpj!j8>+Wf(*R6}S!aq!RPjTP0zAh^?zu+mDaIDjB8SB}{FUWdW(j=;kRwhWA0t#& zw;JJpq_?lStitbgx97Dqw5S^P01Bf|!vKi-R0~|QqJUn}D|7^vy(Lyqr(B`2kW821 zaY-CP@ z{d){ixb8i_9GrKY#+oV7K@njn<*sq-*OT(QulnzQ;~K+FJIz(16V{AQ^Qj^DZY|pu z?Q+ofB3lnXZjte!q^=qvRa{IK34P0x3MqR|iGO}MmQLqZe||U%R9_xNW=}%ml_kGd znoQi0ySrOIc8dMY1k&igOppB_ea`vG1^Vveixiiwgufq59sXLc^3ZiKAL|s5(`QMy z`aHlDrXE>u@`DSKYqNh&u=BH0)XIB9w!tbd$zt;LSIqWc(UA}|_m z4)U8Zjgy!H_B$Ajyqizk0P|-LgRh{E@PC+iE#&BhatKY)+i6(Re-20B9qgKfV>q0f z3HC4buVX_&{5u)%(w}3>72zJ)onrN(l+s>lpGxF@@ki+teB;Fbhbh!|Pl8V9tJr-em3nmp>FlSg zP{Me?3tQ;&@r<+(Qk`Jz@QKW<3;70b#b}`}63mIc!L!2o+&!X%75|LBcY=6{)3rC- z=g4GLy})PY3xi2e@VqH|2g>Z9%lE`RFb*Sh=a6F&j7Dy3>nBvplKIA z1klWXV0)qfqSya0?02sX2{FF)bN+%ch3Np2+rXY5!tl?xpFZa>O2~F#oXitRfX3CP zzaJR!uY2lwq=K~l*4)Ue&+hmiLTb1xFFVvqla0LgPhi*hERO7=ywHOSm3ag`;&$>h zL=eQ-dmm$kR58FAFf1c9Om6I2pDtJR=dxjOwC&Ko{4ujBT2|DZ?%eFp??42cV1y|G z?3)=3zoIt{()WXh@LlbOO>lj>!7Is^`gP7@{l@IY)Voh5pF2srdW$wsrx_X(gs7o% z0^eoI?uzoY8s|lmU`RzCR1hU}2Sd zh0jsw3_^)jZ-HsI3Rb|labB5*A`U@=B8Na6?$>a$qcb})QdWUZ2)Y3d3cUP| z#F&+54!HH43;HD5f2}1+udr-~sOpYWsx$?;+MtF;QK0r#gMoG5^n16CMt@GRu*SK$CN2W7ojlB30XZ2%%6pQEw#~lw+HLF0*Y#2Hie`GwtK?u?Jr2) zDYAskCLwOUa$;ycV_|Wa*i4uPCe`~U?{Fh^s{xKiW2k`A(IQ2-(Oe2TJu+AKC#6!x zL`EBc%~SZGP^)whBKYkT(O5q0m#>$SJc(x{iCJhp?TTgSEQFN}K#C4bH>O=-D%EWoUF}*?^dX2~6u{n<)a}WZ%X$_w%@n|>#4yjeVTZTgvL$nC;Gj=mlf7!Z#duMn3<78 zv(7fkxKuhN^)uBczj;FEYRK?)^H-ItKYqhbf}$_5jlS7wlvPFt35a@VX};H?P!D(_ z!>VnfoXKla9Jz^5zkF~Un;>AgU8pWt10_^&OP&yGI3=zugkW#wLNHbptC0 z%9T+FSQ)lTh&q@I#)j(s(}sJID}*zBPE0$-4zS@M2=IF_fB;e7WP0ibRcV_jmi*nJ z$9_~R>3Scc9JXNn!iEAM#v<11-zf!Gs8?v*wZQ!67UG62Nua@gkG5~`n$vIdR;`cPpsT)3T4pH>&N9(;&%*T? zPmt5B^OPk1#XXv7=i6DI;q8y&S+}1I{9Eob5D2zBX0cO}pMPNLP;Zx$`+&m9Y?hVx zH)|9SRSO+F_40Yco?d%s{=q=1E>RE_YWpST_%xYt9YFi zM_y*lT5dVO!7iQp>xj}elT&d{`>D?}7$7C+*9eC0t=tnFhBF}c%?#}83DliH==bqX zIoFLRsmVg~{nGuM31`nhSmjzeNd^%la!&EOsE9XYdv+#lO{XsX^#SH-hLD(0bZaU z34w_XTORHKS99p2KcpgDcm#{g*2wqKMVVs$aYneN;J3k8m3D~O%UD|NYz3NV0}0^X z^W>5oW@S@I7@Q;6hs{g>jE7}bYkOEX*;i}mA6??6fSGjYbPiGWF9N<}cadorE0mVCi|+xr$nXR~RG5tGTLy`MkP;(Q)kH=+TV2sEi&Qfq`*kvXfm%OD)cr zF4#CqA6R@TsH(ee>7A6ATn^aYUhz39Iw58!Z`-Xma9|Eto*J#P;km_n5;|Hk*}0hs zq_|bkRgZY&iYLBkGn5GII4WQp-Cy5A%7esiej0Q-(f4u2+T1FlZNr%3I`p;3^A zfPdL#uB{&9%Mxye0y8ngjlvXU!pw|2Un-P{yU;Jt$h&v z3oXnp{#jNMVM-tH#z_`e`%ZbLuYo9*-BhTF8t0(a%yr)C2Xb&xX@SgTfr=}b0btA> zmDgN#RdREM&m1v>*a1- zZvGJxJDQrPohp62>)cw)SUV>aItcTr{$XM6t_31fj#e#4vXDXP2%2v(|j?!3Q<*V+xdl%#lJSaS1H4ze5T+xwUNE$2`(s z^f2S*O2C*!hRVMO-X3M2UJV43sqWR0R4W;4V)B zGZBXOgF1L>{1C>Y^Nj#rol5Pbx9 zH0KuPBNmYXi;^TJVcP=oQmVpHclD1%dc;A^f@>l`e$O(tJC;%Ib%QU4$*ul9K^6LFH&4F*?C|2zDA*OA0PCQiXrH^G_avDOyu&!m$ zMSq9ZwBMkSCW^)1BXeq<2NHJLBv=1K(OCvG*@a=4O%P;A2vPzgl#p)8(V)^;NQ_Xr zyT@p0Md?OBQ7MrWMoCMTG!i2OMsG0oe*1pz|GRUZbI0`%$So3j>3raacZxH*liQH; zP{Bg)+?nb>#VA@{D-i>*G<;H%R8F8BHSI@N09VN*b^bVkwKL8y1oRK9dS?UqKVo{> zk^D)$v>I{y;%9*ambWic0{*GT=XK%=EK7lc78NXa!V&P8JK}6v(&Kx|Qttp6d!k<0 z1&!z_kj5nNRZD=I)h6tP2yG>fn02>p$c+Ou89Y8#;N|Ds*F4tc_`J{Cr!;N}yo}O> zowo^Z$-^>%hoW{FdnNXlGShp1g4cKY_LvA=XB0Xc`nzb7cp3eF7bbKK0dA1R91!A* z{PxbMt*!A|H2;|uaog=FrE9;;vGx96nMJvkJvlr#UsQDXxp(1 z)J%{4kRf%0$PT~(lFJ$AYi&qhC{;(}Lh~DnJ#ZnjnZB$eINXQCi%F3}!kpM01>e)x zzAe1V$PXbk=AbXWvsoZ6F0SPfeQ?9uIf2))5?4!BQ}9z>pLTH0==td!8?)Eyh`o10 zezX|ymW@1aXTX`EsEu{M^|Ta^5@F#iS78Q|-Ibcwn~PCk^mstB*o}UTM?a{doM`{> z#xMX@12KIm^QVR|kVlNB*<`4`4#8EG;0_2PD3Q zRb>NjxJVpex5@rNxf2+#p-X2YIOgfSL5D_Jn5wr35A^6detC|YiV@%j9ku?_Cw2@g z)qv&aoA1?rD`RO^5Qpqrl4>=_1{o&P|>7TPvGo%e<;_$QM z>4|WS8s%KM@Vde13_DE|$&QMzUDrBakamxzRplurX}&IM$EwBfs>2{eM>{NJVrqHr zY=05Dc(-omx9HFFkl`7*lx5$9`V9Ag3GESu!LM{xhGX&DoY6NX*$aDM!m><1tasXB zXkJ~1`86`&vw3(!kpeB9;mO{qNK;$lW9tV#bhie?AJXkI=|6TA?$CP9mqq4PYCKpx z+6?Pz>rMK#?!M?Y*G1-_HCIVL?eo1Z{)2D+_a>%K&R>W2G%g&JtHmpEzG3C5SG^41 z6kH@f#EAAcFPukeV44?}ZIxfUu<$>;$P_fxC=}!*pOW)NQXDxh+-3HJjsFoM-9WWJ zT=}(&uD+c9hJl>{G%=oHi!^~BNfU)Ux`CJAy7%h`f|2*EEQCgp>IY8Ofi_wnFrNII z3KeLF=f~|WuCsAhRad$l!KkZR5tnXCjsK@s8d*d&E&r!`ki+%If%hGLV+>XhrF;KM zQ(}$VAD`oc@hN&LUra;m9oHUyDn0n#Mw7B|rOJ^1+%53&V8PwrRF(_GN-rMMme*J{ zDlpdcqi0-ST4y(c9Vi|{t8A`y9V}c}9#9ag>LsnjHtRuE3%gGl~3H?z_nQsy86u@h0 z(F%JzMHJ0F8uH_ex$R5kSZG)_krc%nHS~i|=nsro8GfrS(gpESHKy=#p1tMN)4lep zxztGG8AApg>w|;#Ut^G84#O0vR6%cx$?y?_6MGw!>^EgorJNg`P~i-!Op2qK8--f8 zdDX2l@-fyj4Hy0&Zybq6{VA+$`c9Zw4R_mFTS7Cwiou{?jj z+i<@yOij!gCyy^!+2N~bS7Qty1ybGua#B(Zb}sCJ&DRj;;2qN_&n*t67v9y)Q1m&8A@MZB&#p57^^l9 z!eP~7;U4|@V#vW1bk=V;f&@S;`F$f|Fa)82f0y>;KS{pk@yYi4{{WkDpNkW2XQKcf zQu4bv#wW|lV5`2JnWDeJZVOs9CjY%>Mt-L%t?S=Aa0AlkO4M&tJY+K=oZ4#P@23~e z|KhDs*Zp%#&dDA=+#PSVDIJejq{+ykTR%kWZ7T?@ys`cLh{iLmV8iile6Z;*<>1jT z&wL#D^YXQ6)-mnQCzfM~DMrw|kzlkAw;?DAjnK-(sZE7H`}dDk6dZ2L8%Jh!6v}%u z`m1cUYQz1hxhLf*tD|viVu<*N9JT5em;?U&!AdgFkA+vOwBp@qfO8Fhw+J9*9g&0| z1E5K~7ir6`U~1v%9fXmvAU;Iss>&nBPw9s`HCO=$q0GyjpTW>xiFQN83spv%L?#Q0@0Sbd&(D77GyrX0 z+pbgIq-f*sQ_K-KaVvaSS(B8<&AI^jnUs@1*0cN<*9QSzCduhsbFOoZ9WGzX=iMd` zDh823zJET5%8{A9pO?!k!`ef4HVSkoC9r`DhkW+J=_xISK3K6m;hPzf{XNwtX&r}V z36zQ)hWCBfAPOXnL&%tns(#&vO1YRM^8a=GrjV{29ncFhhQk89`&Y8yrs?(af{&-G zJ+Y4CVTNZWYpA_JqIrA@Kqmq15yadcbnA>o4(MEkPa@%uYB|+H7s-l`@Z=@o;)LZ~ zKxMOGedk<{UiEF|XL^wD)pON_+XZV@@#Q_h@JWgf(l7MSTln&Pm}9}xXZHv(__C9~ zixyt!y)v_jjHEb!HQAunu{FPr?zxpo;$08&~BxppzKfSJ4e1e7nJXg5jIJgoz3)G+iWQg=|L>R}`V*@A$bo&F(q_E$bkroyVFD)~Q!-KrH4 z)@6kc>5yL|@q1IBM+uEjzob@SV<$eSjt$-eQdM87LM;k&hK|w`HYy?gMdzx)NK|4c zYT?vW*c7z5a9;B};>x}aN5(#uynlNVu@mwAM8&K7<*Qg<_Emrgu~B4xcM$$Gl4vzd_E0cV=LxxjRJ;7FB?HyFVAV!#+K+~^ zK@#&6eYAp>aoU@;9?=W06&&v!;v}24S&$@Vrcn>5IrTxzj~N>wQj6nu`nksr-|c3n zcb+nu?KC=nWtL@>$su)>-I!w~xo%7qI!EkrlsIujv#7YyhGPfsv0_emLO|!m#St1E{Yapha!Z3c$Bz z5phgVO1$;3!3FRWB99@VB z>5^xKPs!PH0F*`moB_vIHK9nS*>*85@y%E}bM@1`b(rJSQJJ8cQ)nSnZDM&dSF&iA zj1W(8GXGYXwzBP{)7I&l8R~#D6#xTo6pdGGbiVpep*wJ zmdfMRa4;#JSOjLoC9M~|shen9cRf5tdJ^41!)I23A344tmai8l&>6=POBzS@jh_X- z>O}U{fH|3Q=h2Gi-K@-l_Os0jpS1gfsch=V1S`Z(_Id5!l_#;+Av#&@9kUqh){GNV z93ko6tHMRdAG$y5Uyy}pNh5mghUIf5J5L(^C|0?Kxz7Be@Lqv5MvOX3Z~cH;mRm=uHU2zRoK`&P-Wu7Ku-Y2;=c^-gI7rNNGyB{QKodp3dBAl z2_gV5^#5Stg`r9K#{#7LnxF*ZEBcp(7gl>qXddC1gM+7+XD%HtF1I`zfKeTwKy@)p zgJ7enlHZOH`W2vbP+j3Y)|}!=u!p*LJ~mh^0`_Uhp+)^U?Le&_pR|iXMc@n*$4uUU zz^%{C&r$G;5Mzq3>_u!aGg(;&=vD`R|5HW`Wje?e2{UwWCqFLX8m%vitegiQS8c5j zV~i7X#5o}s(a|Oto}FLry< zKCdJGi3fwV!Vi>({8FZ@8Kbi~{~FyTBc0}8`?Ga_;iM|Q2BdeKkeGbiq?#M0QcmnobzM0IC(1UN zTw5@uLd0Ts{s8cNC;?q{IvZ(r+O;hmp(A~ChAxpnK`3Lg_orFrHSZN}A}&A#5`qEW zd*8R2tFA?1fYLScUI!o*EJEK=l|65IBcfH>Ln=*_XH1 zuKu1mS5s56t>Y1^t?0A|D-rT0Om{{9mC>G9rpc)=RIu0f$j|a;%hU&2x7t}&Nd6-E zAvu?HoK;L>RZvMt())O>S-~4Q0s*-#$urcR&K zavW82gC=<}^rwa7&)2&f^|=swO|5cB{Lgn%VZ*pb$4_~v6AuC3!{@>$ry+9`b ze@{lt+USr9|6N5Nb2$|opUhH`4w$|$?LSICCft6zTrC=aAP&y~*cDVeJmF_G3l|cm2&=C8qDsHL`CO*p zvVqCng#!5fjbA6TDzx(^6_Sz2{g8?INg|$nSO7$aRPNS`f$DPV%NT6^{qk9D4LEA! z8gJNo`fX|0qoILvMv>b*y<|0>sr5-$zc`revnGwTM= z!++N6y|Ojszw{j;-{N5wb9v+}P%AH(E^Hfk>i2C>iT^9-y}ow<4IqlRMj5vq5Q$Bx zAoe;j%c}^DaJ3q_XVi)@fGGf%kDtIT%kPBczv-`df*iF+hUU_O7OARZ`wVP$hWqWFf`fhKu^9AGaEka_`d?t62v-{!Mx+JX5IGEd1bZ z)hI_GiZPsq;H-4KH{bO6+d^30S8Yf1AM&=7*`(*QBe8(05Gld=i#>8@EZGWL0H4=l z_}FMQp(RUwUzg+&mp17c;M;8zmVkIQ9JQ|a@tbJlilRj-H4QJ2Cs25zD+5+C01^0N zMJTPZl|r7!|B~yhWb%;6?t=^q%hcB2i+JRf6s|||7bq4mXJcdJxv8@3uG=JPmsUdu)J8Ga_;rqEuBOv7e| zeJ7~9SdB4UM`x=p?lT@S%g)BuV-EOgga?-4u7HJT)krncU-H2KLtkBMOD6AnL@OksebTy z<`BLRmeh~f|IkWXZOcyBKY{>gCYaXm3>@?p(T0F8)^S9++ex^&9m31B`5<^0@i{7Q z`WVeg`irYv>ct@NISs{+%cJ!9^(+#2XdXZC{)Gxn9S`Nbaejocd3aXgW$NYdZ||4+ zSG zd5e59SuTgIw_739sy*d8xB&V^^?7rdx^J9n`s@9?fbKk&Mpks=xT^^6jI-%5SJqo( ze&Ub0gJKTfaCM2j&sfbM>84kCW4)>QzMh8Jjjtq1{MBT7!b9`R-e^7prX%Nm%29#y z?ShcfE}(q>y81pkYc3Gn0INA}b~nF}DQZrI@3uGiaUR%9%id=F_ftRR zVhpW}zuH4gC_15i=LTLV65m2zgx3sbp)SX34HlZoDvw3OE9o8poq;bnbBQO2M(V!^ zFueoxK7|jhr2QORf$D+B{_V}!I4!10^}2f=qZY1F3)$u zH@(U-Mbu|0+Swu_43z14jot}4M5*u%cW~CE+ppa^p3D_X)2MnX|9FY6f z-e=?avGCP~@TaTj<9PdM%{e9+8S0TY-d;r;_();iPjpWygUNE5Ar+uMA361z1p)I^ z{w;c`8&9BZo;f5qZP`#PV)5`Hrr>l)7R4!sSgFv9xac`H5TZQ_`&6_X3fyV#@9#u> zZ0?1DPS5wJFmOt{Sh0TGuNWnn#$Qj^D-KPNA@l7p7Xp3Sm24!|R#rD0# z20)m3CF-wq$9M63-xAr!+Llz1N?R{8Df+{WYpZ}f{G-EGh#k}H2Ns{dP`loWiF^hDSvmx|u;nXbwiR|^z-i-<*VyQR)+ z^%hPQ>k}Ww?QMkgKFDoL!l=hz1-xWCHMW#&yznLX)8Y~~X`%tx*qOZt;qm&u zBHr^Kehw|F+r>zqx%zSwK3$67?D?`l!D>$NZwioIr*hz1;Hq z&W$>-6L;-3{z7Ju3xZ=%?QO;{*d|^{Lr6cXXiN&kw0W&_fV@WfB{Ow9Lir2Z8!|g@ zhLw*V&J0JSAlVQ<3Pb(~bAf-yrtQ4nlr1buHy$R3e>Z#MrKrDX!>sp}XDfzv-HxFi zUejLWNck2_`Cg}z`gmuyi48Keezd=kl4H$d{ygJCobiF;f*T;E`AG2f`Kj}k2fMl3CG$WsTpU~j$uPy?bT&~ zEc^OkdX&Tokw32FF!!JkILLdkM~u)5sE1!WC*m*WG?*)$d6d_2q7r*!xirSmWm4dj zdaLDr-HiX~X;rY^_u~y=O55nYTC$tpTQ`IwF8)6ouaZe0Gz+9MRX}#L8&?)?`gGiy z>;t6>61tQM7%2*l&dy0p<@NgT->X72c5CibkzkVWJ!d`g3x3~HfoSMImwMPj=?jwQ z(9ei80m9$jSvntpIO4wobD(w^xo~Jv`2?-PPJ|K@yXpoWavTi={g}g{*$d{H_X8w4 zpHS{{bp~etGU6>n(Bo&)g}zm@YG^7uWxDeDm0FY20gmF|f^&?Qzn*dBsJz#>W=vV| zLuh+7dsMj+T^sBEXj#H&95htBx?!y>_V6x+VU`WJ*z!G=%xq=z>`Nr~WaQc&5UdrR z=luzLJ<1nx|KN5{kDHfpYe9bq8ccOWWj5m()Xhb3KmLxZbD-8$Qk@~`Gw&9-hVr_w zn0>V}-oiiRgbV9=kR0jceD3G2ELbA-@5XF&IwVQDuE2KH$f%GTJWznxo5v;0tC0 z7t?4KVutBs3&Q9`=nF+uGHF(9A+!nmm$RFw7Q7lBkqDmDQ@?33z28DgVyR;L$(^lf3d^pm2t>!w??)n|rvTFo)>_I7cJ@_MvyEuWcD>IQ#!x1bnx8g!#@I>81~+*v-g_tj!PJ7s|(d&o;ReCbE~n=fPO zWh#&+QKB`nxUHXXME+e|MPz_&h&=C8#zuZAGq2r((4eVH@@&M5W5<|Y7D_7Gz@4ck zDx`OI;%tm}G4tnL0dbT{#V%$ID1@hnaAlEP;on|+3y$Mb`9_l{pt**~JImuIHDkcZ zp)>J-Z7sNqt6fK#iQa?ANv8y$JQ9Uu?04TgwWst!si~ib32)+Q7{QZRxITP1$)IuNzT0$q#nLTm~_n= zqDz!@!@Cm8yfI5fQ#9fcHlTHtk&t7E#7*W18NWWP=s5>L+y4e0g}QS0G4a2#O5`B9 za>2}LML9N7_NOdXU`P^Hee1T-r63Mwj>RYMi_SqbY-p$s6V{oFJ9-?%pY7Q9=4>@v zqU1fQ2`!nKI8jOd_n1c{-WU;yaABEwnN;T!8c%J*B2h=PsbYpswl%xK{_$(h@GTA~ zEqQ$43eyC##6pa$j=RpEhq0OqqX_00f10}y%AwY)Z@wR`=(+SLxclsTQ-F1oVBAbS z?ahAM{PO2>>A|Utr^D$NYpV*wCMF>m{8Y*9Xz&`>8&ZN<+B}*% zJDcQ^;+yj&GI2tVSPVHB1>2bFA2f5$DC)|_@S<7!Aa#+fX_u~SGUxlMNm|%HQo+9@ zj2a}l7gdTF)8HO!wrh})?p!&~VFL|MQ1W;h2YBPvJoLXFPETJsD9@E_L2%BHealyE&p>AX_g6 z)RNJJ{Z*GYsfv{uqg9pS>D-$^sn;+&QVYlTE#$%tN9%+a>kg061sc=gn_jdwBtj*8 zZ)0w$N)3!Ct}^+vUl;IWOk%O_A-qJV@Ex4d{nO5)>AAOw=vN-?=81qgxCh=<@KF68 zSgW`%qDWIne&ZV1I$akvX>M@dZ$Hx9a?S62_if<0ZXVrZue`j|#y1|?M5VayD_tBX z)x$Jdd~SLnndPA`n4ZKgENYBMcm*U8X)pn+B?Cl zk%!hwZ^ML|v5^W@q3bOTTe77EiD7O>jroCpFTq)=raJ5pwtkC}@^+NhVuCs5$qMFD z40wIx7)rj)c|g$x3OQS&qs<<r$WSz zzQ4p9@U~BL{Y8E4S@U1yzFQs|RZJy;VgQU8!sp1JzVjpAu!iV=m$P=7Y@G=9u`DcR z1xAf{LTXKY;&Eu-XrTj$GvUMUf?5`*+8te*nIW=6wS z0}q~$G(cd4UR*+BQO5^djz(xMoMqKOe5A;`h7nMp99O_&u+J(*`nHY_LPh9hEF3;# z{A!d0h)ajO0xHKTg?Nux)Ct*usSWTyn4o@79RuuYv=^e`AA@@^uz1DZTp(zxYi#n# zU0G(AUWGFL!q2+z?YSG^%p%?CErh;BC|y(hgk2PhJ`ZL1 zzdBGlJczAgcj_>w>+uw!AVAOsAuIKHW+G)GFSPd;gOEcVL@a`tsBu+N6N!qfBI*z| z1|g~ox=B7q83XW+2d7}LYbu=l4h@hS%|R$y^6oA{1=v)5pqiMH4LC6Z=%t-pnP)`Vn1XfnR= zk2%?NqNn+fM{p~VUyeaHsYPB!8|(vCbN0T4oy~SZ+g8^IO<6MbM>bohtwhB1E3l2+ zY$1*58e&Ey3=CWghGp_F53&2t6>;I=%>Z1~YMFp|71bVC*aiW`+#>Hm@I~j)^G>u) z{6RJ!&tnJySI;fzXz%4^eVw=6EO1>vAJ9GYzW1+p8rlPdy_+c>trhjLC#$F|YRL%3i->$q17k{XqF~q#r+Fis|VzvZz7qc8XHt(}2getQ&_4>gS4%dxBfV8v&E8OO;-h})-o%WVk(;w_tJV+4_-|$qCo?uvl`ZzG6h}YmvMwabDgLi zcy+XY&vZNo9p3o=4lyoONYLbz}hxR>=#obX+UxhZw8nqk_f&iBG z*aMGt9m~wfIH2owXK1N|Fr|{zG@V;Dn@c|y=Ag`bfx7KAI)`(=gaH>z>-YoK_g5N2 z&{>wh2&XFp3-q1XN3+J*T2YRGIMEzS<_HA)`vy@_9V>2p2o6mneYKpwEDS`Mi~VR< z(~P=F;L>CzGDyU$@dP(^=D!TY zFcN-Z*m%hUVlklgn^|S zGAhW6=cDj+i4#nd@AR$Md`<2mNVg?uXDN!QTKPJm$cjoW1&Z;un2T9BD;mlg%cyQ8 zVHBQ+XkgY{b=OJ3y3<=Z(rTopnAGd;XI_Y!fegsQpL;rA+2xpD`C;685VM(o7QXz! z(sZ`e%-5P%Dm1<{OKnzZ(H(kY)tdQOrZr*T$xv{AZ!Mn~$$lUHkc0kmUm7I-+O_;_ zu_g&^;}MdBFTKTeHA9iKARy0+*js9FguJi$V{VgAMUVkaMhi^y(g~pke|Hy#a}%^j z`{a`~$I$VbAjF`^A0Ayc09p zIf!J=@W{wP`iDGf*0*iQrvci zeYcSZ%&dVSfI=C4=4k1wiPNqkk<5J$spxvfPrbL!4NG%a zaXT2`!ve!rCI<0_fTCM+NpbfgZ5QQ^0AutHelo~wM&dCr_GdGJI?fSQM!aXB9#fuBoa$u^PB| z2zHWx)~{I<{un#5E{X+R`K?buu6#5a$(=vuNRY>~*At8PL~kO0=xgP)7_8}e&iB@E z#Xgr=*^!jZ`1s3SG^EB_Mp-;Rc8g|>~fl)%9}0_1<(;lR^oY1@;&Gnh;@9Ac|GnQRKH?n z2?`L}H@sldE(N1&Tq>)_X^&JyS$k=FNkD&4SBMchURsAgG+NwtYAt#xF>mfm;&Lmk zDq!qOnvI=-tOFl-IWruDAy=9?FTc@GZ*jg0-fQ6Lxdj`Ms*F}#V()-;Cv*Rqe)aJ# z*bOm{;hJHcPkkF+=9igW8!eWyRB^Y0X46|q;*;AEEM2GWwyUFqT5fp^%Xk=lP_FkT z@rs$#QAyj<=g8<-<}LIPDj_CEwudz+tvn%K|FG_L4f1u~gf61*>^YzN9WhgM6#VuH_{tUY`lm{EnJzcC1O)%6<)!e;bq;$>Tw)7x~u=F%zoZ%&EAcpf|0ZuHi zS6>a7ED<=0KDC>QeR|yiqt&A%*Ae;PnssZXXpM_KVVw`p7@JXKRPdWGE!=^9b4`SqY*) zY1ev?je%QHBTKM4?iq*B<(v&8loA?Nqy7wQW)m+=0xb4`fUe5JPCMQaKYAs2)H}}zZ^cAEgghDEx9Br(C;Yh*atSOR@A!@b$^KrLdO%1ZXlBZ3lKqL zCr?IjDFjppY(SNKN*RoQ#y+P_;2>F&tAD|&^X+O|~lZO=^%S0^Hr_7rqSZ^*~JR^6-0nWG~>Mxq;jLmKzhQx*fF zbw7yZHeoQZ_x{q^fWc3LOrT^W^u@W%*D<~&KFJP^0Av$KX`>1tAYj1)`9t^XL0>R~ zD#;iH;go+fq2GAR)zt6kx~UejVu`l(u2R&IwF3S+f`z&~$5EVekS^ip5Kg0mFEpwe ztjra!_TwMW%U`H-Q~h#?&xw1O;@C$l7ttJ=J-TA0OWqSMG4baikHE!J?;N2l3eu4{ zxY8d3m9R@-Y&B)u3jXouB!V44G{PaY>fwzh>w%DbgeSh>40lP~et|bQxOnVAfE=bM zI5A#9cm7s^Htg9M6lZ>c(=G}s$qcQ*jqme^4|#@Q!vGOzUfho+rs`}k8GxugftXI- zd7$@YeRqdcnCrT&x39*sUtqbswx#SZ6M25A;LRL3Z45+aBW$pR(G7-ccO`Q)Xt8q+ z`?my{a>TAAVkDQ_7O^QfPRn+WQHpFrLGx#JWIYBxB7!ehU7)F)FV5(2&^bb-%0;{e zwb5G6lUL47{xfed1tplW%9AO11U_f_n$v^8;X0iPGm};L6Hch5q|I-5_=swxae#+| zBNCPTob~4E+IJ14@2pX~Yd+1$>GPEK$BG|!Q8!N%>ye&u{{=!AXHyqM<2wsA>>_r& zcR^1zI#{Q%^`8x$YpTIv0FbkEqesx zzaJ6JHAK-xDwS`)3{;&0Ci=m@0EQLVOYj-I17N@{cbSsy+zRg`)xf)_^x>9Kg7>4T zVe@{Z@>1itZ?4?(4v_q9UjoYzp0N%f0`7V+%TTxgLG;~E;^xU1VC`1nI6%W@WG@sT z@~E|z)aUuJow6_aZEmR~hQb>=8v%WeGycYYtFgh#!tU_Px@+V9Ps?w7Ua#wuWt=Q| zHEN;9eTq-x$4>P}*mQiZW-v`&nFDh${$AKxwQ`Z2io_NqR=0+(p%fx+K~hDDBTfnH zO?0|lS>m$^W&Sl7w}Gl`$r2YL`;Dyt`b)KD!Yz_N)OWMv{h8IPC?e=cg1%Oguxm&# zZMQAazkCN(5KvXHOo1Pt{Nytp8KLq=c_orGf zf7ud16UOfxx3j_*h*16H7b}yBufs(8EQ$we?kv9hP{1hP6JgrmQ|}=)9C!HsVM-)C zzrjd4K07W)e&Pmv_QR(JaXyo%`zO}zRBxyDx;4w|t~LUm(ms+AS+c(mdPq7#H%h4e zC_p4iAHKc$=g0-@qBP&b&@VBZ`=EUJeOpxGb^641up{gUwn-avg=pEj?M73p7!?h6KLN!I0nR+jyh@hE3u#n)5p9-M@MgP{X)sUaK+O!9Boa3ZT9K=<$d= zu*eaS6>ehNRzk$ZdZn6>1U>yt8+%RfKsEGhg!9$9d*i0DYA%U60Y;y&9wn7@F+l?1 zWg&j#8e;dhc!-H)aH#T~=?#1uY0;b$Tv^V6ig4|pJVm%S?K?j1pQh}q!g4ldLx zYawE=TJXZu`zzj10qpV+KzzGfnQQj}l9$tn4GgsHC~pNe48s~YWhT2mIpwAt|8NJtJga{><;&ocN^Mohd^hC{>v)^1XxvwP zxj>Za{EER>wk=>pwmUVp$P>ZCWEGG+ZUlMZ<8Xrz0dDh0oUG7DrEV z^|)|o(SOKwgIZq<@{TvH6nA_UOujQNa5_A0dpeOOyFnWcdV3Nl5_Jzr%HcEvTW?^( z!u`WAzKk0P%O8OITZ25Z>sAmniU&CNKmOIsTH{ka4N&ET-}|CMb8{f9r@!Fy-zt8B zqSz47&7+hnx`Vn;KnMXjZ&B>@LnYY8rmy+|rOwx;Fu?!oS1&w(J#yLqlkarc|2qPH zZlUh#r+k+GyB3ZNsyX^jS~j6aK1h`Q|H~11QHCV|vcD=}T76dy*GeS9CcDgCi* zTGm^xcVAwjJ|0M7RUDd`?s%U}^2fNv@z0-OGvWd%9ly7HvC19+ z&JIp{?N@VK!Kbt6Q^gPPpX2g1y>6`qJFVsw-0Hcnx{Eu>@KDak~OCKT{R(tv)4Wzsgr*C58LMK4s}X z-aUEwN_7vy=X(@=>`wBPRGAXwpnCQhGJLE1hA-;J-ePlHJ8FA9ova`(WTBy>HE5wr z*e>7=Scm{ZAD+2F5&^auHH`{;e21^utI(*~&Jft*c>|DSIZNyp`j`{s?zJ}yKrM~b zO{7B>8F4@@SdE~R(e~6%4Iu7AOJ;fK%Kp*znpAQk7+WO^f^1dh=N7h*Hl4UmtG3F? zi{SaBtlm@Y2jz;=5OyPcqQZ}7=w$PF@2%EV`4`WXZvpk<=h4@JLrllngX&w}D&Z^1 zjBeyoX)W!)qmU`ChtG>8=8Vk0%;{5Ljvb;D^;>U}9<`e*42@BeOui>M(Te#k+8Ft1 zN<*@!>(1a+X#&fuWS+#c-xhpdRU<$C;7)1sH!+bF?VN3*<4@wDeV9<;bGUZlu|ZLLTK^XtHlc7uIqh%*c~eugeo?g!8L3%)`6>0AH$ zoG3)1>^h%DNgbi1i;tS`9PzCZ?=ffW#=6<+pCKpRM8mgCZcdGEEtCNW!evW)h({X* z$efy&#GUFioOlaZy8TS-dq+jJ0x zVesp~Kt{IxT>+>gznVa<)8ZHH{=zL}M9|*o8GTQ_mvEMmY=~C8DE{2V|NbBef}~)9 z6nhW>A4*lgYrp0DY+ZaU0~%GDquFb(HvR#wKe$s+G1c0| zL|=^U1T}a%SiCM9inX>DGVW4#$Vc$XK<=^ip*b1jZzeRqCH*ta(E8P0!gHP1>wDlQ zB_`0G?S?4pllu`CIoD02`b&aDcqJ%Y{{iY++mw_wEOnE=$p(=mMk*h}uVaBX((lQL zGNYz(e<%PLP8~OuAOAa#ATps{{@HpPzKWV3I+*a+ru_7Y`UM*RIf8+GscxowMc>N_ z-x}%tOJo-=V_{o+P>w7>VHR9D4D_%|0*a5^uCrL`hNr@{*XL3AkhCy){68gz=tW{! zrjr%}FPEkWoDl|p(Ylkh38MsVH;0|geTmjlXfVgm`a-#vWhOrrQw?N%^?5z2-tc!fE9lmP<`RBd_1*mRBI;_j=uca>C$n|@+|CB@k9%72y*x`eHNWa)cy3b?%C`n)Gk@#_o-j5RpT|6)!dhA21K(PuG z)H%uFLTwcY6*&~!r1!^s%(XEi-+&@=Y6*_u#hPOjSyuYAB!w5RztP!(R`2E-kzsDj1j}Htj=l0=~XQxjqkkGAU9H&&U{Bd-6)j6v>bH#dGXV}uT;m~ z0W3mpsD}G}jF&g=s>qY}nU##}=QG1QbEXaWr++g7?ls3@fZ<8!=MJKZ#P|eVR3z)_ zyjJT-JzYlMHAV!LuFh%wrR4g(Zj0jGj9g=a;pl5#|}!|AAR zPIT+X@Kwxdw(neudvnloFDpxV{anUziky{8R$$(kfnf7IxkLQ^F>EBCm+R-+FH z1#gef^)f;OBdEl|dOzPVCNxJI!ltA?VBubSJ@~=;VRjIUrn~%i%kBrdX`VzOX*WRfS=6si za&*KE=*jB<5A+Ycij&U@;h|Kj-E5a$wpe({`3rzNC%idCg=xEz{!K6NYjP0|l=XCd$yIUi1ZC z*L(lLczvVxZ~b?}`?@P35-8W>Sc+|R99@S$)!+YjuPYZ>*()SjWklKTHA2XUPqr%**^0=z_MRcz zHL|j^GVe7aB{L(kB70xsUatH8-S6*jIFIuh&)0K^$9I7D+TZ?=1vjGQ6Ozwa-xYij zj=_0U9OMaqa(3!=)_6sHFu&@#&e`*EM6ShuvhGE7mY4v|l>e{w8#Gf=Q+qGP9kh&6 z*o-fNwvfdsyaY#nvX(JMO@6rxbPXv&_6W(Ic@-@PX9F+ZB^q#1FT2%PsLN2J1~_XS ziAx4V8sf&|9`)P2;-CQ%um7biP3WsD@P*YH z7EIC<9in)Gy1ppyj2bvTWm7roB_Gqc4xa3ucuhg!eWw?&_eIp@@g5PRQFvi0*k9i5 z&JzdoMUErhKS@8)h3z(_@pAZNd9)kv-wzBb5>om~ZwKQk)6&pm>~Go-$W>i`nlh@% z)?5hCM$Fx;j`pCO_t_ZS|6-F;oA_I*7pd@-8O+RyL0Yp0M9T==X@pmtQ~dDP+1UB- zO6*2XY|lVKw#)ezQ4J?e3nWtA}9EN)@Z1UjEG3km3xW4yme=f}ePHOy9lJ%+xlyxE4t@75#Ycg}8&!3)J@qqspV6 zKN<7iZH>_1jgU(H_s{*^tVI+j+_UY$@PDo}=D$ynI!KFhgc${prgk~g2A5~2Rr(7| zM_+xRcA6k2HU*usG6G`9NOGb@J-G$f3B{m$9X~O7f=CB4j?I_iH{{|R5CwDf0-mWw z+3Fv?%Tj@okfqMfabOT)D?@!)Em)Xn!;C_%kRIb1sQ2w$&jh@fDf+Zk%V})sW(GK) zpnY~W?zJ+J)COa$Cs_|;Py}F$+*IiChO(^IKOqHP%ag{QL$UL>qo$Cz1n!89b;7&2 zQdJY`Y|dV=ML8AV^I|L)-%Em2X_?Et4=YEl#D=xH(ztaz@Q~Rg^+!2Cvn<|pm9J=0 zm{pn&j;jmW?u^MlL1%of#C&KtmdT`A$s9pa{`OfzDyd$>7zlUmgu`Vh5TkD$r|J*# zH)bb()Akze9Xw9D3rV?V&b)0=&r@IzjX6c+!OVj;Z{-c?K#qh4vf@=YU|W_;2HS+X z$N9r7iWGL2vmX`W6rQZlkE@#&50diZn3 zmvl5e-+r0K5a^?3op5ZfVdEqy%U z)4nagqyte)w@;l2JH|_2pouCdAVBjdj6tT$6((U((VDZZi*=*r}i zmx|CYTI;aw%-ZrM5o)K&>{smHzYE$X8R~C}b}D-wojK$pJt_Xtx3!iMue(tWc)ea0 zDZDgY>TXr_v4$X=l+<|GqAVX1v7+k9y+{!8NGR)}w2nwsXu1Jyc=cHuhpJ@n*Dm1npyb!-VvTIq3yH0;k9Onz zGt0FX}`1cQ;FF5DHMiEqi76Ey$*stP&`mnJLWR&0n#|7#Y?teb5 zxTW3xn*MktKrs69L}34xN$@H3*dCYmQRlarCGxd`AAZ8}DU;oY@Yi6R!8#%)GJdh# z)f|t0{VJ4%zt%lEtE07x77RIBs#G!P*=D9kakIVe-M|aT$@e!c^^Z$3Y(lTo^U)K< z0vrR`bz{A`qUovgG7iHh9`~U;)l+rrk-JGdX*Qb$xskwKN(^$C+l*&ZBuHTe7LIXZ znxty^GiU`RB917G$0C3Z743PpwPY$}PW&m!6JK#`ds{s^KbT?wSqr!Gct6PG@JDs| z5vbGf1n)qFc}YmV#HlT7X`O>!2i<>rTYV@_I%$(Ow&|WPW|;2e{zok*A7yV9UBn-g zM~@0Uw{*YWw<|hO>CvR*;4d7S5}^4t1r_Zxrk?aE$n4sJGJHvRzcM;_OHCyVOJ54% z86R>usJ2R z@*-)K>6^)V0w%JybX77EC{NR$Iw_YTKwlA|FmVQou(v@Bb@tB%N^YX?!&(R>Z}pz} zYC_YBdN?ow(C()4On8CrkN12A${6p~ve~A61Agdbdn{EA%Nr@2|Jm)fb!#8xUF`*l!35m*};jCumLeQL9nf_soPDybhjM{UX8l7W9SU z?%bt}V*lOYiWT7TC0o@2ElsFXn{7@h184I9wW-H+mk9M}bY;x&wm%TbmM-{M@V^Ai zV#9*Q?x;01O;}*#U~V7fOm!n*8Z4qwIQ~O9!wfc2ue6oinNU}3Ph*OTbQNSqJl$Qj z5*{_ebpEzFeGu2>3K8HjeO=n0K;d^$=ij*rSc5m2c~Sx3iWxwGh=XkU|A5?!gWu=K zM~5DCn$4u7ORXN@MC{&%vGsCN2+*a(Yg^~28HFBG<=B?DkwiZ}n3)3lkG&qG=9U4k zObRF4$;wy)NBfhOZKBo(ytcwa6x`j_#~a| ziNO^TIDqxAHRzE6X~IExQPuv`x+U5J(ksNa9!}#(v_7I^3?L3!UbE+C2pp$5-+Ob+ zTQ%?m>S?GwzILdpynT~2zC_oG5N334-=n_y<+PMiMbK|BDt#iPIHTU%XY^9}EHV$l z56^vjvPybPp6}YQvhMmkl0|nmPuXD+58Q@*M+XE_3(cW)4&s5>EIP zCY8@bbkRab>iP!5M|*jsf@UZA7wB9MDe(Z$JBlG5z+*C zB;qKATNVdahJ?&&wr`M?I_%&D-lr{w1J*_z1?rCkp28b+Zj#!)6t(()|JD5o4_>{P z{7Tcy%CLHckZ&$2LADUlE6Av-5F>2s9f;?;xfk&Xb4&!%80!|-DaBw0c2?XR;glhP zJ9zn7WlOJ)8Jb-|`0C!$Myfv!Hca5!ezgfaTt9<}g7V{l@;T8%*DFWYOJ@gQ2#;<4 zD<1GSk}~B=Y)FXp_UI_`i^1r&DIphemGZrA%mx|lpP>(D`y}A>D^e+;dn)^}De`wq zIla}rHRfSb=X~AVhWnw0S>_$|d$eJozY1NapGH2!qnqIk2(n||!L}vB&lw*NlCT2B!|H1t-Z@n+9*M(J!AwCRuhbP%d%66;&wL1F5fta1aUf;Zov;xcE zk#~2K&fIA8VV2lvG8`j5R}hoSM7W;p2U$x2wjPBJA1>pE8+k&FyH;=2=Yo&h`Hq#! zVguK;B{1v&O!rKh2jC)=Vz>)AuwitJmeqPG33zc5*;)bjt`wJ^cVwl+3J7s7f&gYM zI)@QAQ@BD;&&#kH`-oX$n)-~2@8IBX4CyX+pSWW#cZCy4c<5%SHNymssy)Z9M{;``Jh_ihmm{zujoIEI1eA;qu#1; zIc74)S5JdN-=A$^C^F#zs@#(h$wC3MyVKt#9PjH#nu}UjnR@<^uqgaA+63d0?5^az zYi2Gpw543)V-AI0Ti{!-|JF%)L@ZXwu2FU&_!2|Noun{xEh%Hk_)BSmKddb`Q<`Gp38PnhVCz$x{n`$IPvC0 zDhI(q%$nAoTKT3@k9@V=4PJl<$$t&_-w;x_$-F}0WW+&^o`-~1Mw#mFe^0W+ehji_lUB@S$g&!0tzZHi{Dj#O=g}xJ z_lUy2oVrP(4G}GMh7LhJVkUGh|B=gI=&(K9)Pu|WNw zK(6-qAnx0^gGogXaL zfL>(2rnT7y2EeA-Y*tjq3aU-YoyV)bR$03#Gj=7kG>I7$Q~|7 z0sShMU;Qt<&{7O~jEp4T04!()Z)}ZlvDiU&dyyuYI=IQK`h*qS!;-y^+^$Cpv>^BA0%@~6z-pbTDEtdm&(s~L%Kyys|OVNOqBLg zVE3iQf$wo;wON1Ih6l$Fw1JxUpw-wx1-4CB-?24-lr6{}z$?NxsR4Y@>`__x3z!jM ze~9^nQ41tBeDzS?iUv1WD{N>WMit0M-~s1s!%d-^lwq|BlD5S1zeoY$noFxsL)(tO z!2ab=dVq0Z20X9{W~1eeil->0jpLM*cT%Jv_ExP?9DSGl2AF$nL%db51CP!|dqc&^ z){#`mo3mGlf{Wqi?>_uUNjyJxCfTg^`49DDUa_`^;J6@A)77yPmUjnv3%?rPKus2& z-aFQMQ0iah6o#%yfwA1V4+w0&Oz4m_$JOPsIjLJVXxc^>OX?SBt0P|vPa!FA-jJRD zz5}Q)ujC)gN^_NkQ%6!WP)p540KIxIo0oy*1Z(ZuNpGHosBXQ@^fF^IV>yt->&b7x zj?7nt9VmGjjpuEI8v$GL_s;^$#^t6Is-|Ee9=?Y8e7~M_Vay9OvS+9CWIfII!%_yE zwoW=WxmrIQ#hfYEYu}$c_P#Zouzgo%Ip^eFc7p-@N#W2b!lsycZmV6liH^x~yIKmX z?WqxiS9Y3>QtJHRuVrdgTlQ0bL1-#`ZgD(Mp7$BN7R)5Iaoi7S4PtCz5aDlTAvSK_ z0VM9(UO(7hMbe+maDk+27+n|W?4sW{{zKaFu|L_0jvAG^)jy1`rgQ$jpb^Rr_Rj`l zM?{L(3E{P&iEF^mks)UX#*2}WI3U)M?i58wyNZLo1UV9t<0(*et=PC5qZ?W(mp890 zdPv?$l@vQ3^z)Rxp-CS}Si_gmD+I6wBT|+Xhx@4Mf`V@&oq8j&LU`Fkrc)r12QoZ* zK-_19Z1E8aWDsbiB@q7cD!o+*>moN$hrGhf z1b2hg-LXfKZ>BBCXeLQOKv9>eVO`K%X!evi!2t2C+uFizjKY;ro=sDUPI-6m=l~PN ze2f_V%P;b)*%*RD{_Gg-@ZO-5WPSn?`=P@hhC!b7AS2ZIU~zobJ@&V<4Y%YG3&9Tw zw;{~Wgu-EwWIW@dA!8V?;5BXT-A6tcQO>ma+&5(lPA}JcZ%gR3S|>K&*`sL|imyn` z+x%=UOlVtNXtdZZF2qu4rb!l*2@|Rw^jp<5z0V%BkUX`Exhi{;UEA=5JI2Id#+Nl+ zDcCsrhVJ7dMeAy7`?;)w5(?;22+_4bA<*(d;@#hIIl2MCkcR;8@>_%U-ze}BAJQ0b zo1qJTdYnrJlufxniG3DuF_2FIFMEM7_a2po`tgzp^U_b%x3b6 z0N#Iq3)*Z4n7o!`?4|=F2i`sAz9ecsB+MYvA70%m2-r>g7GTEwQ55ce*(`3N6#+bE z^#3cRgJIBMrh7Yl6>E5686d$HM{P7j5Wod&Q{#9Od2U(RU%u>SY?O?v4Xz@S*zo?`5Rn)gMBkU45fzOYk)^24csr6oXqz%LZ=k0T<2 z-f~9ZjqvDY=BL_48g>5omHFnoH;9&x1Rzo1;zZMNRa`P-#fa*W)8x$}1%koxO6R7X zElLN18!h!tGKJ`$u7tTVIbXrPM#^ocVl?<|8{UFCAiH3Y3q*Fic=)!N90OmYMx1^7 zd=vVR;TfgTzuP9!t9}|bj~=>rT>B9>i!0t_wv`i@$*ya*9}D20{lc`Qkd=+YO|eOAa{eq{LYCqVUEr) zU5S=Qrg>RWbSsY$obxqI8ae#{y|?|X1P{m%B!te(l^<3HbTG(GMH2b3lWPDmm3Ti? zp2fyBFnwi*UJq@4BjD<#7i8j&_V^7lisS56E$`2#s5vL%l>GPC&4MLSdY2_lGbM*8 z+BvOnuhNsI76*pXv^2?WiOH=<^-H1FQP<0*CNg$F*3T{p8^ z{Kc{MdGl6{PuVoh;Cf4&4NMHeF6AmAajPjb&iyb(?5e#f;KS_H9%A4v9CU|W>$;EX zs@fQ6e(7ia^_Sl3$TDAqfYifr zjh*RNZ%;t^Qh3h@bXAze3ZPeDMJq16X&-VjeaF?{o+-+V@uf-!lK!*72H_A0Waxsp z81~e$LQR@bq!#O+@jj3rrb~4NV|hm7${#5V65HPtIRVrbTwup55{qwtl)HZ^II+Rx z&JCVPxFiH)Rbg`Z=hM;{BNS#-nF(1M7&} z@ZNWw0x4uh1nUa&n!AwgJo#|kBmteDqCCO&%^Es6VJ&p8IMW&O%jHweM}Jf15eVH6 z>Nh$NIy(jy>MwkYVWu2wp}wX}#Vvz3f|eXM`kpoV>OQtM^pu*hzP@PnENdsZd`m;6 znX@?tC7U%Qj*_9`27^7Gj$~6y> z*Xrqadix_)@aPTKHwE$CN4K-93(h4PUwVbJ=c?#)I;0#S4h!;-pX(@aC{7Ta zO}v8%B21EZyj%Yngz#c`~^_$xs{M5ZV%8(e!|F7qLDwPBL#RE%rX z_VduRzSi39B{7Os`GduGJyR6ACvV>JWkrbAU#?o!*i@?-#&Ob2{c`93QG3ExeESKX z{cQP23{g6+U5f&^=L7oy$f}K1ws?f!36t$14Bmj-pR#gw=fsRTsdTVCb8W41?Ata- z3u)Kk>L8z+jB-WW*cH9{?@|cEnAO2qTJ5Uptim&K{SgmKeu z+6FfzN9P_PI8^$Uj7}|AL=MY`Oqb+wbz&ieUv%ER>L`NeHvVEQ8Xyu!c{(mH-eXNs zKo}v2ASCZg#cr|q%;V<44nrXU^~To6?19GYhF~If`Zxx{xiHHldoLWIrfuikO-X|4 zzWS!~Z1ggd%FJ)t3lPDhH(rKz9->$!qd3JNn}S0k`^(gBBf!Q&D?5s@Kr|?1YZ01akAavfro%W`Brb9pM10o;W1}*f!ZF@s-|fd!LA+h&N<$@gmFFZY?md{>yoK2 zcB>Le-0)g_!mWwa6BYV*96YCgBbG=U?a_L7#p|GPJnS#hoI>XQi0Mt2X|Ot~^#fZ@ z3j=#Pd3#Eau@@PLbmq8c`<$qVgWV!>FI>2xrMUa?2Yvi#7oQxxbn5a@37?OOEu%B{ zJSOS(FfxD|aSVF+&2h=t3XT;GfftrHmArvmswq9sH=I*nr15*1{DcHMf4v0&nM$>p z1nwrbJ1+bf4O`MgXsxE{9o#r-Y0T)e&}fX%aoJ5 zP5Q~`M=YDp(y5h!U%!LF=+ju+3=pw|#%`LdDS3!D1;r9wTgWrtuliVZ*JHk&qhM*3 zO#9TF#&7P2-5!kqJY|usq@_LeuVy?s8%4#doB;k?eyz8*u%kLWOL9;cjer znZFxu^5Rmui!Itq)^3~4^q)zpR35obcj*R4_P2_YRU{0V1 z{q46uBkZ!gHMp5=L08d&vQDzzgVWe4CUMshMvq!XxcHUD8FC`~rF^)i*4rUIUq*PgX&M#yqL=sZWY)L!FSUhg06e$fCiyzSXWgJV^UWBzO?){u zl@a*O!KvD~sr`XSY5JaWd?lRwSN^6Je_M#DBoqKhIGh@83`+r^`cdb9?vk-3tZop7 zdloLTMi-8}o=cG5lAX~1H2DSQ*&lJuUY@E{+LdO?rUZ&((u>D3SD(vvFGsx+W|6eDSsZ zy{B~8oQqJtKDPb;F8n7YPQcZm{t$Qqv&59#w*ICdpO_65@rwM>z<< zATQ6w_i|W&1>#C71h@-=Li8Zgq?7LV{^HZ8U~E=jwkzPBz>8iPmk?LQ-?}ENY6>a=292G($ozrRx*d5i;P`k zp-2Whj}_d|?G3EUKHU&d0_j%!v)s0o0od*g!jm?Y`<2cS;p zLeFdi4)KGdyaWS>5uYJBZJdDNRCjR#7HO$`TL%^peM5o|=?ybue`Q}7Qad06x+msG zBMVN$cL)^vfnJQDP;p zu6!-dRK}1=X~1MY%y9$YngJ5T&iX_PSpo;}2VTo{=gM+8zwd-ZY@c}jhuK!PKe2-Y z_mnSnL-w8d|1@bB-ej6y2g<35Y-Ffdfa@2Kh26peRm_20gqe<=fdpW*E?DJ>N2ia0 zSLS!90W@UA6v{wct=}uNH4W`Sg31n;2HYw3s<7lr36Ys`oNtelA1v_`0p0wys&B{9 z_FB=-sLwVP?PFiEp%VdDq^{;~yaFrcaVWj}6f$SHdnWS&A;I)F)$XZDG}?Eds98MW z!();k7a>2hENmNAN&I-aL`x6?B%HC@V0zj-$G=E*Vgf6&{6h%9gGK%Xu2TVt)!-aQS*{Dkj|5q6Se{Cwjw)#bIBSKD(l;1v8bMmcAKKDMx8EkPo5N-B{l z9-RuDYpR1Loo$IvhY-c3~>rWdz z3(IYzzu}LzP2@0!+8#PA@cL>KbG}NgJuz*n*-AS;?x$H}jJM%)N&EAqx}_Yc^h-&( zc`A3MU+D96TZY0ZVXZrAL8X;=F#`q$oXcbtvm?D#=M|~2zT!_&0!+mjb&%Up4zjo5 z`u8uD_-ufs$c=WejXL<<97GRPg#QIrJ*bjC6_YL(hyE3O7kekEDI=gXMu-@>?xSj+&yuFEwH~}`4^af_U-5iJ8mP+ z^ZBV*K=Qow7dNQ{a!|@n{NU$m$4bHm-rd==!Mk9Iy6+_ywaYG>bL;E7$A1C&%7W6P zr|wUeM@l^A%OodShq2Toi+;s^_LZ@hE^=~JZkDnK0UPqMO~WIjMtH<0vY;!+x=`O? z?3=gqGr~dMEvHMTN9d)M2cpLuH#DR)H6jlFon4t9M(xA^B~>BXIPc4G=w?Pi&Dd62 z7jCK+EK2dqOyL|8SY6N|P8@8ht2pDHMk*eSRv!4Vz-h>E=(BCc^}sePn;qrvH}-K~uz^=K)YhuO_4!YPX?s_>on_a=znTc7}q2HqgL*YEdyCNrZ3|RW>!_ z8w_;Z6cu!nie&X34O^SG=^uZ5VZha&TdsE$P{)Us1W?HT{8)f+gOK zRHiKjd4*MW2R1$5l4$#jgaF@wWOf`qD3ClKz0*pMHYa#^tCm2Q?n25^)dm1YccFyX z*#8z7-3-Wy#%k&xV{>X(7GE#>!AO7}FbD7AaOr+R<+nL6zjrH@!ub%1BT?zRf?0`T zJ!7j}b;_YU!VeHDNKszY1zkf(6R9zkvA)YLWDAR%4ty^i4(Q`($N5??R-?ofz(2~1@A^MhqFZ4~U2?p^rw1~>FG|qT(9mMnrCMlQ&S?|Xsi)YLxY;?KXK++q zk>SGgJS#rB_hZ2lrH2@~VB;`VE9Gp~eS(;W0;1<{kD}>GA{CH#dbM$M7DbeF)c@F^y2o zS4{t8HGe(1Qu@O(uNh==y;xenq3S91_b2Z%EfZxj73XdhbZGCjCN1>q6FcAx1A~TA zq2;~Wl0H3-Uw!JZVoX~lL>LLQmIhGy_~c_4^3N=x?)MN9f3%h=Oz)_K#Z2Hx9E^_3kR)jWFMDs* zUCwpNCM|rjAJq>zWoqoJTLBlCDTd4Mfbpy4f?O|!DdYC#(D+swY?^uh;)`^cg8AhD zum+%CQ*j!RTqJ7e@9AkKs;`)ts^mSl@=I#bLJJUXZ4&-FuFHtjpKKhiGaX5eO_`y& z&g^Mac%4*5)Uwh)bMu|l|K4LFv;so-cj*_#l~xsLZ{wF6&o(sqHv^I2ORJ@Oujpi>Oy&_}GHPvzNZPZRbg9-8-p*GVfVYA2Lin^Zn)24{NrO^bXFtv-K*kxcms# zNAqyOCXoiRj8H_!asT>jaGgNG$*w|9lnLAtiTlP*ECI%&sESm08f}@u*NOG}y>He1 z`$j`XNwUWsBg5;h2lqkQXkH(U!k-y!(9}{8@MQ(cY&lfWvAP;|4&zo7jhLy~{<3e* zua_cj$U+Arp=vq2W!FmZp@3@JM_aGm{T-4O-_t#4Ky!FK?>Z&HKsQ9ugZWz;ib+68 z>o~Sl#8yH2wch}BLInyiZrv71KFZFMeI1GPcnNN*j3c8SiH-8TeM}7^#yuKKgqHp0GNb_%F-` zREH=6f~qaaCA(0&$W+Ahc5>m=XgB~S+}<*8gP1)VF(9HZgASf?*3FbvreD6L!mgyw z7Ol{v8RV1WNrGZZs{8@@^{^Asj*xaxs3$q20}WJ|FJOEYi=}DCB)BrvH#za>82WTQeUK6;H!H5{7iiu4Z3 zl2|rU@!MOKS{Ve=+$n-Q{3Yx{yB)foAwPVt@_J2%N+c}Ct|fpFxkW15fw$7=0rELC z;c%}O>dD}&o$T66m_c5o%l4|CP_PtJ=QT^nTmyUp(qRlwiMu2YDYo}5hIgcVIBB${ zbO6~@c+xShg>lmT3fbWyyAKgF zjNc}0p74zcsCXz)5~J@o6-<;#`+#roMUstZh*%8sex7SQ;d7BsF$MW+VAVJ3WVwmi zXOC#Ij+UGscXa(!45vNOmcJ+0!ZDptoTjkyRisItq3&+ymqReJp9@3*aSnW(mpvo?dJ> z-M`phxjfA*)6fMD^guQL(QH=Y0mCZ%onwF#+|FpLs&%q{f^z({fo-xllp&&(Ct^IK zQ~u>Z?wlG2vumGog! zFS8>izc*&r$FeOSWJ@sT-eo9VQ7cmQFx4SL2V0d>IYWxhEG5@vhYk8h`v8)dBO8bs zmL-Y-2C$oo)N@*E$@NPSWFN>50dLnWY6}WsYIXqmdefrxyPAdMpT?m-^-&0hgp>)t z|MAiawFX6R|LK54u)LLufBe28+gxWzY=}S>Wi)kV z^tpA3u1L2qD|D(Md9wQ${?y+;cuNaz_bD-sY$g0cLa31e4)om!xhVq(`?dB-YZz`* zeAx`zCzNs*zMz@ze~U(3r$w*7E!Hm!G5c^W)wDy88~euKWdkoATWs0I9m2*ApU*MY zMg#i2_{(3X;tBblF4`V+Y+0>{TtY%#UEOOTi5cI*hKlBuFe|!E(rICq5s!MD(b6va zP6caXWz}P09!ea}`Wc5udWWu}-#jNTn?l;(=f$AS!7>Vq|4tG zx{D_PxFRkcw5`Nbd0pg}(Ps$gx6d0dJ;IbY{*Q%Ue|~$T97pqQN6;*!Z0Xn|d5yJx zP+seCOu>y9W%R{69N`;YMo%BK&4%_+K?>9I{6#0>{_92VL8s&k7>HjFxPT=bUfR)y zINzKJ_J`Eo&pkUZ4lk4*>qQhHM*wYk8ElJ&aYA`Y{G^H~4fMyk$z4y79 zxpK95=#HP%``0L7k0_z+gKKf<%PPO$Kpk_sqzRTOo=Q&c0p79SfA|qh&1N;T_x$Sb zK?*=MwU{ah-{0dALS870+F0C7$>TqGau$4t4#6cRAldKZW8>G3#b8NX&V`b@)yZx&cfgo9 z7!=$q$YbySAU<;c?oAfK>^4VAgHNjrj_$QTU%Wg}{zx)dnJzy2D4H~^WByDd^S8VY z^=*FJH~GW+48|(1$ZJ6o)qXJ!_rx{4#y@h>j$e`zYp!K?zpLS15p6Ez&=X2F1DJw% zx*+VYh@XMNjSoF>s;OzwB%D6Jw-2X3S zzNPLZ%b^Y;NTxH9_$X=wRU!{~QjH12uAJ;!IVt=XY)HaGyjp+^Y8a|r^_8Sq>QG;y zCy8c$pVvdkfXS@3C7wt?2#_T*)t$0cuu)59q(L81_=~sXw4YBe!y=MLnly#~qA5^t zN>BuNaLI_R(tQZIzpVJGBFVd|;AVn6OyClE>O&rKPNekfiB?T4zL0E><-u4XM5%=Pa?z z(y9|%mh&B*Iv|C>@VzDhZZ+Kw#M{6!j0Y4!mcM-V+!^#L#w;Juoo9=J-9A$)K5M0r zN#hkD?u;jPnfWXH+%NJ?L0I^BL=rygKhy|_?S*{^>EQePf<`aqae1VID}~p~$5~);bd{;RNDuS#{zXq|uU zT;gfN4{soA(jpv0EjfXHYKCTAeHA52j9j;D)oge&{Hj$06`?byNNuLO#gCqLcF$ho z#5z(kmY?evZS3GAO$AxE^&0kk$QoQIry1KGhrZXy;W3X+e-ycGl{Kq!m(`Ma&Y0J2 zk18dlWhAoAwgFL%<@}Uj{K?4_c=}9=3NWo@-fi4MR=@`Y$xK5hCy26DjKk%TA^gW$ zQ%(oXBn?wTW6ACa^A~1zNm5rh6754_}QN1Ur4XZnV%n}QhgDlo}fEl z18N%{2BC%;|IMG@S2YuhBvJZncu}yF6vAg~UK{`U`3THoU+)F?Cb)kD!I4`soX5-W z%T63kvnNA=3olC=E7*ehHt8GBbNr`gg-M2LYH#dxov@~}n>lS>_-kE^Kvt;$v7x#k zZxULn{8OEN!#y>_oCTqil7F(6pZ0Qp2i)*+m(XX3`TAlh zwjsZonCE<{*Vwop`XO4*kljdZ>2@d!7D)h%Hu)ze0pqT{u5Mj0t#rIU zs>k{^QAh-fm>d59WZPX%YlIdNVbsK`b#xW@x)z3k6SC|;w35sqPa%InM7`T5 z9c=@Gn}_ies?K^T+6m;gzdCw&*SS3)&R>icf4e5)g#N;q4L@Pl!|ukoohFH)O+0+c z8ZW+`d3zf!#9k*Ut56#gtf;H=eDY zS!HCZ;x`Q4%nV>8{yoJiRT{P(&c7Uac_!lA>33+Mda-X%odQUger@EFiqzbb_`@0{ zurQ;>=TrR8so0=MD=ciEdjz57Df~oV1J4~8+Vq^^lT&Y}q@IQs(-bY#Y!@FgV%)l7 zj=4$Akx4$L%Kqxla^nB=1lyPXYQDWPbWvg1?#&SY# z5YjdMwgz=~?nkF{mPv>F2Qon{Vs4*(W#*}Q5~I+=H$Dw_>Z~TpRRA8F@N^4xC%BWa z0QEmcEYICyh_>uA%}@XG&#k>1R4S)kE*hnXE?YkVtBCz+WXl>dWnX3pxPD~t1E9q4 zo&q3Xh6gvbd!B{V0y!R+@GZfw>WPYidmf!3N)miGG-^g173Ky7yuv&KMhr;?i+~*7 z#SC2V0T_I$R?V2Vl^nA1`}VJXY*BX{VMztJh`;EiJt$rIL5^ga1NNPA7(dVg9H0S$ zR?yz{=jEb0;>y&Q>g$8n){7CZB-vTdw2o1>pny7Q#b(C=BrCK*SV<#THg(H7T^jw& zT5}=%PQrh7fh4tJ6O%l$b8zkCsyRB`tap6kC0xa0qGYS%Klv#o@gJJSaVHXL{JB zNas@xcA}judl7~~Flx-Gy6ap@N((k$V;rG*4v8JRTt;dHlXvHaDO0=`x1AT!VpY~R zO|I59Ssttu9towHcm`p$y`QHm5iMX*vD(Ed#^?}S-~*ylThCX}fkl(K1h9s+odlwl zctolz<`Z}zZ`vMZ#=d;EtM&FrZ$YFh>l2pn`8Re4W|J-@HlnyFY4H~=7%J{*{usDIw zK?~9^5Se5r|KRE?2vwG>GTRlHh2bt=Q{9d|WvVl%Lq(Y2Xi@7K^}8P$YA28-Sh!D< z^d@v+o+WzQ;`J-;vz{SKw${9Wn`wZRF4P`6o~Ao>pDsj73GTk|d-&=rc9#j2j}Y;BcZ=}xvD!_2H^A48iol{K z4`lxV;tLQ5+bbY-S@K@sEqWiPp!7BO%^fNBLL9JB{8r^@ z4-kq4Tvv9Oo*41G){QzqKcuL~f4;GA`s*O5n9l-PSE$^TA^yQ%;%6}=Vn+#|eKX~nZQ3}WK?%vE#q5E69w#QOoCWO^oj;g$v{3txSZ=9&P0J%D?M36d zT(zQ-ubotf*!y_vC|OibffrHq8gP57{nKbjY4}YNU|*8Sk#OhuhGs=dy9cK>8 zQKhY9p479IAw%@ZzgE7yeUiE1mb#GC%5C_ZGse3H#?IO>?A`V=nQ`x9bi?MMd3)qK z@D9U%kk*Bjpy4A!lMp(C-H+biEu|U)Vrvycu#*n>#O!OX0Ynd~0xB~LR}1<{!m!*| zYo&+T)pAy2f>121BsoXuc@7}>3E3=2t8BM?M;Be!pmzk%59fIYwnzm&tp;QpiC z!z(bz-(*hHKoAy*((oz3{NfVqfS~%ofxrm%$nae~lNj!K#3A{O{Se>}g=l(!l`{vG zK-3C6Przm9C>kCiiPK_G?w(?l*}^xS0f9vN&^&zVDE~a6b#Oe@g2j>53q!!<(*H63 zoLCb?&iq?xW6kT`*Z9?aN(y!a{^cjc$tvV5H@Bt2t=cIs+1Ce^@^-%-r3B>j{-u${6$ml1%I;5Se{ms=%aRNF6QA%Cii8nAnOg8# zNs~)!B#21xINPpg7^W)t#Ks|TC>ridqvR@JOD6WIy)oY39@JT2htUb;ywYE_&Qg_n zQkT=t`+KtsyMjOw3bV(u=P>_7o!rJ{e9jwquG8`2R*0uyC zQ-AgDEAbVo+9DQ*yt!!rW@y?u57#{ynhocnok0!h2B_5ImsF z2%oY(oBT;J?mQp^KiI1s0nD8X-gYz|Xps!g3QzdT7v{Y&k>Joie!A_qfu=8mwpbGX zotz*!Kkz+LqE#WY^E7`N<*1sd_UIo{EsYD)>bj7<5MjPrk(v2ZApXtR15I32s@Ay3 z=;RbFXn`08>;KpGj({rvW9 z+{=K#*Y-}~Ky)4#K0E#Omcehn&g!m*DlwjYt@5h21jjaZ<;Ai3H2<1LmGi+X;+-j% zPRNF})+^QgVMZLVHaos1kZJ>#D7Ycer+SQwTSfI?mstmWvThFom75E43*RAEze4M} z7F@0!KLQWaMl1N|M|ST0^*Y{}hdvAjx}(uGbVPRzV}OcxdBYqhE^XUo$Ec9@dU4Nv z)7&d3;f}p&ps_ftdX(k-3-aRiX^MH zNau8^hM|udg3+l1kwAcS>g(tBmdGC8%I_-1_o{w?JR98&{W0!r^mle?;_=m46EQ?V zyxP}fH**k20TOV z`ncMb@*m^AkuzG(r*Kq%efq&<#-=slgS+eMBt85f!Qv;3SC!wm_M4WzkPY!GvJ;eq zNXJ7)uwfd}Bn4MOxV~I;-Ib&ZqUI)I!>m{VAxbEaITP=kR=P~1Hm{s(zfKtU{cC;4 zL>N(w-{$?%zuLYN@cS;Wc%KJT#JsW-MK+xfyb`isKIP8?Wz1zfW(#XH-lJ@#>ATEf z0h?L&hhJXF;2&TC(+ML{uB5lI)yIc2t{-N#U%oAGQd_hE&VNulL>-sAN-aRe-R5b0bx;@ z2Ycx|l~wiM0Olsa-ZjxU^Bp9$?iXg!Anv+twdPlp!3R^1&q&^f-XW@$%TNdtv6QaE zxp!7kzoZ`RCsEa)tqC~XTxwxllm85%6aM1Q#mo4FY!JGn-KzJ!^LE_X!H%vz>v+U3 zLZN$W*-dLc(e1aqc579r{b3sc+CrPj?3ehB!}+>E*3*w^Eq$7yy_CH+u+FQ%b7oGM zL;fL%$>9wN4r;@zJdR@C>O@Ha^${rD_gV}&=g&MnC#;X>Bn*$Z+}i|-vI(__=^ohq z;!-wr*{H4ZqYeqv>a#O#N_RWpGyBOu)|b~QqxW8DG{XDBkHfA5V=)v})#J+TvOCo3 zHf|ZoKK-4>5#Q)RMpFI}SQwZ6HvEd>3wIt7x`<|0utQ2(LJUVTvlra{o^zfGKGO@_ zz8`E5&&!GGC&{{%&Sk9e8H_HXTsa@(K?uY$(DR^{SOr*R z)Adxyef|`_fDc*aoGoWBLa3nILs`+_=8ORiD@ox&ik$Jw<&UBoWNcDf&78V zAZ0JG@hPB$a!BN9_q>_mXU|{Je@M5XsC)cZfy3I!8h67_;9DVMNlcikE~casEMMiK z=P%sA9vjX*%{4M)NMD#<8NEsVR(ev9bKfV0hh6c|`h!l6d9e{KX2LrACwuiz%QPGQ zZVzP_F@MJ^!R=Z+^Qt29R2zf33Y$&^c+jIjJ{?Qub)(E}J!HAK?4`>iwH0(H4q#bF z6~4rEyD9bnx@d8J9MwdQ!FmE7v~o{z9Tl7g7>B}>Kr%O@`g{_} zrI5n%%A7>1!8M!olkkGt;u_(e^0>;*_1Z`ks5dA(5`=TN9g~&tQ@TzBP&-X`e;E&q zh4Y(Ge?K{kySZXP8rlHWzRq^eVwe>MKXIml)8${(Y|n*2<4Qpt2iBT6Pus4P=YMFjK%b{* zNk;#=f;?ftEkn86Z#wH;?Pl~jS!b#E^59*wnllNF&zfQgIM2hr-yr03QFSnO!!kDV z(=WzHp0f-TeT%*v9es{5n9_C=!PcFzDU{yLAjM_&8vW{X+{!9GZ45A8N)`gF!{_Rr zN^zL}K~#m19J`-dC7!q=zn+~(^F|CHI%!@<`Pj~Q;Sg%z;Q?SpvqY{t(k^(m1;`2p0&Y?;=SL)RcFu#w?EAAa-A`6feI;_dBgjJ!H1WP4Gwn@uAyh14;e@m}$PuyV$Bit}1IanV$^jT+RG$r}{?h&58)VD7D zuu$>iNk2^o5lYO=_=1|b4^@Fjl3V(b2k+o-{16Qv9?$b8vYs4KhxTtazNdZb>P%s_ zGiHsip%V^EPu8=hm4upFKa;m4Gi-L9mNz<@NTz&Ww+`iHO)_{;>n$yF8HoPIS9adX zz!bUI(s$84yv-@V82zyJ%A#KrhUCL01XMEu_g5lU;lx2fMBR*mg}7#=V^q@l3jP6D zoWJ?vXd)j3(R}u%idBT`B)du{Kk83v>MV_j{0V#);rrYMhP&8pPdy*P3&Am$!-ic0 zD-DVjb6W^P_F0ZTOdc@q@(Bx^(ItqTNZv?4$6@E`3T|I7d&hTZHgXzii4-#>!rTcp zlem^5neSJIUlixvjz&-%i!8+R{mgqj0LM$QrccU4XU7XYB!{1m21qIUaV7UBlyfd_2s2$SCMfR8QYI)TJf-kq7x?m_56^G3gI$ z=3-Av#i5C@KO8uT@auKp_CPU->Sl$znI<~EM}J$mEi>qiGfF8qfz!pM27(h+oe}5~8 z!;v5RbpnU=;)%O84l#w=HR+!J*RbmDL)yS|O;sA`-0CV;Mz6MZ<3%;ve6NEYkbH1A z(uptU(~?6V4GvWdWPhh&I|E4h$M8V2y<83E1W<`6H(w7+{+zdW%ZIrN*a< zaI6p^0^Y$h!c+G#=r&EQ_fb++88jN*mm^=3kX7Y8%3c0-Y_rl3etx^K$(Yr<@0JMeoZf(^M z>vhHh(4xoz!Bkk#`xmMJHY6fH<%4YcC#A(sd`c3sjM=arDb%t$`FCP@t{VEO2lypR zDxv(UaBx-g`ByqRItP2AbJ3i?g6zT3be_+&Y1kU#|Ap4;icPWJ7hbvylAu&vMSem- zz$}-DG{D9yc3Qh1G6UU?$g1FK;=Z$LVxIC?(Te3&UjsEM>N^DYT5Ff)T_rDTeAaLB zzjKNG-A1pE)0_pKUcHX$HV?La^ddrrv$!v5_Up#UU;WBPnY9$^Rq%6MCF6Pjw0b`C z1cLENyneY@HRmM!`w^WxNu$;@43w5kLe+=kq)@eA-{HLD8rY7q@Ks|PN0l0a&Y?_L0X z>noVUz2==&?JOX#zYD;Qwoi`W=L;$;>v!N_l8Fx$epinm_eZ0Z3(fjwmYe#!9dn13 zq-XR5zr1Sl$r!@ZG8XZ$_fGmd86{s=4ZNHYFEq$+W-t|||EAcE2MYJo$4!UK*7=(6 z=L9U?L^1fYqLIYVSmoaBOrlBU#O#)aG+e-23|}c<5CrY2RS$+M3S5 zo?#O_G^Gr}iQBU}6}|mPZPisTlgVgI$69uhxQuK=(DmzYCxZjG#GF14kydEC&MCsW z?GtJgvi-_etnrO%qG#?fKj>Pl-g(Yzu5#sU?FnMkj6Qy;HWU=ZuS=s-TjP%5XvHhI zLRJa*`TeAhvBW4;tFP*F0~7PrFv*9!B3rWLzH%l3Z4cjDb91}>I@CVjao0m8bgv^= zma6?v7)ws7N7k+JO`dk@SCcwEA>=sS>zN-EhZb3o5JFx`i1XAJiqVsP$FqGU(080Y z2$PQm)G*oOVT!^h2x&vI?cNv%!l_79cq(FvUP1^g2UUmE!ByHab_ z$eCH0*jWmazXziEnOhpPLgYA<*$kuZ&3?4e9w6{WXL`(RAi=_L4ud}|Rao*}^Xmz! zay>*w?TMdixisuKsK1Tok_i%|c!X?&VYm2-Ii@}qTp3XIDE&p{nU@d{1(M^M9ohHq z0sTyzCNAGB*9!%ED_WUa3E%;m9e!yRpB1m~HyN1c{Od@;heDiJ&zRcvdV|~^{~#J3 z(92g!*D-$tlC(`rY+HseUz!%@e)MU|dXiFbRddVS&XEtKwv6 zrgk37;CVdy+mly?QPKCgNwVWSq?8n4xav10TVqxmL-4xL=)l3uMv&xd+>D*eJ_CTxFRiF^AKG5TNDio-=^*~aG@R^_Xn7zA21mJ zyk7DEu^v6M<|y5(vz-rE_z5u@nQ-On8*p}_Ohgr7V-smbM#wgAU?(J}gy0gO9av3# zl?Z3_V`HZ=90+urgjkiA%-Z?mvi7b^7oG-a62r=O4jW2ih4bD?u1d#Hg!3XsG6pH2D%>6x(FoeWq8tucKOhu- z4GtT1Q;Wm_NT%HgS-}yOJ{HIA7ww#WVyDoHPuLMI8x4$}IoTAy;u~U?&lj-|-{Buq zQjE&wFyMxDu_Mg<){PoRrDHEB^tq^87G}*aqPE0$#UzMU+ug`HQr(PSaw!ueu0+!q zKKbbAlSL015PvS1&KIqt#T4z+)GBaIcz!fULk{!&X8N(v(P*Chg=!*Cf+rqcDAVJ{N-|P`u#&TJ#S|AhL6RE1isV64=sNmX)jpCK=olu^dSManrsC1%j zu!EI;>8&RwyujJZE}gUo zY4=w!yy{u8cwa=O_a5i%+PJAqITn}v=)RWWmU}lQ({s{fZti5%?eC5t#NPEQ4j*u_;s3L$O!3 ztmDhy$;33@|H*!iLo_kY-ojDc!0p&kbPx+HoQ#m;02#NAvI$Ve9kQ@1k}QM)SHE%> z$Rdc**+IzSz#4b_1}ii%DtV||Df6;AsC9i*!#U|)Iv^U{%ed6Q8YtMQ6Mr&(o>Sw! zDGm=S4BrLUyIie?btt%$z{gLvwV~{Y&&qw@eOW0NZM8O-R|p2+0aKT}7H4fM^S;ur zsZ6Y&5SFRDE=a@xj-2bsFJ=^mfJvZtBHaG$W;^)52u6f~bF8qDsFp!&YM#zY?ARBV zpKdO17VMap zac)namcaeTlDyV3>D(qfsW!IV+qpXDCJkn?*iuG z9jP|DDH}td%9exs*|;&h#gu(8UMo-n!p#!@0Kea;%a=x3uMo5s3KHW%(Og&Ao=lJ` z-mz|AO=aMdx{a(Ehqo@}ZdaW@WkyuixQQYwu7UDEyccVq3C!KXsk`3c0g8%lMAanL zQ9HoTn|3Gv6w*<$F(f6eJ`{3uLvm>lP*{~vQHX?{t>81Jb+-TX2ooYv9VqP(`DVgj zHc81}q&X9#FmO)=1?4Z67EkWu$Wp%GfkMw`>=k@GR)p+UcdyRxbN{L2w9ePutU}f_rxI4REkv7?D{{&*zu(Jlp^Vaj`0&lgyVhqWb+^iyP#t zUg~8$@a^OEW40OS1n02?E#wQiH_w4^IZ3UIwKrmR`N2tejF-}Q*6os}hw+uN9<~$| zR7QV{kpjlbdb)?^n~LB!RG)e`kJD9=IXq+wIyL%FFNqeZMUh#6x#KG&1~E9?+l9Ib z;{{CV^}G7e{dT0**!RaST#>IZhyAl+av|IL^`QG(PS`m^^^Av~YBU-UPVe<}F0oNCIc&FCBg4CVF4bHA)c-MqYj zN^quSFS%DMcT}_=-E%W;r7mQCTGK9w?+R7>DAsMLIu`gt1J=v932`enikjNPv|fST=8bWUqB^xS5e%%I%rls`v? zM?&m+8#}0$VKVde>C^60i)8~Bu!^|4mwT_@*fc|^mpMyk)uE8MI-GOFFLgor#arRj zjOs;)AxXv5lgrmyoez5^j6q92I`du_>{)u;OqP_6W_uND&Gr4$wh z2d?9U$8GB2z2Av(wn8~HSoI^6#nz!K!`PAXIQHO0%0b0V(*|}@YITP*+u&v^?Tc{F zUz4i2X?#B9Ix;HDuX3)b$buvBSC0`E?pH7f=v~|(B!4{k0e|Wr3}|9nVSzd}uU085 zP(C}qTyYi<65xzU)hLxScs2e9`>R|WHb@P*sRw*t<~l#frBgVi%RB zko9HS6aDlz*%_FxUHQ5JsXaudWTwwUnx5XFTb@Xfy@|F_!4wn!d}Q&($08VCyt+fD_82^h zYvk5_9DENH&7R;BHMUj8&@V0`y@|i;CT)ZSjpt7|b-s81s-73b!eEkuY@T;&gSa}< zMG3(Oi~JplMGGautmDnhjicK=U$-vpwjBNQbG%@Za!GK`J`di6xl}y+7UTKsmYs^T z5PMRR?pnQPZbTSuV{{^1T*y)}f|h*-6$JsVcE$4r^w&{8TL!41b}^`M4B{yuZo%YC zpW8~S7<%>TfgyQZ;KRHVRt~>A2|wU7sAkak7D|A1HzM%P)=DW;!X-YuFof5Zn=mV* zfa&PzLcrg|lv$|0MS>Gx+JlN+ts%5-syRj-h}=^dyE|)25_xrd;&lU4Dtro4{8In0 zfs6D!#ML^nh>r16#)iWuKTuySxr2KxbZFIL`Jd}=<+1W!N;iMzphh}tidg6zFJU$3 zSiAz|I${sH`Ca4|88%|~`AeniTLquc*^!F$m06G~P`|WfXAn>Y&()7g_HUmY%q%{H;`Tn!h{QuO($emf zo8bcNr%>wG?RKW2`IvSmSbP%he!_QxYolZk7!7w(R&-&|f7|?J%r>+GWuuh9 z&HM&@=L%640aTv?wg{O6DuFRaIUYBCxzCJH9yl>DcrF_J$f|=Tw|JFAH}GCy4(YnY zg5DGI8|MbbpScL)se%zmd$f zNRUY+@qrVf9fOXGBw7|bjph_nBGlc9sb4z&-kP$&6`wFD@hn$9=YUEVA-2dQ%t2el zNR9h1E?ef4cti*PJh2zn1c&jieqT0*qmRGVZ?k5xpEAzxk&WjEE|qJ>iWA@ogh_xA z(^$3UwN|wvC1J0bu-?}xRceS5wE@}h6u%h;CR&Ku3y!3`hiiNy-LQ&bm}b4pc`35& zug5SX=rT;|r-l@1A+_4I7@5?z+`)lb@||J1Gc_N^LjR8u{LUqxZDtIY)U{RFX=EDx zL{tKF?fBMsK{_=Xizj1jy?8`s_E~&s9|&_UrxeH-mD)WyZ|>vCHJ0T@6ZW9`}TLbOHx zn~_m!o%Gfy-g|yKh34e*$(}}y!SSkXR-yWLGJH=)`rHzD>O-xkhdzF1p1)&|8(~Ij zy17ZBy;d0*4@23Xar4>;HqcCbs&Y?!XL_U3NmiMF)9$+PWp z*~MQug(Rsh%|d!odU_-C0)KTTN|WLn(A9a|hvAb~a5pbPxplw}vsL2#Ae`#qq!CF2 zo)K6Xo)3+^uWvFw0^Jhc5k7BU0`7I<=#UE+*xju-AdYcBV9a7VxX*00VEiZCRyhHC z=`V|YOMf=vnS_1?up3hY4=xcLTMAb!9deTr``^+Gj*rK*`2Nj zbWRUVckIlWTRaU+pL}fR8<5pG)+=$+mq>AkcP2YNhApfRavh8XzJ9Pz8if1Lx-Se4&-g;yBfTapFeWeQ6!I`v zg8b=^rmY(Y77w;m(xNJ8_d?G{VufUiZbI(+ytjD&YRRTW)+V6R;<2%E-A1WLumTwu zd-h_xAO3n#zBz(aU=}WT4BO#zf>i`=OR+09#1Ap4;u6Y9uSq!0e#>!_oyg8<%YhhRtmD;L`kRFICc>S>u zY}?mbrbPit%lD#2KwE!s0=oDVGNmT+^T)zTC9N!A#zucHpAvkxmG`dFyv_qv;aBe* z2t};gU$)V$Ng853<{PDHvw(PqU$;#u+Hy$qM%eOT5k8P{>TuSA*Gq%_Rfokh&@Te} zZPEjxj^G}WQ2~N=CP#6$J%NObf}vcOFVeZi)wtuX6BoqB(s?S<9{~4;}CX@yYJfM^<-EiF~t1tpGSGwIJ^$+|rxt1Yuv0b~le1~Z@<<#(L0?AKZ zr~p{RTPsxWnXv0|Ooa1T{+|JS`%rNQ@=#TBPx8XDgbRwMDwoKxHd@f5w7QR#tj^UT zhB{k_IUvDWtHNe&emjD&H!{Vt^)rMO6TO}v{?oxU_)~~#2m|@;%K~d3N2Qi9x)+?5 zQ5G}bcQ7QL$ybP>eR%IY5%|(Q!XH=?fzBR*C^aQwFAy@?`Js1!0}Pn}G2s~sJ1sh< z01NU+%nO{$ZBRp_buvf{khp1lvaZrEj~1Hzo`2yk<19%qk>XRu_v?Dj&S4;?7ylun zE7gjJp1IVO#1S7c2J_a4FPFV&o`HUVh6h3 zuTMyn2^#xG6dzO>WiIsliA!Coe6s&X2CGhbWNm4S`#PVxS=^}{nASCasRtY( z*q^%1h}gm(Uq27U6UXS9guM%7&18Q*Z}VCZoIf?C;5(g2Xir|uJppW(2?;R*6wgo_ zEK}F|{>{THH#V)`o`Zo1g7$Fk347J+gc3y-e5x+i^vbwB1;oOC7O$m<_d!+$?g<2@ z-))~+c1m=KZhu5Nh7bA7pvtwb^|Y>+`cx4vw%3D4w={>8(x5U~!z&(yH&nrT^8rVw zd@i%%e*)=pbB&_3VwNSSK_jZX(ud4UX29+ZO{iJc9N@%m3>Bz0j-L3o%28lC^0By0NED(TYU1 z-pk3-(`8WWvkMB7S)o4Am$Z1f_xlS*oILVE?788AjMDY2EOjIEZ%8Q7kE=_5$p_c# z|0>PQxrLJW4sP|B2yQFaiZ2-o?%P~v_y({!EYj~c1-32~Bdsxy*j>fv{my<=b0yk{ zTFsuWR`T&$HXMwKQjOalOPe=_{_O?2@OTWllk9(h zNCrBMku2}zk=~_v*)An(fRBHhcz%aI_SJ^oO_kH;u6lI;!uhgNRY!l;^o4SVHqJgB zWAD{-2~c0k0;6NV!eFAVe?M*%uQ|wD9|xXWC_G zmJ|Cq&V6-X;EzFC)HdPF#o~~}$qVoYBcIrrK>rPZkhw2Q_CT*P`x7b;1a)|CyR!i~ zz)Ln{rGwK)voybVoLjXkJ=#wP?S^STJ0yL*Ww#6SbCmqHGp^&9h#*l(Lwn&7#00=$ z(`y!n=l(%M%&T`Ca(@3^TSVqm=G`~ycwqCC1m@68m^g+@L2w^zssD!lCh_D5JSfuh zhOux2LPY7Qv%{W{l)gZCcAxzem!~9G?&j3%=Jrxmz~gQi46PUC8d(YjsJjL~t>0Gt z`i7brn?MHU0tzT+e>i%SYd(e+wixUlluWWTmfdF}3>NeZzPl-BXZJ^6KS<&g zvOo0D8Za)gX+Br642uMgj4}WhBLR)coPcTzbbGo+&rzp5Hv0!`HV1fQM3c&m+c$Xh zNUNR*d%Zd8|9EuDq(h`0L3aw=e5v@d$-|HMd%0v3vWd*UB057*An89NmW~u~>RWnD zS6oHwpcjt32_UI1O_BKkyvG<>1b#&Rj7QSWRr=*{DwgHIpwdgaquS241?EaRJB(CF z<<5L^Toj1Sl7vw;;_!(NFIjo!lZ-IXC1RW~D(0CkAs7go#;^J*$!_y9)jKyza_}3E zA8;ueQm<7P%nA9Xgw0xfVaF7i$NE%ljV}i5-RWf>%43jy7I3Pt>Al9@$@(k{L{`AH z4p`XF8O2YrHF1jq2ow=>|2iVoCDFx;qaXimroiQs_?+!rqmIs=Ua~hyE`jzOJ_b~|D(mG_zOd^ z*s5B6P;cfj>V^cs^FOX^p!=s|&xNu=v*u>iS%fAvZoK)G{3*fEllx@r%C51HyTI>A zH5iFB_0pW5K@+jX9S2Y@@p_2t^4W(NVNhfXVPxBw#^Ue+K~XYkQ0Z5oRQHu-u_i|Z z=(RZ4$=|#Kp^b#O1SzTTw&a+Hk z_P%Cr*@%hWW6#hhUo1#IQT5i7RHeM1L+?MTH6dH9cvzR}wGM^Ii(FSp6N1ebPw=To zny%-}*>phmLIZ3RII+(OM57c>D*js4!IKHP;cSo&lsw)ZL0)medVA@7lDJ&$xToWR zBN*kqb~#AYQWxUw{+MaeX}(PWN9=jv_1Y`5qK~rWor0^ti;;NflEmfw!p39pKeh!+ zp0FwydebEE0dQos>Av_lv*jkcJM&MYOnY04)#pIBu5-uW;Ziwb_o{a=rv=OYo)lh@ zG<{CdG_@A=aZu#n^XCaO1!S|CR2k=d{Q|$aot#13nlVt-ATDJ4b#ug_9#`TMq4A1i zGRYQGrJxDdEoL4GjLva%l!9_r)OOM<$Q@o0%|q>OU^9~ln8`cYDn3T}2rFLf6Gi55 z0F#ABt-Sh*IBi=xCQNoA&8$}7ZJ#f3e^L8nsmbUIfmJuZ$9M5;Fm{t4mmw~CaN=5? z)C9&P_>K^dq)|NVpn^>ROKloMDj$Agu6%6>Qn$H9a&Gn4`2n z6kZ*6ekQ@_usd`h10UO!XXsfGqQ8) z@WH-#yBZ4@7c@0kpI2c0CbIBU;9yAEbgezFgpC%ecg(e+JXBouXN@U> zd1ab8MO*+qz0eA%jcL#?;|dEdS01KYx+<&e9CjQHw;FZdJR|!tKvYtdQRW3RSu191 zTw4*@$l=wS^Z(}NB#?iqR~mS-a>GQ=RKr0xfn;9)@`ObzIbsR_P_XeDA-RTo09N#7ix4pxRw#}Nv@jEn!!3q zpKE{#^9c~A0eLa)`mBh<%wL*89q&LD6Y=FT;t1j zoGC4mR|5TP+iz$AKR#T9RXxxG9aKNSz{xrVcq2*f5w3?3>43XXy<>*~XRtPR?P&Da z@qxElUio*>sIlM*}9!!Gv7amz>y0bGY{!daEyea zqw>9C8ZDQj!^OA5{5mxx8~KLbZ}$c_awYSe)LPK+NS`Moq%%G5r(5(oV6q1?dh7o5 z`sljN{=!o6TQWj6R~Wlxx=d()KWNcxmulS&K1tC($AhqIVA;6DJLA5J0F3pctOxz4 z)0<#UCW&UCRA;9Mkm>?dyb#NJ`w^Q|Rk-FVwbcRO)c7Vhu5=CSyG-dn8c`^mb82pk zMl8YGn?GC~YIN2g(*N`|g0)jpovy>%FJ6+rEmz;Jtx)hs!N3=btUT$t*%8VY z0$R`hrRIg21MS+m|MPBdYdZbin1jamSsg5FQH?^Wm5UB zJ0vIny&EUaS5U0#1Qqxh^)BO3B!rE|<5*xA_1lRshDafy- z{tSP~KSE}V&=|u2j)QCk*V;SK5%M%K;P5mc5+F^af*UK}IbgSri^XqA@O5okUn;oX zU%Wub2rm@gXkh3WOMfU5x$Z*#sRv%#2Z1(yqvdHhgb2~7 zfXnggTbt0so*{L`FB(l3dGE(k%Mwc}lA^^sN}H#zKd$xfvk6PBd5Z==th28HP`Yh* z(KC!QkfrDxB&D^^Tl}tg^n-xzTW`XIqGhhfUtKIX0)>ndh+JPyh~1KP|9J6{U;(Wz zD`B6uTko6T1XgHg8E-Z&zAFq{WWtvoQWG`nlWa<@!jH0t9b9BdN__;56YfK(!uZ~F zJ$0JS`Dpd^gCI*HBh9NYBtO~J)XDQII)rbL@XwgY5wm8-cb7J#qCLS4n-(Pp)09bz z87%i+>&@4G*&ylC7QIofh23&EnN^c!(^@9EnqJ=-J%1(9yZ>ZgDL67 zrnOL*g2gpKwrkczct_t0_+@i{_yinJt9^agte8+2a^{giV4W~*zPF3|Gm^+0J%D@x zJg|@kwn&0HFo)Qc|FT@0gEAFr+{ddr2r<3x;@8ks=g%28MGwAwA^EfF|^*Gh{w2ZJ5j+_cOZMIy+5keZBql+ zKuuk=uzK!2Nle$Rhf6?xXk#SASEE2o=#`um-9@buw6FQ4kp6d~k9jIcnvxWF@O@Uw ziZNJQ1~3zTaH$X3F}e$WfTD2${Ymc;!A-Vz_yJ(F0jziI>@9ANy>}Cgv#yX}Q1qkmyxy zz0Zv&%@G{g^vaU|rp4hYeo57+!j;-)uMDchhZBvB{QREoFxPE;B>VZU*sLt%)~OR` zu#?uwy*>OW1o{pMJ*fb2s+%E9X%6LN&3x7#@k9IED}|hLv?R6#coL*aPVCLS8v&vlqWcuee);A68)RWKeE?Rn>BE(=GlMgNH;6{hNSovfRuxnv` z3Ml0jyj51~7PqO*FWZrb6kpZVuY}zYIXVtL)bRs8-bp|;YOTli{dU7gSAQ#K8D7roPn+Jack=2n~iPQ>I%=?f!|s2O`S#>0ukO(ij`x%sZ+# zFZ-x5dJt{H^3hv4u*#n!_G45X!Y(dzjY;PfrBH@@^zsL+3E+ZGz$Tbde6rvWlmRj) z)ZepD;^Ot6mLx1H-`amUSh{i5Bh^c@+$(Q6a&U9|jFwwj=*bD-fZNCXNL;)5kD5g0 zo$`V)-S?<+$w8CoWNlwu=FEwJ)1#Lq zTu}-of*|&~YJZNp<>GDSM>s0L7FNs=to946N|T-f!dd?3+7`T0z3TP3n+ASXr$d&E z2UhKJF(Ctwsku9Y6g5=UX>Goc>|1k1RZS~og}G6}oM9pi$exFN%kw05p94a-hd)!g z;gF7Q`*(k*rzEmO$sh7s;-d(~P%>`rU1F z?e+~LR}Mj4-&D_rz0z7zQ=)8A!lBd{a^!OdPt={-@Vk2iY=|4kcp2=CD~7}o_kYJl zOtxKB6IgO>bG%yz^y0Pv@zd=56y_1sQ9_*$2z{oMiQO~(Ryubs7#6Ed;mwOK1unX~ zPzlcK#`uJQbRxa)5kKuRcz$B-td==Y$s!ZjJ#7gUT$tVzcr zf9zujab)*mfp-z^0=$elxl>NJTLv>9XTADi=ATOw!%Q?evHCqG$03CyB>S^9Q{@6X zry4OH+)V8Lb(Rua6%Sf-!RopB|0bDEjAK&=hogG+w!8^dDBj-->5!5W`29`PeHv(Y zvM=7GrH@%lVy3j`^Ds%R=a`>xf1{BgkzQMdJ5NkKeiyHz5|ki-JR7%yYd_Mct}f0C zRPMlU3VB$^lmoHoIMkinymD`FznV$|zr|U{&D)b;jE=G5lRSXTAc9UJ+x`kNUJP}l zy)Gvdky^(4oEbf0@nHubYA?)yVS8JK((7N5qym{j+h6Vf@EQp=q?*MbI0a5B) zxcuZ-4>=C-n*gJO=Bk(jJzj8rP)*4v14|-c0NX>odK~npH_o)+=gxnX z75`vr8Xs$-pFa+s+>|$Mhdb+B`0ZX(1=ptn+cI%gPka2f0JXD7-~)gcX?}I00aavr z6#Fp>jktttAZs242K+Uf7Of;N4XT-T3v4FPwE7`-{v@c+t@3`?2ilA3;z0fHIc`zs z3NMZ`_*)2^`%noVUohzJLgsvjp({Xk?FFi?v}B?c<^RhE<%R0>pq3k?iI*-?tdteJ zCo#cKQ($zgmKXJb^Wz__du{|X3W8>S-^NsU4Fh%<<5euW>&t@+F>Va|b%{Ta|D)(E z7@BO`Fucu8Vx*)X-H3#sG@}ub5+sEIk|Lr~BC!DyA}ONu2q{5ILQ&Z0?i60SdvuLG z-@e~4Hty@JV?E%98UK`NS?%v24VtefCzyQ|ui(|daSN{>HC`1jpO2OKj9Uim)SRmL zx2FueZI_M#lzP=&zOze!|0CaywdHrYTt}6j+)P6;2a9+a z@dNcqj<+fU!_ayIV}0->)cMRGe1j0XOGqA9Vorgj&0GT<6dBFKOkRDnjdP!CvX1vN z@+QF4gF}TN^vM(q_@woOlolTc9E6ei%X{aD>j-v0WW_2=GF*_OnF8^3Xrn_g7aMxrm@X;sP<3p zuNI%qBc9OOyf;T8b*`r`*f-F5L}i=|j2U;{&;0qpD5G}Cn?u4iX!OEym2K~j(nghQ z3 z$Do;afiYegsD^q!ggX*k5IoQ8DA%8=YVcWj5|`xG=8$kk0@ne8R1SM#GM#>0Y^B^Z2(`lniM1c@~af zw;9S+!pR~3v&dyIAVT>KvV{|z>cZBNT6|5U)lIp!N~lrk5Z}J~hk9GR5M3VCHCGDm z6y>TV2fv%^Ltcj4YVRF8cR(Py-N81%!(Rx7TswacLR5*km__OGEH#C_Be7D9A?@($oo4sp& zterG3Y31(xV%|;;rHi*);K&7?7PI6cdp~%~6lWcFUiPkWZ&c!w1^+h0{xN-gF zpV!l3U)r=(T;FtQj}-Z_G8Y@RJn_W+eLKFAuO{~7F#2N-d^%KEg^puX=Lcd!uOIn% z3Pa#+e0QER?e`p*olc5fxQ$SuvQe$w8<+Grg2_~2OzuN^Dd}D}Ulz^(v=7#%H8_PF z-I=ixU;mNEaX{PCMBI0*@Y~gTpJxN?F%k_|NH6YzBEtRW1M3jk42UZFHbd@DR*@Q7 z7s5ncMg(dF)TFkPK>9?ca&J~i-tYG^kNYvIAnFTsAXiIb7Uo0Ly1npzp9&1|IU&Vo z*F$@Oq=iB?+&_X^2zp#{2bk}-(PU2HvS&<19J*TE<-gs(rE>l=*~vE7ROY}cYz1U} zOZyQc+I6^JI>2u|J4b~ix60YgmX)On=aJEF=7+ym*INOy71D%RMNNw-vu`Vw+x6ul zH>!>@ht|^5SU4MJEESrwqJVcplZ0v0;Pl;!f1LCuuu#Co@!O2r26#f}0@pYr8@LU* zZY%TFJ4od)`S$NK>sr0ERPjmcipO zkyGR)TMUn35go(p2=ek?ZGP$R_w3(1?7t`r>47U^_QF6?@`>uCNP(aX{F)3=Hq8bC*AEm;5@R3t@9|EQBy=BRVEZQwGSR3J zoKf-;L4PvyjAgVXsehccy$WArclb z2M{d`d1(5byySy|((ji}Or*7=NQ)(35dkL~9cC3&kIC(-9A7}`4o29<(S#RFgP(be z6j8sRDRiNqdcFAXDoN+6njZi4sg5K_#mU%lo&#BquIhmNcK~7egWb#>H7+8c+V_ls zjU?Wb;M#VCX!F#j%com7)X6G?#z|S>^znP$K+V81`AUcl#jk>^MEJu-)quKpnQ%Q~p7^KfjHn6k_Z!^##)6&Lqnt`{QD$wILY) z8#VfHK9E8qRX_S1d;gEZmevoJH`AWW1P&Mu#Ut<7h(`kHwLy5XJF4W?zAbs`ee&;e zG__Y;EM3Ao5l{{z?`(Wk&yauh*QtR| zbmmN57;r(e5e#*SUW}7oV}<0DR3E=>jGfWW|GZT(-!b^ytZ+HEhM7tx#MEFLd^;Vh zMHOF-q7OW|4QnTr7sPvkwDMgB#<&L1zVfAjg3buFvV6kU&(C4j=lbj9VSKqXZ=6|W zHy)~$3zfCgJC_M;1T$M|F~p2C&tJPl^qO=1mLC{TO*b)Uras#+8{V|ei_6=4J>Xvm zzhz4#UPVLZexqn-b0lu*YJ)+IwWJ#92=QOdd@a;S2pcouuhRxFoyV>fmO|J8c06gq z|LM%s>Rhm!Tp7I;f!4&Xmmo_RNWY@LlSd%oHhw|hmLP!2n_z}5tfv_ZxyQx$TZ(tV zHOxlb*=nlRjc={slF~;=lr5eMTEQ$M4mCPUA;=Qh&trk9=zPOh#38NEj)J)JU7K>$ zMbNx|$n@pbCd(tWz zVJ?$maH>G_y}Tv?2^KI5?gM0&FTzxwH>P`Drf4cB9OE_S^$`bA~mGA*F z)s(A`cnp_ZJ$(V7F0OKEzVl>v0eN&qL!l>TWaUaQ;?Me_X*HVfbxYtxyiZK?UjXhT zo`T0%Nix!D*@Mab1d4*%Ti^cta*lGzMg^IOsh> ziZLksh`T<|OJOx&i&l*8y`lAlEYcO1@iu&q>;K;e@@jYGa7wYSQgf-z>P6PTXnTu;& zbbdeC8Xtvb&ZZMvW=XNTDaCkFt_2xAK+ps6oSaCA3=b(_%C+fh@B|hYYbQl%L4IVm zgjdS;<~<*g1ZIM-5rc+FQ|3R-!5RmJ#ti!YYSSG3JzscBJD+P4IOUqZU}0(j48KXgtZwdBAX%@SRkm!G#U4*46-GYQ-98UbRS|t5GwAa zsmWdjngLVtvNL3@(p^>g+6vS7?sK2I3+o2Ek$_XAPdFsxzExP{Jo0J80pAhhV_qdL z&e@*=T1hY3+EulCbnXy8*s3<8rrzGnd2^b~LLx4TZUrl4Sx9^vpwm!#`e9wHB|tyE zOhq~uHsrRo$u-C+g&mw;_0)$?Qt4znTd)#nwMR%eiyQBH+`!2nj}5o62YS|@_=@ld zr^|l|XadFp1Zc!P_o@H*trZsiJ0G~+k~o&d$sjq0sqRz<`NV#`7Rx)Dil7L*No0~y ze|;;a<>AqJ4rS?A1A?JJ4)rRX3bO?G_+^h(skUk*$J=Lf{k-*$mWEpz+Sn?)a%1f^ z(+Vk6H>S^<=zosNZL&)+`-Z$sD=*L%_j+rW@7^(~A9&XMaee8*wJPk{YZ5Z@DPemI zJEpEW53E?92%surD0&lhf7ts+;Xbdr_%i*XCw%rI{d7VR0ycX$Rg^}p>3d6o>r;gs z;5h-n{_`t#@-$QI1dQ$id%?&3r^*vWAxWx+Ujd_Ua4fetpsLv)lwoH11zJrKjaUEG zA-)>)T?;0j#8p>Dh(>Ff-vP=dLbYLPB6ULwN|SuT*_CqMtYJTO9BI-K(p zpeT+-kAA)`5OU){Z)IVWrW%apWGD?#wPe$wFgbDh@7sNT)y}(_hdTeTw1P+d3m=SA zngK)GS7qv-PL7A`RbrSiH`*B|g(=QA>U}ONPIAz!mt(qDTh90iKA+hrppyQrDPbd1 zj$@cW3uWA~n-UTof)hxW)7 zc6T#r;P%Y?_AgZ|tUp7@@^}tKagB71sKfhSO$V+b0S*DyML}L4?fc;+DXa$uB|j;) z|E|$`<(xR32{sJx`;nG$_D<_FQM|o{v=64e3^~71f}~Y>K$5!l4)v9OcS=Aw#Q7#6 z7aGdBBb{>|kLMgqH%SH7n?7IAbOA$8aM|awxun>{NH3t^yGbk`x`7ua>fGB9CYnIz z4cx4r*g~MkV_q-EB)nv0%E~W(WF6Ybji)YMoDECvR?y;Tv)zss7u{ktC+MSC< zir8eHb-uEVppDJAzl(AW$vn(?ZWtOw})rZ zRhSmGs4`ft$2oR>=PB7`?<@4V44*FV2gU)5!#Qq5#|Msi`%(H#OR~PVmQ6Qsp&4bi z6*-TnN$K^to*--f$y)W{RGeb8S#!sR&#!MVOf1}Jn}mELtNz-IP${ZTo24EdO3>(jl<|A8id6aItFDWsp8KY1Wg%kPw#a;j}Be!1j>4%Xo^Dy5P z#P+)?42B8 zvcXKL7-Qz5V)B@a=E~fmo`3WZ6jk(6OyRkq`O{p`_j1L3g#6(if42NB*O9t;hoZ)~ zRN24r76EYdd6$oSE_=;(W!wE_7FI6ct@=`7drCEU+)CB%!4l+pIs z^o~_~HO8G<6;&IqIhf8tT3KYVrXAp|M9Wy4r$0NBberr=QyBtUF){m#ON&2!hQ2*@ z8Dy}zK^(MRONO1s^Sv)iW#ihsS`TNXM)N_L=^iDpaIbS(K==jE*X^NqK9IASoXOx- z7$LE;ut#o0cKlvBB*KjVC6dU0%s_`UkZ0p=VF)m+H6NKn38D}=`4gi7X;UIgIEroJ zpkX0C5%5&NZUajf2NmO`dvS{r;&k_;3|v-q7O)QW27_O-E}H6)JQ?4LQBvlu_~ti) z*OA{5dOV_WUmv(avj(%u714dLWe?Yg~87WI{vP_MNPnHV*THwW#pN} zky)98yXKd60-2cOoAJv;zou7HRodJIMLDri_%3+=6HfTqS9_Pp6VU+FF}p~JA2*%o zjc<=HLG44gd)&s7BKb{{<68>~z*uA9gd++i^;*f*PBNMp6K;LV}{j1E#>zIi2nZG!mr&As+XO!C7% zELD%Uw#j#)5pTr?Z8eFsL_RrwO1$+1t3OnXZ}t?O0jk?B5cAt9jTxD<*VC@0l8jVJLV=YS-X$_Blt2@(Qm zDD%$B^*xtc=MeVzj+dX=^E^Tb7-qXSM0;Yn4lOx16i>n6Rg;I{{6x~3uS4LP`rfT( z#RelO6x4r|csjzB%r_l(WoDBHQ8eo#Th;F(jpu$_AEt;^T>Vt6 z5m_i~>`js6D5T7$n7UJ6&^=^BnV!$L{mF8y?kt-q8zmsr>=VmhRE-)B3TJwU(|* z**_!>g{z$I47mOF8(=~7e|s~2Y?OGx*OVS!7I+1WVdx&yk)K?#+*xS&KO<$2aC6dy ziTl@~*qbFpIH<{a5pc&=+z-JsT$Y=D5tpk6;G|80Xhp${Ov0f~*5}}J!C2rO-#f>| z+eYd&H70aOwV0Jx?m;Hn0?GJh=A};(97?YjYoT;V`rMYe9{&IGbi6@vy#!SmJft; z4gktO9xF@HwIY8P1ioVxKv|stA}<2(fF}ol-c7lO{KGU0FBTb> za&U%vMfuYsC6_GSeDaDyi+N6wWG!&2ySXITE@191@BL7pB(8Lblu#@GUo?R3l3>drb~zFY$-!+vAq)_Flmb}{ zuL#m>C8Cs5MpeoYQD-{nfsf37>)Vj;l00~pBjpMSca3>C)0MPhO^7^P}Q)epQ`!?9Vxzp}UoO_XCuFBk<`!shuZgsBgAyn?g zzJ(bbqs8x(hhudGz|%V02AdQK88qGC$wmCG$!fev#xWvKV7|B)>p^^Xr%PpebuQ0d z9zUhZGPUM4-Uyy5xuORxn8VKJ6cirgGp%5)atCpEz_DgM)#i|+4=4c)*Ukrj2F;74 zPUg^qD1?`6CLe*-3>P4o1&Fm**#uyy+?LoqBCFvIpBBlYq&nuZboFfUHA_65Z3Kpr z1DM2E8GQ`Lm&v6%0k`>@6`Cie3skO2pu$xE3h`*m5V}PC#8k-iyr>rVH<0DgRZYnI z@Uh_F537RHe-au@7FdC4ohshZ$L}A%YpLA{bMZ&Y|Cs6Zwp{0K*y?lntEX7!fn7{( zP;~Y8EtKA6j;4X2G!IDfmr@gg8ZTrkY~i|}JMf+foPu#s%aZ8ojxxN)ne}RL0d)dl z;|=8ZPlHq%ND>vHzjVaRLQv;*bKC%_9}HMxxxr&~{w*Ei!e_|LIS>hrdN@=`PjidW zqG104w;gW|M@a7RN}!M3E1t6;pQ%4in8L_&$lptiH!Cq2Bc)cIt6msKWC-8FhO)0uGzif=&9=zCb9}h_uOO`GLv=$1D*dIkC-@(t3+o&F zYE8Tq0Rzmx9ES|D^hV|tW}gogaEJ-Ma`U3FW1Qw2Lp@|Jy2tqa%#estin0x~C@&kp zgvfQdY;4tSC~rzHj2uFu->ABf8OL&O(|ClrN|cjB&$JHn6u&FreS5$;o}CoxM-WYU6r3+G@@*I%82277)y0!zkei){+rB;xW7eUw?1+y zdQK6MLVEI}c+Hn1Z3N7U-3u>Y0oo=Gm6Z1C67-_LDzHXQb^yV3-bFan2N z+Ibhypzf3X7HOBq~5c-B!7&u`aO3eNw|puL|Cd)-m`QlMA@@B)psU>FHN(l;f!BF z7U)kWd4S;v4+hx;F?DAy7~2|&kopNrh*e#>!Oe?pWQmX2-+r(O8F#Q8U;izn)NWy< zT1t7qvgth^n_Oo3HL>D#@a;~nDR3!aLGIONqo|Gkd@AmI8#eWRq(p}#=`!Xx_3zJL z-hy;uQp@rYv=Au8U;A;(D|O}*Pbw>Y%BHfDPfo@`wvK6z;*VaG{!I3`)OFNM4zj8_ ztz7+Cq`k%7RN&UA@W#Xeo%vJMihT+9c}4)ao*V!pN}zz?h=>v1G|-OeJn7xoWDAiI zr*oeN)HXzx<9psW!ZlHM1_ut^1?qI5H)pL$Tt9fb;P=Z78`Ja_(DBBMUcuODgj%RQWcYg+_?2(u!42CL|QH^nZAdbBLpx^ z$SP!?JZ2;q{_OqYr$sPSyF;sEc7Pdd6kJC8Z$gT?P+>rxNKo~)yL>W?G;QjVSJ(^j zzq{OYcFx(f&iqMIdgRVl5CiE?a$;$YHf%{(CA^Z?~nyj9Z1*L>$1ey7&K zx`^AkMK(!YpD~ItfjUXn>=`sAwM~hiKHcaGE0uMjA#+S@(s=CuXE^()3*4pT*z7;H zI=GbGm0ugBXnuLy;C842dHb)}I2m!WUXw(^QVzX4c&lYNf(F)222zpeo2gIei;nR$ z^Z$HRF*?$bERjvvQlWkB?{4e>?KkPTX zZM?#7@-J_^UOpzeOp_6~Bo&9Z1QF3njLrfQ{)`bv6h?a$Hw#XV>D}_PwHP=@vz2}G zASe!V#xqYJJ7w5wrO+b4cl=5|$t8!;C0Kt$X=aRlt+~TOGKNJ-Z{bOWCt=SDbeF!v z)G0{iLiE`9&)5VZ{t8GZ%#EFpU#j#~-S&$#_V=ToWlQp>(e8a(c+Q~X=aC9b zmXn{!r6S_jBm}~x1^5G=RV4zL-<4!TyHPQ0J@0{gU;fe5w*XWJ4_=GW)vUnw7$0_M z2%X>An-~FW|G>s=hU0o7mYfi^xbPvDiSsX@^C~|Ju%7wMX{^k~AJQBv)8>=EK@J46x z543d{VbDTU!xG;pswQkC^nk%8_3KDG^*m|Nm18mXHO5YnOum_^w7oSU)(a1Rx4CL4 z9b+L|P**VVRT4aH_6!rrAxj6L#NH1>0CG3n^(>m|=;qU7o31rSp^ zTl@%LpPMIwMzl2zgr zoftGlG-bb09R8gxe+&+ZZVP7-`y$jtU=XVowp(1rcwCJlpI&wx0iOUNQ&Mj+ZuP|E z3b|B+UWXVn5XE^%yFD@O2(1Y07Y8*{;*n|gRWHIUGF?EG>XyeUqF~K!6FYPNUGqF| zBCzoVbZ%+I*m_rL#|{q|siIK_fkos4F=zjsA8Vd_#BnQWVgC9;kzLNHJ+n_Pu3lH< zU)WCmc^lzUGUh~Uc)7LgJF9haD4!?QA^j=WbPJ69ab}xJ-I-=x?-7RI#uzG{G}JLi zKx&dX_k({#AI!HI3%}4qZpVw3M3 z<-tGCEj6#c{!Xe_)@YzE^GRCIuKvc0%XeOzB9!n!><^XZNudM692xbc@xVxmk_-jP z>&>(xzT0F|6Kblwx$H0I~)6kQ@ks{p2FlU|Mfxh zgAPWzQM%Jdt^ud@J``h!BOc{U$!PH@h+F8_H>(+mgV<*Mh>cAqM+ z=izH?mjZM=!97QH$9$wI7Eds_ng~w0_yr%BGg9@ZbS&mGSNvrva@JM{Tp=+~fC4-) zOY~m~boc@LCjZfwSHIf>gDQH4XAaQS&i_d{$agmP!i@soY#$P@9%E+~|F=2;IrRQ< zDVI;{8JA9r^h?|$gJrMkYkx0wA}J*2NYoriYW@O8j=sKafn|E@C+NMzT19a~X_OB_ zjG;nuCD8fix@CtM%{(FO>R$TYi%rLu&MicKUZ*AuG zC0AS&Io#(BvnE}bv1+iExJPrK@@Z8Y;(-sLZ!LhTUXi|Z;Jv}?;!$Iq<>_PmdCsc! z+aECiAL%X^7=sxtn#Z`GCR2M3W#bE6D> z$f;kt-OSZYu912Ieo=vSt*%RmB=GTrLzZ*k#Y@z~laZQt;ap2gMKIy40cQL0Op~7A zf^qV3hz~dN7-3T~p~^9;=uZW>9KEVxnl)Jf9*C_IxayfJlE&Pt{dt^&b2b@?g-Pzj zJpo+$KUj4NBgbWy#=DKYuWZ>#6jCO)TOUTYxqP-wu9 z+-@#j4D1?{A8r<(wNs{9KY5R-l=-R+q7e0y4@W!O5|XT5gv z1wP1W(US63kOs9DArth7oMNZEnrp;O68YL>p!s(c6SxP=gE%YaGO-MFx;dtA(hkEM ztF<}o8Vw_Qfx@)rh{jiy#2!%`^DB$Ta1syVI?xCB>7n(+9gXQ^hl$$sGHe{UM_)kP zsOorbX+N&Y5ucqcxmA8&;F%WPKIX;EQ$(7||IMlBkX%Dr=c8bzE=R zxu>4eEq6U-0yG6ay+j+h{K46$LgXbJBVO2#_o{OUNKm<~KpMOZvW6Gu9EPqLT?S(B z(H6Ysvp5R%nl`uZ-4xQ$!s%1KPl>bWaiS^lY642?UOF&W+;58F?!N$x6ENL?i#Jrp z82v*QUVtG?40{X=cnI>zylK^XAGc7RiDd?=(Q{nX|1^lj1k}5;OFBSL5MdM&w*gEO zP*K1-3c5UaXKD=~u4Bk^DFXE` zFY(;M!kd5OLGpmk`BEu+0mo2(VE9VD!ud?D;2JQFUtd0bks+J<)8a>tji%Y6zL(i& z*5A-!GUp-m{? zLE1KcqzA2{w0VL)lc({}vFTn4ea1AUF62DuFRwgfckgJlGHhpf-gH%4K5J0Qmd>GW zJhFixL;u&Q_>5e#IX)ECidw~XEYEf5h|=6#qbIC&#TzmbP)ijx*$G+#Weu+<1?-j( zlz|MZ;gIh6jU21$yA-h^lv~i{k6+$}O4FY=slE%@S00Ht)Oa)0m8J_lJVS{VD4iw` z2(wS*oh1D}I`DPY^zB78l(52hiRt7I!2%3Kh?iaJb;sy_t%$Uxa5A+;WZ`>^z2hSv z`QYUQ9MV0+(fTy+^8f!L%@kfMNIr8tl5#*nzk9{)#_~RRG>^L6;sW-bAM{rHxnepY zZQ2#TsO16YF1jb#%_yhKb`m6r?dZ(eXYF+RZ*B_8d2)^vLXrf;jJcD}4K~!y3eI~L zF$?wFStil2^Z}OUt?r{aipn}t_9>_C)iha%_e%}-fn2T3FCM;c%d#F=cmFW=6k3=d zRd@DEf@AI(m2;CSX1jg#3m&gcJEM(;FB$LlD0jho(8d21s86{;<*?0RL82$Hc(;?KA#=`R;%`$Gi3_q3HV}6Mi(_EFE952nSBmAYf`JPCWXb(=!7c5Yy%G=j zy50y6QPZh-*S*t}HvFc?@#No>0of2Bc^o4tl(LdXN8Gwk9%WntcmfUI_CsAan~m$Z z7%nHtm1F{0ZTK`52d@MA#1`ONw*Q=d-An!0V7D{9f}jdC=-fX>a+fQQPm@0|O?93r zL{?3B@v+l}g_8Z9C?0u5UwqUZ)+2HI@tiP=-_I|Hzrc$|=Ya4X5GmX^(S)_C)RuI= zaOJ7EvYGaDy;RRNG@~`wV4rZ{{PwYESP#TZzAhRIm<81D+)kAA$yu0K{LOj$Z>0gz zCky%Z`*%pbV$2{ZEFy&Mok+bqMKUUDV4$fE+3PI)gt{nm+jITG*ldQ&!# z`g~hC|IDSzQSuh?1|H$Oo!Efv8Mg~=A^$Nhf-B`KJ_$8NB1nhi6E6w3RJO2O%U89AnbT z#>PZlKpA!C14}z<&h{1;I$ks5ZblmX%@{iS*(pyL)<)Mp_|=O+?RTYPkwlY0!BRi) zi(y=kL!_-}@1ii*w`Igv%b})F-~(acY%W1sN&RCJfdp@KCcdVS>^_$f2#W$}S}i~e z$dDb*9nN-?X*NBO*WY1dXS^WIAG#=s*0Wd?4_Y^w`UbS-@N=U{3T7Y2UTnF%-K1it7u!T=cyfZM^ z!a=5Dt{g_zP?U%zAvXzJeZ7$ape5{Og|-cM+QnYQVaYm5^uSAh2_;5Waf|yF_p#$D zpT>d-^3{Ea{-+^iAVUhTvNMH|Gtt@8<#~D0VsZQPkc3;acMtfGnwzvU3y&oZK7E4) z?c3)hfOIM{x*L1`tY_SPIs!-M&N9XtO?mko=U)6!zb?w13ks^qRu-h1C8vJ-P@^Xd z5ZFOl#{G1=1zCUS{Ov0z7fDOd?%guun*G_9=W&C$_9jC2&J2_BBkQUo{}mC)`&{&F z<33h*!Uo3usS3&p1J0I6Mn`@VIdN?P*^cT&1%HE02O@JPKpKWLfC3Np zXx&?F>3X2b$-7F}BltS{Ie|WjpT77RU$iR%lNUxyX zqDPTk6FjF8nEe~*uqcGTne12@<Sq2U^HPVu zX(Q^ob5ZK(eT3S>HlT()xWF{~4xCYp+iDfdhcW_ZlI{n#5>OwT{XH3&PLXGv_nYjE z3(wY_;?J{dt=B78m%j`YpV3Zxt{8fU+-9F8rUD_$$i6%t3No$3)VU~o%oEk~v4N!5 z(7qf|q48`2whxOrczfDKp}c_053o?nd4gWJ#G3=; zif%ZBato&TfDdeCZVj3gW)>UkN){(>((j2W3w-}^ij>Z8;!UZ=?>>f7xK>&76&e%RGGgS4N;<7K>z(BE; zbjschNgwJj*G$2#P-m@#`i9N_Dyx6VrKR7k;!x(R$A`%F88i>Pos-)!kB{;5D`wFx z%vbq!)4Ll(MTA&9_+-jsBcBl3IU~#a&HmtPE^ePMQ%z<*=I!kDo)yl6R{yK79g))F zkN@KX5gF)zy?ysXDFL?bMUGE+S5D&{Nn#YZsfNE+ODn_yH%1R`s2UD+iCK8xyP}NI zzcD514|e~U2yCsf}%B0Ul8C~vB=yod4hjuH}`TA zOAn-`h_p5;#RtVSb6N*YEejP~yf)b$^kEeU3zrMGAiE{k z2^`OHjV$*2sM<4n%Sw9~uZ9(EZ=r74ScSr6Fn!kpL(W;PswgPJ?{kZmT+d11ym?73 z|Lh-ssJ~%!NG!PScZumcl~?*1it*Z?i?`mjhA{lPPWTrIfR~F;v-?)H-Rel# zqY3#e&MD)kXqqbU1Mj>=%QFVi$C8q!<>8Hqila1{*sQY7_>WDN%?9q(mcMg1<7V2P zE33i7E?w?y8@}(o?02ZoHJTa$ze-3c@27eskX=<_Dr9$qEs*^rFpdX=*I}%GyGs@W z?5P~aqyPh_WZ*%zd87QL2Y(}m#Ts4jfD+MyLY4D?W12w_lm zu+Ya3^Wn0#84uW@01pskc{({oWJ^L(VRUZS&Li4innlvMk-~-@!h?=PDWLAg*cFl< z*zg7cdRMZ48o=bgKq4P&KM6f1d;Q%i4|11;5&Uw)hy?N83Vjr35)nWByqU1QM3%&$ zX1gW9^Ot7RJY|$e@8kS{0;Ep0!0T>T|EVs+&8!;=QFN}w#I5g@W3E%`gHgcpFx>uO z`Pi{p66NMG1sY(4{eqZmCOFi)!G}aR{>b3p#lW5Bph0sKEN27WG?7AwwLS!q|@*ALdy_+9Y)uFzyj^M)I7TU6$dNypB`novFZkA9FOjvn;noRYcqwmf>0b3sGJgI2Y(XXkKn9cPMQ+l3 zh9bs&A1|+rF>&Ac>3t-5TM>sn13AtF9F*i}h@RrC016}Sv%uZ1u<9nN@f5xo`Vc{4VdhR9uq{6HchNIsbPjDyp zZR6}uK(bMN{XpSEoUxhX0rC{56HV;kLl+-!U8#_+PDw7Zf7p@W0OH8LD8Iz@vvZvh zwJ6&oJ`q3Dki|PKFk`o1k1gk*Ad13yTHqgn z+Zx~n>!Rc~r;jLf+5<)B4AvJqJQjW{ZzOL+;K#BNuXlE7>`;v~cwOmC+!f?zeI3_VwsDd__3>6GL+lK)J+zIOFK7I=cIv-> z@DK00jk}&@9`CF(p#P1;N~uurt-qus4848{d`<-tPWJje30!PNp3#s@@uC5EpXMbA zcUvFS=u^EV^6`wsfWZM-maW3)sNr_^XJ@FpmUSF%{hpN2SqcB(R-k^a1^7;w2wL1( zJ$xN-=qcsxP&waS-pKaC9vXz7El{jjjGrG+Q?q0Ybg0mfWxiQ3-6$s%9#bkJpe!z# zMFB9nRt;d59;ph9NLJ*pWPX*IRuz7d+S0ZdJ`Ccc=p^L)Rt?zwvKVfg zIBu8uD3jiYA(1zAY9=Uee~$ee+gIX4@>iz|OVqzswHTU|-OIw9)#bf=Q2^@Q1uo{o zz*6+Uvwd^fuBnb%pj8Fcb^*$9;3j)|m`~i|m1s;%Tr<{;5&)Tqn-P;NY*9P+sBTT@ z2^&wa@UM@X&lxHF(%WeHwxH0L+(Y&Oa*^myy^12IUJv(nVryDIAB%e#(FPw`l!Odl z8P$iAP>dS(Z*wOg>|33kvG%^KB1eH`f{N!Z!jc1H@=@wDZgAouN$}lAxJbNewQa#A0@5&%y%PG%fHFZAm}B()I2oKk zpuOE@q6g9ovMP3Y$_TYFGR_^(N!tFrW;TWGg>~vg(V!7ZXfHcEuKVp@kmbF|5hC5oKAl0$t8JV4nbq?HnpVL(yX)5sbXX)`yDLc0x8ETAkRHvJm2 zz_T*{|~lcC#{_RGei`8oKW_ zq5ksHm&rl7{djHvht~lUDc6j9)yz-tFV=brmPS{9Ha)up|bS z3y}=j7qeZtj(UMw=U^r>bQY;-K>tBc&6A{MQ`i{ zmte<~@e;~SwqL>?W&HKivAWx^Q$OMAt<{P@2o;0=rA#hRZlv^t>_Df2_VRN?+wCai zTY4@SvSb%4{j#spR>}%fc!274jNrxmQ_mg}P>nqI{|R4@I+I>U*uVx2*qju*U{|(J z&}k<+aBc}Y=K}<-{yxwS3@xK-6{;Ji(7@gT>T0Y@>^PpfnNE#cDW7aI__lh_#bQm1 zF_}2X@V|fvm<-QuQk61f-mq9!5ceK5->;12M*Mo-o%uDu&HrnaJDBG2E#-H@ujJRx znTlAwj|WY*S%JRgrAg;_r!vdvzw$gn1F}mC&+iR$lv{#c<$tB!`^T&Ft?uiHWT-xL-A#3oP+f3O_1G;X&Bp>w4;1CBe-ZK+78)qt5a$D?UYf9CDVN z4*8S?Y{Oov_{!K>)Blg6^YDlIkK_2=aa{Jw=Exo)Lgrb~GRmyXQdU+-=AAurgrc%{ zc8KheRWh^F*;|e??l|}T-S1EMJ|1`9@8|P=zh2KL4q3sUZ~Gql!Qc68Dkfm_B&(W; zm%}4;admx6qx0Mc8*Umi{@w6d{C$^EweXM}gbBW}2aZvlQy}u1Qj_hRR6rFaw%p^g zTs*cwek{p=CdllzT)($0KmZlaO7 z>Cqp#%a6Nh?xR}Pt`OsK4(hvi9C%bu%Q8vh+fRX;cf;Qwr9B!L-P`hrN**SxNNP=w zvBo_Mv{2XfeD^G6{z@!gT~wB8w&oDsLK=$9XnOx#8PFd>8>l~H8KKv_Qg0>mh4uRJ zzfnLKXY54s1J#$4JJf~yqrKjO_D_vts3;NfqAp(-Po(7Dhn@{zTms4y?B^KvqRf65 zOhaz7ShyD-`5zvJOw(>_j86Qdyh&|?Yu~%Qr@PKbdTRBH1(l*9HxJXk9q29|FKeRr zdUU*=(cQWVmYVZ)VTA>xt(`%aSkN3-Al7z;iR9yr&QK{y@<7Pmdtv;%a9>U8(Z&1Q zPMK;tt0UvNzPuYZsRuiBLGQ!4$LUv2lG_V-D@@g}0UJwS4Sr7<2op%j*&?rvR{RF;yi)%OYD$mSCe)1U%vW5=(yzNkaf4JD)KE+x0|A* z@C)C&sj?(0T`M+s0pxbruR`*CMK(s4A^u{;fZ=}p&Dg4GKifxvUtEWc--j9cwOV0m zdW(Nq(A-z7ksLJq@kbq;;77C3`B1|TR}uvj|5Gv4);_H$S7|(@`byh!lr&20-$W@= zdSYm)E&XC%GXSP{K#G2L35!S?Ktm`|%NVM+-z{&sOIn;k?>1#zbFw*vM|YqA;YMjn z80GKapE|k4X`k*fKSWjh)U1(pP{j3q0u&U6Dg4>u1~x83-zwkoJL%+6uVnBb`L4#k z{;l)CE;AV}1dBkV295{g&V-^sf(Rc$!Cd|)2B?8wKeAe^Q@gw#2NCqO*d6Q;et&3^S< zqX?)h9DV2Uw#eXNE-kolGkasl!w!eAmk^H!A|{^BuYe9c#92$jfx?|(vSy`~ad;;- zY6peL$QeJ!N>9NkzuZ6xytH5@@^RP8%6&Wkk&qtnGASg;i%Vw^Lxynq-x<2e@gWm_ z4#^`(-wd-STZJa!W#_XWM)da(iLgH80y@_=$C$hS9YRY7<+izqq)xve=FlNjPl7De zBn4z?tO>nK+Nj`>;Yh$Gc{AG`;=a_OY0lg0{dWq(X;H;L8mG)=erXCKaqH^-y?3U5 z3=)D`4r@t2QvZeL*D4$wu@cO{&-(Z3i<(gpbKFCpBSWg})Wr``PZZyMzkc=435d4jwZL6DRRo@Lz}6|0wl3I6=xp|5gaF{mNjXKM{RXI|8Lf{vMmF?` z+Xt3V5dOk4jO>0}lCD=eWRZL-i6cBQJnkbkuIfdQ2AWMrCP2;6m;MQR6#vdunHom= zfgDdwSF<~5A9R~Ib=i4up4ccIp#}CUdwFKEUPCK-hh4J_pjYAp1ZhsHSY)aB*j-b3yp2z zv}>15opPo6?%>_^*K>Gn(eF+p-tnXUiD*p_i|!qgQ}h9j1S*lGaNj*xIa!D}!9t>K z>k8gJ<|l(qB7(+;eo;)12E9Eq{QNC7JKqnC_iRgMXM-T!$tmr&431|rPWL`ek!$Pm zkU%$K01A}TmyO%cljipXqd}i?u0f$Qeuq!8{yqrre&}>5zsun+s`cLD$~d8(O5pcy zam3`0@F*?H*a4#NAkrON=LGdn%JkW_D7Na9)UBn!Q46-7Yz*7x$|f39gs^d6Jp?+M zPSD&ElJid&8p0Pe70a^NpOU-#lS$cA}hB z5Sko?-$?yCPM?AD-;OPJ4$7K4|86#;mV7=D&;rP8j>WCca1ZP2KQ5 zsIy=A*HtszY?~=3t*_@0%a5oZCr#`%W=^v~zYFeytR=nmHr^QzxdN+8*mg5{?B(_H z-cpxf+mMCKvXRE2Cc8$Dkm88ND44O;)IUU+%WDx8xL}g_kGTEI;g~oHUs+e*s0b^LQrD4I8cqQqnXm=X zP5?p_NpwWCR8$#u427JKXIFuT?vNK59J4l9t7>#^@QrE_V@tVAYYzMCRWHBadYnjx zUB;-uDGF5BV?7eWkF3EAK>wi9F;c}ZkN@_QyL4OvN$Qz*GfdROT@$KI*c6LPE(KLC zIr6ao?CEHF#Cw}5$D{E@d;zs0S8Gi#J|IW4D?0Mk+Ib&)C<6O{RPB*8?+gX`7B zX&QbcVR(QTqozwlAKQf#)_OolLQRJ60$UodkiftKJl^x8x2B2;C6U@z`aDvi`!(7Erlg(Z%5dT_NkWlZoVn^k#6m-9Z|@<_#=Oqt#fsQ z7Kj>G?^Rg43ibo5eg(k*8$tuL)S#_K$KhV*lM`eOE~1@p?L?e-eDTg>bBLif=`Lwx zHY)v>{wO^O4LN5zDM`yoT|+sjc?|&PDnwn~WcXU}hX$=WOf|$e?t+O(Jpq11^!(f$ zecDiX`s?7NK9trf@kU?pIEe~yD0TIHo%q@N(eCPEIT3z^kJK;N`4OEV+@%ZJRA^WZ z=KLfZ^^;rR9@7$#xQp<+zs7c*Y_+40I1v?m^^Vh}#1c9@fVLHRtH7_k@+bT86Hx74 zo@~V}E&B!*yex?0$mJ5##&4Xhufn6x-?OV3fSpHLT7^75%}L^EV<(reb^&+%jc%gg z(@DVhKlh)Gta~?6VxI%%e-wNzzkZ7dpXe8H?)5alBNx`-m-UkAKLGxR##zeiwP_SH zFGM5eKaQ@GWM3HUMcj<&e28d%Z(?`-&eMyG7Z(iH6dQJPr(W(qLWSy&w>0;gd|5vr zR}jyhc{XX)(2O?UtC78@%ke*_r#rZdW& zo#HPKAn#PEb{F1V=}5MQOBhmeMqXhG2R1%r1yESdkxz2i$bkXrL@7#jaz6Uz#Yo~1Ss2(sPpzxs{FHKTAL8uVZaRn@!1aI2 zt)l!BhYb7z)VhCXcK%FKqgh=0)DGz4Dje|6??6eA+7&tvgg%(e=rL$&3pDCQ@(mFg z`Eutvb!io|?gp`VfB`z8)jp7maKJsZ@4Fj*6Pa-vBQ*COy}=?2Hk55jUfu0|A2Fz$ zIU*?lt&p5UmwKdYju(iE-yk%?FyGnu=yl$H|7+PTW}z%smb9IPA9&2per>wb@Ub-S zX654j{S=0#F(QCT>iD~fw10htr2L08x^ZnAg!u_8uYh-FYi*D5U@K`yp;9lrl+o%{N;(49rYe_NB+1jY+U!g5FU zeaSXzEF?^b(8a?4@lzL?`M;GF5D@Z7m=r`@r$M4Z;fcQN=SC{7BJ<95g}>?f=Icmt za0GB|=LGA&gebNBo$kQY>eQdC)4vAdCb2NTlqQ#OmRhv2v-7hg#3~R;AzVyX%-pR8 zAS$1e0-w~D{9K9)NP74AO9eJO{L(SWNZH-0djI~u>Km2U!1-lvD-I?ZDCsOMjre~m z5OFs7GaX=jMl5h0dG0b=1?!fye@o2l1B&_VIbl;WG<%YH8YxcFQuW15hSr?RfHMQx zL-t0?IrgNMmnos+|BC>RN&mX6P)8TS;}d!ky)iJu#%=v2v2HLw%rMV;+366{71_b3 zxqyAvNp|jdP*ZuSZ}71i@s8i|6YvjGu|z-N=ZF%lk`OVNE73l;iaw#^j_6Q94x8CZ zHrZzvOhav4&U<5+%f{cVg;(_OZi|M!eH_vP%iz;Kh!Vo}GYk`f-BoyY47ynxKh~gC zKxoA2&b@qHM0kYXPiGtE@$xn%_m=CgLjXroGAqf$;wLBR@$x2%93Jgm`qs6$8TL9I zyQ4c*LIy3~#fr}uoZYSaOFm~^B0By4f`vzTOPkL+|F9k8bL?ziTu9Oy)6;RIhw@b_ zvI%g~44J%cQ(OYxd(MgxIgW~m2m{r~++@N(2V|l`Js6iRBwF7 zbhNM~^_2IcrqmKb#C{Fv8S3aFjDfC&pVSd@$b(JtLlYG zpwJx_#I023MeDPWG6q?6Izl5XvERyrrto14Sf{sk>3| z(=MdPYb6r;6=@Ee!+-q{X-S?uH0e6Ft{3G}a>$6Z*4lJO8T z+5*&mY`NkU23dWDx0VpND^bM8g?iolxxbMVBn8d|qOohoTvOML{rIaN#rEc2hRtYO zc&>>V`%;G)hS{&b0Xh|@WB3jsk@O_Efq;Ps4=eL$Zqko}(2M+Qv8+(%aNOIg5(t0N zrH}3H8``1v(H#LG=`(uiq=+zQ;a+g60!dp|1l#%+s7^E#npabPl%Q|QGv-NFLJP6AN+ z8JPjp6@CDpn+oPOnhk#Zrx(zmdE1}#q$Q^Q0lwN;x2)l<;~BDy&`gk8?kGUL2hjt% zBx8Arp%}n;8dGPun20wuAeS`;Dx>mFqV||H&pzHZ45zL-sBy{foc`)D73zAv5CCO$ z$anjsi+YRH2nSjv-YIds2;8SQf8}<6F_9x8_BW7zfN6?1FK!bU!rs`+VSJ};tA--h zh6t$soLx;d2hFw|BPuu|0m_tE>`wVyKPy;$uQ%FHw3>ZewbvbH#j-^zTM<9G+~xEy zVoK_ZmoCA0v6w^);KoatxNI626vlmW0c*J|A&_N(MLc!6 z1opdXk3ZIr_wc;_qst>v=O))IBZb7=UCO`R^P3x6;}j?Ob*KDjg=NI+US^MI8b#QC z#@gd!=*M2jGlnQ(sL)c!Kf^8YW5}KPj>;a|BO%dLP|MZpYLO$<$L*8`MbiACZc9aC z(3+JdLJ}5PU+Ygp5W-DVLTm%>z*FA3a*K}w0yWyih^!BbW+o4VSq{ZJ`-s1Y=mn}5 z_{Cy52iRcYcxV{*!fr+eW#|f|uU#+l9${ZX{IWLDqFeSgrp8y}%Ahd9Ls~8HR-*(k z@<3!R^q8>o`pSW;K~0F@IO))6sbfkYTe@tBj8Qz@VP=Tra##c&@X^q1%iHwMDjqQS zB|FSY8YW{19q%tiAN-c~@)+E9VSf&j#qW2Ay^>ityd?9b_7U1+$YEK7XQLrNJyR&b z*tXQPNBnjR%bR6b%mW+i8^$^B|DGRD+eYwF4(Bx0xrXTVe|Mi}g&uVxNkZEl3N-Bs zu$-4z=NusC2eIEOckFw60z;AEq8HGgt!82;dtL85ugBOcs1zDL09XlKe>^@>4xzl* z*t{c{ZLRusd(?rarIHE&l12gw+(=|7iFER)<}zZUUA(aG%*7g}cTj@X%VNC2ewkEz zwDog*0sb&hYrZ*moeG51(u~d)-$FyO@xHc2f&syzVx0uxoLb!=<~D_7zCbo{)z-di0wO+{PQRoNj1c#D;a*1>-gZ- zTRlywpKMO)wZLJE|1~3+{3uT*Ku&J&Yijp|&JDhn=`@bJIHYIuX^{A#PCm5UWJiI1n%CmJF-tRMi+s>J1JQ>WXt{q;W&zKROae5)s+D-=6+fvuQaN~|H>{4iYI zM79SNp6#)Vbr`H|a37F$?^b(vbxYW3*@6{%a2W?=TSI?4suZ9mNbv4l!2??0n?!2< zr!f_}sHp3;13Pc4xU$9LRt4JZ1DlgAfSre;-yd|xxpt4n`n19`i8B$4is8lyG8%>{ z%F&=4l!(Lvm@ehuEXpVO&rTbR0B`YD8w!}XWv<%#g-p>7@`n{zAIJ7FM8%Z7==ceq z!hMnlV*1AT9*rO(FTA^qt>Ru&6^(~>6-eAzcM+XxTSh3Ft{^n*l2sOwzXMnxewv^|wz`pFH8qx;QoK{;alCR>@xoxxcqaT|yT5O@6G8Yqa=^s+X?DQs+aH;=AD z&nRdlXc75uHUR2&#eI5@NVc?@Xq5~R`^|F|m-ZV#-&wReeG0e8=ENE%bz-d)W#r`d zG?@X)(40N^zthA;`=CEUN|8siLn9^t!d%q0QYP!)YQu=n5a7Pcl+bGtL<1NXYbP6P zaZNta?ncJH744({Ch(axwDsS@)bGXCo7#N*76Q+-GAO{mzKVVR_3~*e*Fk`|mJW7; ziIg&qE=LXE;MM$vx5SOjVvxR-C`A28++1%lpSFlU{>U$fNKp0^8EJe{XG!?=IW&uW zC*I~39G4fUxvzS0i`EK>-><1HC!am!U-{7==P(!-5D?x5rwW8`Yt72ZT_s zK@Y}tlhe+N*OFk@yOEoJZk`B{>Kwl2+=+j0UFw`K%_sWMO~yg9Pjik5SRtZFF)Ugy zBL@@~#woWu32qZ4GI%2rFjgOLANh-|rH$MpC%yE-WZl1k)?44{Ll?40;*sHUv#Y|_xM-HwrI&!80 z$M?z8V>cJ@X6PgxG5%**L5$ieT$)~A0T_E;TO6)FCNwH?;>pLice3ZLw=i?6N@(1I zP}p<<1KW)E+wT7E$9BvwE$1=G{Qwfzfpl(3JX$~2#jfZ&@evomcdYP6@+}$q{?~}n z^xMVE#^qm#Z?IxpvCq}vae@Rl&`$T2WMKjDQYmvK|z*{buqYLu;(a5kjuXhM8Yo1 zN^Y_butF_PUQCQfyt02r8VCg;+q!i9clUa%A~?Bw63CbtgIPywVoqVl19$`%_`Z$;!ylQ$mbA<624ToAT$|KNO|jk z?qO(A0xU8;In`6Dee>ph7s;!}1f*^FET*grc?Wa{uXZT54#29|E%*{ z!JMDc&|TQYuZSa#r%b?Gmhn&;)*nQNFm>)P;!f&18XLG1oW#$t&uy9I!*qZ1*b<<6 zX8TP-phx_=ROG6)cMF(H6D~0k$$`NzpBwE~8pN~yP_Ox0=_G(KU%yUB2=q;I3pPme z+nr9~Mab{r$S|vC)*qBYq>1@uU24$sEtFBm zn?EB3k=q{tqM2#a5S)OAyMo=8kmFq+0G<=$DT1{q@f&r`93ImZDo(GA!#owrDDQj( zNxP#hBf@cf9|Xh_Q_LK0GS&IUL>KeYNh)1HGHgG*iwk8oJXU&nLznBp?^g^I7OZvA zt~nU0M&R}PxwdC32sLd=k@BPN*XQytW3CU$2k^&6s>m3;XX?GjYs&Z$QA&M6D$Aj|tx~|t z=WV~pfOdh+#XV`_>A=@j150}Q)I9&<2rTlJ2&(Pzv7pd#Bi{5UO>kk<>Nm>@S zeG-R<+9=u_=R`6ECHGewvjyVu0ErG@EAqVk(kt6enG@%cz!lTpQTnK23Sx5;AHi33N_f% z*9tKEP1wR3Ajnj~KtzJ}q5@;Xm0@jew?$jrn z(9m+D^9FoJ*Z4}87#O6Db%{$T$~M}%(6e;G{4=IhV1QRMygV>prsv&1CyZiw(CFu+ z+QFZmVZxZ*)Z@}uFF7mSh)OMO+WY-bqXOdZ^r*XWgb~WS1w9h#$eeAib%250^sQ0P z4R}*+$Y;D8nB|<3;WSsUBrcdX@ZI3uUl09L3Cj3+KFH7^rQ+tEyEW)I$yd&S=gYoo@N)nT)Ul=T0{K)Z!Jc9S?O;FUV>RyPd1?!d5%phZrj5M=|bvz+3m&NOVa?W3Av zpZ6%}?-*WvT?%~}je$j4k!@)b8g7bv%9ATc8RIn)d~9!(PT~UjcWj{h#&)N-KW*AS zzw+cgcNgc#%1!OagC@jW&s|pV=dtIn?xFX#7_+YLjl9|&)ZN^MR&Kf{gG7EdR9g!< zw|Sl$Y$dbg%L6~3**PP-wLiVWY`oZw1Y(#RiBlL5sw&$v2*2tasLM((D6tR&_3@&eO!K#XRl9s&bulO zu)4Lh{qXDrMBDbqNn@_vwK6m{OwLC@HuIk&K$Rw~G=;i!OTmAAWaxC@lkXxNH2Ri2 z?yp<|6Bg8=`GHqZ$eYW2&j9AhD2m=yu_J;i&3AniC&!=c-E+V%ORf6Nir7v)N5^dG zlQ%!P_Jo5Rr!>hbngXCyR_d+O@uvY%em1xSeRlD5JM8GZQJd*S=0+0sNkuHh9yz&cO#X}?a{tLm0 zj=F}%%B`JT6bCmXvlEdHfRf;=4}{mwvVwyJ!Cp`>ka-+Yq(nf>{}`5PGIuPZV+N56 z(|R%$*|Sy*$vvaZqm5Pwqqow-5{5m0IBTHQerwP|v+yj+WmCK?uLaEy>vPuGjgGM;e4K97Mxq(uUl7vrPw{7;x9;1L_rU1^X0W5(JIqyn zW+Xo_q$Znig_oV=)^jz?JO z*MUdNMOVhq@Qw2;yyANXxkdYCOOL(TSDjiDzLLL{CTycO>kHo4T_Wz2??VmIqBI!{ zqmOdZ;IYUbQ$$Y`JI zzdf(^gWPgOx@ zjV5Cm`5~#sSAsXxHRS6cpc`mM_o>A}rVEEK1M|DJqMDwc{gEfltACToRweAyWL+dp za|#(n4|aGfh`|SaR<#(|HD^kF<-&z1B8#!X$>c}Ib!kaU-m27--`k&IYm6ptghr}- zzmeNsS^At`Q?crANI`#>p0ScL>^mK1(UUwDgZBBIKlif@i0_Mh-7QV5wq<=qp6TY; z{f*mIDEec55+Nkz;Udr>aD5p`iKNxe+M6)GV}laMZe4{7sltqoS;&wq*=(LbLG4D{ zv>`iZW6PJ<_>l(=k0fI&1Jy%UM}>kKbx5$2l#8A4O=SI+K>sxe1Ry(q16De0awWLL z9k1g@h^L~I$>p+Bw)S^JGMde)Zan|js|{Yq;4$TZg&apWN5IB6cTte%R{G8g~_sc^CXv6*hz4<~X0w3-2>6Y{r+WSlQMbaXGM{Ju4g&a+SIDX4xfEDNQhzxnQA!~h$B zaXlBqVlE-S6Yop7^sJ&b#<1UTz!p!~1CD{L4m6k)=XE}oqTe@hOFT&OJ&m>(cd^M6 zHLQ5{IVFcV&vKCjWnu5FK5z@z9zO_rKLD7B;{6nb_^47=8hkR(6KOxa4r+ILMLA5q z#WHf-D7m1Yd18Jvepr^Ptv2{-K86Pjw_c7`emrLXH}^_H zurrD-IJ6VF0npH(F|BtOMTy34VdYigq#SL4;ug!wpT5g#mG|&-2m z9R-g1R)e;4Z;AQik!i3aub6GC(@N_Fz(xJ7ogrNC2wx>l8A!%pC_$eIuDogL(^mHF z_v8H{{zK#uPgT*OS`n0QD&Q&Grqu^+3QO{N@Mf4ctri`%=dn|aUw*C}Tazg`ihu_H z?WyJ#bRI=M8f2vp;3mSi0D42)U-|X}03(+C4#dOt!>l++r^pcbwkV>X9!bmt6qMGY zH&JIdO+ee6PS_974kC3cIRUAg$AzCjjGPd@idvNv=A;_ILCQM_v0dH02VqK))S@t#;^ zQV-7lE9$UgXkN#R@Xc6U#Hi11R*;(LxsI5F!8)mRKM`AGI+ILpavd}N`*Vzr@fb^& z_$MrkX-OZnW6K-gT;+hTCA`Xk++6xj8**Be^VdIB)5}_@zUazLIAFSVg(LPDMk_pI z$(B2LcmEb1{ng;KCti!1wImCNjPG9TF!EV9R-Sq?X*;)s!S7#JgJ|Bjm$|-5lgY<+ z@8|2Q_69JY!{;&i;lKSJf65mkeFS9LOs?wYGK|-0z8uU^m1&|K;=b?CI{|&Z#}4KD zRGWvYuS~&lsc_P?3k?E^mG0}68Fsa8c@byac?{TeJ0E3+C^htdzq%g(rL37U-3L7zP@BDEukY8=|w7`9m1pW3MUZXWk4Mv6+cM0JgG0Jf9Ms8H3ENWXAAKdau;q__>uQ# z6(@C@r;`luk~RnN5#OIb2sm5Pc#I{o;Y~Lt+dZrVK{?bH_{xR%EquC$W)ry_y-gQ;Ky zzaElBBA1gvRUJM`x<51FNUEiglcv0}gmw@)p{*eOc*meIGBSYuE?HB>Zl3`{aPnH_?>K36v0RPDIfvICR67vB>A=Z{++ zqS|-v|J>O1A7EDe5g;=u&16AMZ=t)2jt{}+P?~EwV9`(Q^3T!|O!-i_TGfF8gpvEC zp_3-^+%ND7@ANH2rRiWlJ?9g0ZaA)?)MDh#WW-jM1QA_$VY0!MN?wgBNM;Z8acB@3 zcdcg`@pkgSpS3Xj#_T-8_(GYRv^g*_9r8dc@P8YGWagv{Ru9-;H=%|+0k6u5Dm7hr zLHaLILg0dX|Gy-kyn)>Lyg~l=VC@{l&EceV+1k9X3@Y?@s(RhtQ3Q6#UfmCT0;D(V zJ`cULvGmH9Z>d#BOFm$}4ysZ*9Q=Hrf$#Ul&gILr9t(k&7TW1ly*WVJqBaH@qQng{ zlv@i;g!9@~;96Nir~WN$)-t8Q*BA}K#ZSEAW5bE#VUMqdR6yhX9t-ETlenC+RdRj- zT}T@YTXKI_GSL4`E>aSWQZE@6NRlZaYtKO2H%0>o8e_M<-kQYpaVr1=Cp=3fa!AQZ zbXxnddTrwTUg80wM_lgfD)5q{&K0Dj=L!5oPZRhTJPWE{q)ry(It@&5$Fmc0~ZMH{V?+u60G6eQFRQ zmYi37FXqkOJoH)XZVVwiC?Mnv{cX~nV*i z@_YW#BCrjWAG?rdGHkFTp;V^#t}A;w(VK-mL+ms+U)bGk>pi);vAyYqaz5NME6@5^ zw}I&9;Q?z?Iv>rHRuQJo`>(FxalTK3@taA5W-|Ih z`UMYsZB1#wo%*F01%IX)&Dv{G8_@pSdFqe>xHg*;72jz7*=zz&JBVXq#PIId1JD1>jpK;sRWfVOh1 zR+w)o~w@GXvFPv9gvB=U@&of9M zSNqDXPC&58?rR1X?HA;yX!mxT_{{-tf(Kq4(`{5Y(5*JcDD1sD z6|KBjDROF;9c4oHI?~2pe)#s(j4JRV>PwA~`81P8F=TFiCH8gh58Xgnr8E}|9bJIEB%(a(BsJ?Ju%kkPZ4Bw}^3 zP~!TRc!0c+{V{Uu{IPJH8I{V~ykFtZ1N*}%6!JT=PPK{;WLmHY56H7>zVPG6lMT%G z#+05_LABWCO|PF2`)(RmKpsQ5_pLvEIm)^CWhW_deE2;$^gHrxfJPSoq+Yk)k0QIU ztOtH)lq<->3!XBvY1pnli**2gfKjwt>Cn`5*e9PXq6(5YAh(GDo9x;mlMkF(-Ftz& zq>z60Vju92=u2nm!+H9Px4|b-HJ3kX2J8DeyeFR=$0Md9*rpVAbxE5R-+bDjClU=i z56R^EfQ7mPyW5&;_U+flW$b8ls?^L)SG!nWv^qb=8HnQrb2nW&z(&YP7EEZL(ln0;g2GGT)C0e9TLWYEV z468fuOefGie=7C$#hb(as0FG)K3MT!j%_O^=8R}eu|>`;ZX+I-Av=L_(cs;n+P6F+ z7a{<%paixTtv+SXmY!oG&V2P(a`N4lPuxX{J*{oECb2gsGupFZv8}mG+(e;Qex6bhrK}!2hZO7-_R#WKaFIZu3wizx% zaj)n_#2qj_A?Km=C>@s3706rfUwO-Qm=K^jX{#Ygvk2{H^Gn9u1*PF^U;{8uQVdga zbcADx!1vS&h7S_Siye!P2mq}Ci8rp;mMutmCurfoojBbkNOCi9t}b`c-5b#XU6ka5 zQsDu=PkaB|wui4fokqd!X;2m6U(e}qmLfD(7({n zS%Qx>W4hYe0l95|L0|i^4Yy3D8!zl&q9?C3a|jQLdIjoK7dzgA(jul6IEvqa{?usI zs}_)^GCappz6q2^s7{)OoO9S=^CX5&lf2slKB@j)Lc*wv11%z)J46y7Js3qC6$lM} z61x-;iEOo%izl?LOyDpj??8rS{))bDzC{S|dwy3BNPOBzX+M^7i}Y0ErZ{Bm--Bwt zuN%mFq^p(G_YLL?xaBcp4jIILB3#RDSw}Avq47Yg1`G+HV~;fJLn=j~^iNi_nE1j# z$l}3%$%tv`jMl9vi}Hr`c?wg*zv0=(-$_z_p?R36gj_hJI5I2i?ugdkiRYvq7OfsY zZ@mL3pV=!%kNI-pM^@RILnOe?LI0$3!p!nfW-%TfDtJWPi?G(|P@dm@eS zqu&y;AwmL|x3_mj6+0Tvzx*F~YJJzvW}9_;^o+(gCQ*20_+jfN-SV&w-*a)?M z>SvFNyw+f3lbiUA(FP<#xpHE6XOPgi%SHk4TC10G5S>1B1~)`c{Jamzg;op#He~Si z_ibmn8_1oM_3}>=KQtv=cRnOCem%YUJK@T0z9%HMJu(=>*%JKbu5PRVeawU&lXb+< z(hZ#F_<7@fwn!eJf8VXhP;;-i5v=d%d2nK3#lv%TTU-|fqzc)znS6Mg8hGS-%1JEC?kCN zuxRj=O_a=vaLaR(C+&Fn<;*#-fSXNjf{F0asJVj&r*_2$&xK!5m8qpf!@`Xm?rMHg z>`Edr`uNEdiYP}?&1()#cO6iXug$oV4?oc-#7|*B*>dv!cikW4W&&aHn^NsJ)MU(B z%hwv2f=Ju|>VCA-(IVStgRysH|sV8y&dL73PIj_%4A+l`A_C}_j8 zOw+oJ0iRfa80USV1!x4mUxd726|3V*HjE)-c+LCUKhX^%;_Ryh2*!+|T-X=_T2Nqp zqc5L|@N}o@S*Bjt>tXUXyzlah+&&(@O2dTw49I z2a(TQ+mE(IkH$t;6<;w(kJkBR&>=ER>yV~hU6HoQ_THeCi_$P-S#zu}lFc}zk1Nh5qG*p8`iKRwJCc>zyLo|ffq-0e(ir6%>080XT6ZlB6;dj|>TBgav-hnFsRQbeyjB_wx-;bCXAkCcWd^b~CU#p*QZU@Yn#rPj z${Pw1dvF$Q!y4xmovW03AEUB;#q_|b>hyq}E2X)_?@w~UcUF;qXyrlMzoW|a*!MOd-xRHx!1H7`0p&8ZfM@aTc@0mrpH+V*s)2Y-(8ft zWd8LwG2%Iu3E#8xj}54@Y_3e8qViknm>Kd4fKIm)159?h&9Qd-YX;P(a(nj&syijE zdv6)slCd{?QbBxJbBW}?iu@ayjPG%dQF4e4$zq%^qP-fIpL-84yL%B6)Zt6!6Zp=i z0d7vG77M6+#&U)F+pw@$*mr-vG5rnC2%!G+fzaZJPHvO#?(F)R>>JPwhnQPJ!n*+= zle^;F(tiA$h4g+*?BUp*4V^6l%~!@%z}GB2QoR~dQO|*W`&8{$c6pJ*mk{Bsp%hBs zDqIKZiZPOY{t+L_4zz+v}{Mqhe2q z`&J(=9hNK+c}|`y+3BS;l6A7l@2P5Qcy941sK;2w2piX*aS7oHHk?ciV3(JM$#rt0 zK7wq&zB9mejBy}g1Uhb#-W1iD=dMNC@%`J??V*>`)O>UK#)o@fj}0$yIDh$v6ahmc z{OuZ&Vg&JRKSYO`Ni6kb2;dbm4ICi5fD2Brd@WQEcN1sB{M_9 z0P*mA4sl<0pY|uivSw^-QeLp@|L^?p?%)5~TC>h|9H!Z76qQL)8%@n7c{1)Tipm3J z-5#v+SC&|(Ioiy}IVTk&h_$;hTE>?b3G>wxJjj!iksaLc^Ruq37V>>YMZLzek>zPu zle~jq3F`hi#3#N3zxtXtk?HMRl~(r3jNVM0&C9w z48XBGPv;UmIoD(MEl(v@$piO!WoV(LHdId!YXVZxIb*Ja_059tbc&{^2{a9Ln#zOD zX6LQLyPElr+kEeScwMA$Jbyh|xdv0&qpNQ(tvpCJY}P+ixt`%CSa$M9CQFM=0CUo$ zZ$bSV_U<#H!-g9he#!7_{Z#m&bFy8VQ-jnUP1Es#l6sCN}V>0(JEjQji3Wh zSa|+MRubbPLfjnu1;9V{Z3N(UDW~}n|IaU6p6+s7bd^cKYIBzI(tk^?mf)@- zr!+oSly4;A(r`{YWEIWow*Y!5C9;?n)&p5%0r7Q3f^Jq(0SCba%)5?$SL6#zYF7gI z#x7T{Xjs0IiYnw_*fHn4@wWo?yyjGQ&m;yY_&!FqdIfs9FM6&qO4J9WI~HOWS|WjN z-8Q~3Nguz5PrWPL(&(nneNO)@|q>D zCsDu+zr7Z$FIa^P^Xfyq>adQi&z)%4r7qyyJ-bm}vmFnp+f=lfOc@JwXfv^h)x z<3H8cY#V!-Wpp zi76xfTQ+odegryOM0|N8f#@P05P_Lf3-lXlurye4E_M5SGLH5Sf9+y=iKoSK3E*sY zE1gO5k{%YWF#&S)5iQ6Upm-hOauo-cUloM6e{ho4Ik&2I2Anczx-@kJKEEqPy``x~ zFr!|9Via0*M`=5Ke(F3Gxc$cWozZCK9ofqgZ)u7oUj@&*Gr(V-Km0tb#p*YRq{}Us zBV`JrEM{#FbGlMN+=KA0eN$!Rhhf=ApnCFtsY$)|3g(-G)B^$~DO1OZ#xWHT+K-VO zW3J>gv8NeXa(u9d-`=|y`LML=?GGRdc$6kc;vk*3Xq{Zz6C(B>7#qYNNtIkUl89i~ z{IPFjE+xb=a(24lASY;|g|$#h={~FvM;|d7^pb#jRN`Ttz`cUth23hY9VWgB9X1g! zqOCaGt|igpo=Pe8^~YuKQ{U#MG*>g(hyLF+0Wwjhflc=9Ed7G4$qbwS^ zO4^Q!vz0 zevRkz@hqZe!p%Oo*TL?&xBp(`0$o2D=^Xj8lUbvkor1QXIpiD;^f;4} zT{y?^QfZTel8^rZ`!gOyfKk;3y!r6Yl?K|`{GS~xs{4C%)0SS7{v3l=3;r9zsO$9O zzm7Uer$7@aKA{lX>I>?340}yPis(yu0$8jOuD%5=IJ}I5Qrp7A|1FiFgT07d&8Rt< zU;u1k`C`82tKK#K<{VRR*Gx;WQUY2N@*D99hnRuE4&ykh9SOipH*EEQn^j;- zg91$#U5p_eb;QsB=qN+CBFnQQGowzxXw1HxKg>U)pFY^6^d;ip(T~Z1<+XRdKkVC( zKlct-(QkW{WdnGmscNv`3Rcp`v(}-q_pc3Zug4d!!m7!>Gx|!**=3*^5}#BOWlv9I zgZX|`W4(F+2@K8i$nfmETR`hQqgf_go z%27~611pNlX*YntHapjSc}0I~;V*`Am_9x06bAes7}_ZusS9S#n$>YzL^*hLe_u5(A*&30sTC1 zHMp4X@x*m`R!kh|J|uC%`D!O>c}i!#k8kOn;4Z5j+f>x0gGF5bd=#gqR19Ecea^P zGNrf`ZgpLtI_~04{JeD6YwYNc>BSQ3bnvaTrJ5|MBPQjeXI%Eg({!}{p{%BxyGgLL|dB#-W-YH5(1okNOO`5izr!N%3%H>U&bhJxw;WFcRaqLjU?w7FWb_n`YM8AxwJ> zT3W!3%na`|U0Yv1gtlz3^|XpcI_uPVlRKQL$!!Y@8wBW_F5)$_{8osC!_uO;(`i$; zft$CGX@O9c>}8*4F%Im~J-Evp_`hpl6{8-KJ@4C5|1zl#kVkW z3mS|_6=+4dQr6^IajW?dh9Ij+zmxJ@&C^LXlvoa*pE0FwZXM;9*I=*ji@KTKk^Qlw z6uFOeGb0fZV)7pR1qbla&N&_w#RCb6so3FAm;v;eVVJl|?&}3WkdGT>MDiv3^Tb3s z2spPq7oxCRs#B}4!ngWO&c_$*M)1-~#{<)kUn3-0qf!8_7wze=X**x=MIN2674x;e zDR+sZG_iTiX~*>WaMlM&4B{la%&CbendHUW8-}uH)t0mUpN|CM?^jV%tQ)ZA3aZrU zUk8%sk-sit9x8|a@*sBqRoFujvc*Tf?qErZ<9Zt9S3&cx@Maxhcr*GPgNQ|OVNpxq z6e4QaW!BW@=V?_Kx*LX>t(Bm-fHvObFJJ}<`R%DuW087l?Ayrnx69%540>P8zHhSi zz5l4j@xz;+V^7`%$Q)KTn}>){;9$W!+e4aik2w1`tPTJo%nSgg`fXe{ekY4;Gqfpe zd!dJ&!7^D#?vQ9I*;Ov|`QGDW!`dgIza5^C28R~$&`ZtB8N35@|6nh#fG3zc6e((t zze8J@H9vDpVN@oXm6Xz3(L-F^3Sw(-*H*K9iz6S6TzJHdC~AKXIrDBL%{R4w z#?xHWisCxu8sWmlUCdU4xR~ObQ9By@D#?&tq+xGmA_2jwXgIJY^avxLYJ&Oa=J2f6{jM79rZNt}`x zwizcCY6&sj5zr-s19Z|5GbMkEg81u7$w!m_ykaJM;ms44Mf=n~C?N(th20jM(j55x z)+Sf(Wpq|Npl=h!FN37QNcIxT^*gG{DATypeBCEXeLRjN&h2`0oB#gBf(~6eS-gQn zpJWp-Icvv{W0t45cn3g;%dYl98)Clr%bLoE4u(cQ*CrKS%=&jE{G0&~JNQl2<=pn) zMw8ec*8V^Cc@c?yGN5@qG->&@2zY?bQIG1cA63MD2;?`_K+HFi5+R+sTH4jvM9+qz zq}bKmWpN#FBIVNFVgCz{(4J1OL$ru{w#S=`Z~m1=$yZ=PJYNAdM}&s~$P{6T;mQ9X zZf(2W^%gKm8-D5aglW#jr~=-u}JyH z8c*(Kh!|XWH+}n?q73HI2%LnBQ64W5pBTS(BJc*<(T-(2vm;NNCtX!`9Eqkqt|!D} zQ~lZUmkE_k>bT9A*5yGSv;RP1xrUCuF#_lM9b~&qf*<7Ai9*R<)hfeO?B=dlm+c{@ zb}RF@y_Fn5Rf6f|)m6!zl>AD{wD+3!zQ_5lEz&d4N<7VjnTwed%sp#0UpJNKx6RW6x)$@u3OUS|RjbHi zUTh;&%C4xcl`TvY$;OG*)dQpugCVNVxoHhMQfxL?Xb!qbG=`mjo#|@aY^QvsTS_F! z<2!nZxn1)Gpk=^^Q>k;|o8F9s2595V*x|^?Xa6m&O4-pihI-{XgHY9TI&PK++j~!&)BCXh*7MvR zlO_QBl`J^6Mc4sul1XnhDZ#ykD3X08mD)@w#rndfm`}Ont5z>pBFPllwVDwf9Q+WU*qXf2V@ zd1uCM?tA(>`x%VX9iF8Muz$+ZkPl;zXm&-?7D<5f7Zt#iuI8);CW$!t1Zloty(TF7 zx~4)MTrtO?vk)9)aZs*AMp_`$5x@z?37sClgpDmBD){;|V@qEj#W7hjkI?l#B&mMz|+fJY|Kx_opgGUQSgxwnCkILaI zm2VykHWR=lQL6@R&D=*gS99SfjHU_kxeEzCIxGsNO7oaO11>p7itB_8fmIx9vP(h= z5EddegVo=6#A!*??y8A}2vD{wv4`Yl-F8-Fj8Icy*IsTWJmRkb`);zQZ_zOqI+1Qf z>bJ#TMrFN_;BZe~sa^k6x48yAv3Sa1r&a#IjybTz$H2Ol9m*tNAP08o4J3zI;Xeik z89HKj>Gon=&O%ip2YDT&F-8x?f11w7ZcVl&4=aaEYcoNnU#&luFpSRD@c*yVmAV}% zNhcXb_I0F1BHD63p7HkMp?QPIy`sHJODJUci$<~ zu(2*jTMxfPH)d1|xtGeM12RROn(A()` zKRU?3oBhRP>aRQ0!G~=EDSgZ#U6hKWqGd{>f8T#2p=0n=xAz&-F3F6Qfp^PFt`p++|+!fCq*CH{e@N+jDh{R@4waifJ=d{moF|0Av~J}K#d_& z)wsL^;Nka*X?4e!A{U4K;pabZY$&Of`hxHusyXrN{2C#zT8aBGG;~_z#$s8)6d=4H z|Lny9ckf<0hi?%=Tt_{Qyz2RVy~vACo((*4le%A~jg_v1km;M0&L(>_7*BGX zey7_j;EY|0nc-oyz60iyr|Hx10ulY)httQt>NUX{7N(@#Ax=ww894Oc#-1Y0q_Ok^ zs)7u#TdLbTC*f2^7|)s&U(KfE(qhdAvW(4f~3 zSXp;YgBQ>9>4qpCIm?4oa{lPmj~$6?gttj_lc9iJNI+$hAt+qxEX?V2Dika&Eut?*ExYVWfYlw)+d6ndX8jpPeIj{1iM0da&}q$p4%Di(glAkhg$5 z_+pWd?ksq|d;2IEJ(?mEFQW_EUg1{@t1`Q~py$Bw;CokfG>$;$f7xyY2y^Nsi>Xl;6>0iigCl*h z`xkYREpq<$lidO3>zi^O6(y{!s8txv>hYfd9VVgI;GGE0`~8y# zA5EcVyvV!P%&_}C7g>PMmi9%!L(SlDG%~85>pAhQKEQ#Z!YP~-NMK~CKz%HL@nL4N zKn|a%2;c=82l3?I!|mI1=vmGV$KHFh`>UMEK!2-G%5e;BMWpV>QOz?>>%xBntFu88N{B^SeqMuOg^OcO0 z9RT4wj9c)qM|TmY1@i{R414%u^Xl}p@x!UN&N#=GRJT*-B^9E-__K3pX-nfelEbTp zn~AlY@Kj`~cg>UO`hF|LN%NUfgD^=k)RUbtX&R4sIz0A`kZ;0e=v|l790FgQ2QB^6 zehY|xw}dOdJWR1q9yDB{GvVoXSDI?*by?~Ihpr3$`*n8Yywsq)ZkXBsR<#lzaXPY3 z_#Sm<67Kv)smB0AikipN9*RAGi?QF_pUY2*`Pf-(RWne-{#AT*ivb#^DQ(q)2-)&+ zf8C8nnFD@Vk`61#0^S&ZtyK@Zdyv0jUiWzhRR_O0dFEwF`Mf2s1E3!ur`6dA7Pb(Y zhkW>lGh>HmSJR}Ri4*bV`Q|G?e@}5?verzuuF%20J2GF%H!{{%*YOaw7yS} zF9r!0n}l2afu-S6&`H7|984uw-u=|@erdLuUOo~Kj6zC5|Gfc5GaGm|XPp<4wP|m! z<8mS2dB&3ZrlK+;^-gLc^{$@oGHV4?M5+sXz^Z$cPMo}?CZ>Lb;k+7RdU!~+khF7? zv#5Qp@*1qQ8O#8;5HYgW1nGh+A0Di7Hn)>9E2Ic>OY22<5PDx^_)H5VSlm0e{x}T3 z#1}4#YZY(;&1DYZ)^Y4W<5?$m>NHRKuR9*pEH}Y)r?x=tnNTW;{{iC-|AURKpVhcp zBVx_cBsIxc3EtmK+FcM>j^Z!&6UW~D{2lwsLlyUu}g895CCT!rHiJ!$62H2=;`ZI9}Vg zcu3yG^?v*B(`xqLiv)_8xGw9v=6EDMu@l~4hb^~~znBhqAls5Zq3`JJKIX|L5Ca3&lc@P2h#geF#Vt8@0QM?n(6$w1?@}76;A^ zWoVYQkOZVO9E&gIflf7hkyi!+U@vJvctt=8D$IW}v{VuShJ_OHDU<^)2a)<_ zpg@#t(#lK;s1EX-(x&f~iQX%v_;p(2Xq`dDFhtgSSPHzS2_mgIg zKFR2WPN;r6`dJM628U}~m(xUtK}DUH+7#3&Iw@HJaaX!d$1%3^ge%q}VUvh~`v=QL z-8hy9V55+rh`ku#T0-+Mdy-_@=w;6)joYG?B_`>9Z|E(lcNvuB`C=6e1%pgGdzwe& zK4xFtN2%?Do3G@^GIyhT`2*_KN=mT4BY*cFZ}95aYb51t8!{rBpQv%g1b$3Y^j_!A zrFT>Lg-P2ZK{+~_d(-9UZ%(hjXwOh^v-gbP_z#itc8pnO9jVK!1W;yt>cPKYAwCp8 zD5gqh`Wx5yRS95vX>D->qrsm442_Hf9YJmZ{cXHp!^o!(hXL!g;oXIuCf(X)!r*u^ zUi+8dke~X0uu%qw8hvPynNzbN@y&yGV4lKT%k1=HX#z(LSD!kA^3mtd@=F(`fMK2g z0B@#W$a+r}U>|i^E4K?eEU&T(k*I*x%a`q16yBI2j*YyF4iy+lZjLzfNgn_$;X5lw z!~hJ_cSwh8=J)YDmXOwHWlmlu;eUj&iQtbVk_V?-@4SuySh24lIj@$@p<@M1X=_nBw$R<#Z)2LQ`R+d{EByw*N$GqfPn z3KnNJhSJ#NA&wU+Z)kL)9`9sCv|xV35z=92UqWKaKZI$vmbcz)@Rx83qyc^lwN`hY z4G5b@_@*jC0!%p@9w=66tR*Ihues_G!u(Q)9}kc>hM3MiF>c=PLdO6$SF{A?GWv?C{f6JJCH--SPwq_$)2Jr4;tyx*kkLKdQmlbOnnQHTdc(>3 za90Q@Oakv^c|ew6*l9oig_BFQ`=NnJZD~AkczIFod!6}>(5xI{Z677RZ>d@OLzYUP z>37e)tMcb?5Lzq|bc(9PF;97F_6c_o11rIMtsaByh6*3XM|E3NrX@2E_QhKnHr9y@)5NIQZ_sp@Nhvur7_EDr)0k%!5VP zp8$T)Gj*YBt+$^>BpDK2e`Z~%3VeO)*1DJ<`$4*m0A!o^v*=UN%@r!2rd$9S!Z9qg z9-uvQbAZVi#1YjJ1XB_r%~b>W?p+=SJ83xrf=*yl*v>=2#wF`0Yc@7kp38*cDI3dI z3f#&n-dyiowTP~V72!R+fj0o(XYQAZhRLlepy&418>51$G~|o79M<6Ytr)N<327v0-Glhc;qSI z_qj?!<9Vj@U&SaBMDL$_3n7>*nwGZsY{Qns2^D3{O2ALh>f-iIOrLTKM>?q~>w1rK zo2Fp2%1TMfSMF$E3T|wgGn2tAMFZRT-LUfDXtaGPG5lJfy&&%Ct_edh9q-r|zI+-38HsHzw37Ww~{nGc6QG~5gI+pw=8Eahn# zV&eqQ>drL|NCQ9^w1#DjQ~4zQcvW!4o%dm0T4JlDxX>oqP@^*}A3(ntw?rWwtTA!s zAaMW$z3Ox~HCRpO#dB3oCFcVIv^z8LY}x()MYg=5)-K%jjGoL5&n zT;m;hP60z^O|UXshYI8(G56VcA8w8~kc2h1uB{0p_)X@yz`in9ylCS({)qDzo6kpL zu2XwUUTgrj@z)#JHS+LqKgu=e@wMspsS@wWV>lj!lGb2Azv*>MH+N z$@4)tu($jjBzo|JKnI*0|04!>T6$d!w{cn#r+W1=Mn`WJi@}R^j6aK%#4ob-q?O5X zBkVBWL>bezhK3Jvh?b`L%c^ayNIPAdhs{4wl#=B7Z=6`Y+t#qs4=Cw(OvrtQLae+V z`L`$;;8%=;740`>meokBDBmaB_I-ORrsTNc;d5fKb0a}+6-S0QT^D212{2wS-4_{e zPjLD)E}Y^7+flvI8E{_ z-y0}s>m5DyW{Yd<)tiO!?L_{gQ$H?{*hZTgZv>}|%9+C?yP+QM7K&oA4^006?8$_4 zjBIaX01rf1lY+Rm9a-?tIIoYM+k((WRm_0DWY!I!3A`>xaRJa%C>>xzT*^dd!p*`d zdl+*;h3U<37+YR0b9rN@iZfDgu_#mV=8nZ#l4^4^{1>3Z!k+T%!^0Z7fzSbQjL$`@ zEii8luC8I+*&+!GAod$lhiof9bxJ1*c}@-UIi1b%k>-Xt@eBuYJ}Y9NY)p&?l(b)r z20k}?U}@R68A>hTt%rj#T`-g!w@5vIW!G9o|H(}Jw+e99WmD`TK#$t>tWgRYUP-$W zJk;+*das=gozFiW6IbF{YJ~MOW2a$>0BrzW&jYZolLcAD7WpWIl^`7_@ee8(E!3x|NT%2lZ>9BfThg!67G|Z|AzNJWO>X_d zDir3>7Tv^J&QL(A)tlR^(T5sjlD@q(Jns zXcu*8mwqSux4jdhYsxXAf60L(Nlhp#361EALU7UIDRKHY1nR;EO8cOw4%j=8P9(9b z>9~`neZso3h*aGwF0ayeag#=V%A8$3nmCMuzWcrfS@MFk z%!>&z?ww^sc=&ig>rFT1Zm#hSteJRm26;%B4e+>Ke+v=>3xqVYE9Bq2tNNKQdl^PT zrqr=QWzdmT=Gg<&a?~weyFAw1OsfTBlF~Y2jIRabXHK>Mq=5mtP?v?wk5f2 zD0~-}<5ASwI^Mi^jHZbKP7^hZ7>$LFIkdr1+deNJ<{rv7J-oLhn@s6l;CAoac<+IJ zszPmTJ$}UvnZjfWoyX4F%M-6+E*4fJcu8MY%=RE)07zcDSB>dJt=5E0>JwmNKC?Tk ztCc(;B2zFaeMM;F|6pq?RW_h=`_z0tq!l;oD<00EwZ8UlCRGKmHYEb%I&<|&@8J+U z>E(ZQUuLn#_rcP_%I4g13nN}e5F8iOyzG{n4=e{#P}~i(jjAXb7XAYS*SGz+H*@qU zf}YUsXxW>M8brzWa+JIm4}UF|_xk(T+jZDYrjqH??3?CGofSj0xzM13SZjb+UyC~qiozc$k^mt{Tqd2QRu z%-N2Adz;oRHiYsI{b~+OoU*AkNvUPKaub-FTXBr2v|W_t>3>+%9ejJ+v-!yny9y6h z;Du2iim==otp%Nvpb9`>dbgbr`n=Q`hbbR<+s_rV z>Kf*5o6OomI2*efWH|o?)oQZDotH^Xs8HlTIDc@8tK!&kXF?5p9+}8^>NM}tMD50a zl0MZWE=ny?QSzC>_0jgZ+u+i|#)ZJ!w>2t_-@X4jfG`2(>21B#KOWApSyxUwf0Oc> z_R6;u!@*9EY-51OqN-{AL-dHvJq4*{d;7d&D%x1i#vxy)N6Y25X+K;?n&Qx0%-cSj zSL{n$kc0Xl1CSyii%Xjs3r< zMSQiEYH9C|!XM~+{)&_!KfK?0Rkx4e3I@^h+NY))fiuY5*rQjqz^@7agclQ zzKSRMj*lH<&%ud24mOB8%LaV`opu#JzSOiV6o_|@)LRG^h9Wpl(qoK*X^3Fr#lyPj zAzgbC{2vb<8UM}a+X(&cI*<*vA*zI(zH@U?l*t$)`JYp2@pJ8S$0%Sp^x$~p$DPjg zwb%~~Op?Dr*yqlV_~s8!L3$A}g!vZQUW~!#bEkwsW-&wJzB{>l1KgcrG8!l+`Itd0 zFuRlg`*@0eth*k4ycdkV*E9Odw~l>S;f==+m5Vw1!+z&jy8+duA$`_zJb#u73?ID- zY%dg)ROhsoZ){2`vZh_YU-N8=D==V$GT+vGl@)c<=HV@?0R(p)C^A?e zVNk}t^y!RZ38e>njKT=zm&T7+k5TkW=o*x3TzoOod;zv&3zy%qzt|S)xPHpv6As3B zCNTw{Z?<71$qb*k6p(GivPIhMXw0E~4B(y6XOzh2d%j=qY%!F(~TA$@kH4VC8H4IPXE1)0dXr^C5mu=?KFqht$&K)M5*9o2*!04}am2}HzcROAe@9%wOc5Ug2{3ZHk)xvU`Ny_M2W>K>f zT4^1Hyf9Y$s%-}9DmW6B4R$p&X}#j4-{rMPVuU|jN8V=sp>2JV@pLF#6BHscf3>d~ zR{u;C#dWb-DM&5W3CLmoddXF&Qtx`?Y^Gz7<_rW)V-b`4&>`176l_sO`R?)-UTDx| zB2sI~EtwS2N;#*n(ECrtUa3!Ubh76rWo`}o9^#8nQU+>m!nRIPFUbnwUnue-Jqeby zQHrDiD!e7#{w*W>_@XM5mv04c_o?)w7XiECa8qF+?{ zlpEd{gnG5pdfaUD9f$#6ub-D;YkeM*rYjIk)dsgTc~q!-Hn=N`eccRgSe@A}Rig<; zZau?;$hR%a5-hoH*!qJhk41BsCZ0f>S%;;O2|ez%!L5kmA4CC?A1F33E5p>iLLHjK zE!In`K(a}e%=V%SfPzJJK& zpy<*aPP}_c{%=&4lWa+lfFRsca{5`uoN~h)NEQ{OwkP~+Bj@;VX%FkT6`jn})s%TY zUR|TwMV;r+PQHMU!7LGS|(kccp^%uq}8R56dqv9t$`57GX*iZ|Y$CwYv;-u`T+0?)5sqAho`FMk15SKEdPr`^U*% zM2Y>02MSt4_jOj#@OB>s*%!%$Zel1R-8>El8H^tn$A zEkut)TAkFXk);ULhsY;eYQc>6L5?HldwqAeU-Wa&CoI|S>`jQ4MMf<^J~FF!X*der zMfqne%``n(A^sTz2`a#D`Tiu7^-bEnC6X`k8oU-K^ZFx}n_p&^d?#!MH{|x*#PO}t zA{)qyUWU3q^m&w^C%su2Y}7+B9MZjN3yR_zr79eQUe&mdR|sz916oTsr}Xz*%Rk?P z*CK*lKU&s&OzGQu`ThVkY5emiwb)key)s$6D6yjF(qjnBnPdnFC;UYEti0VJb&v7A z!kdZJ6;g~`TNwEC=~^}8q1gHZWP7dOG1k4G5a7xRzuG}FKP!*^eX>%)o-(ichUgrI z-RQ=7hT*uh!D|){Z}4s&FdfX<(>H1_J`~_jW=}4HKK=|+?-kQl)e%^J3;Mkl8z%Xk zC5yi9? zaR&J*g6mmpoyfh$@w@hPsk02YaFGZC%ZzI-FvDx7o96HOm(FN;-R(W2jqOVkGMB?P zA}@etTUKJ+sJhs4<1pYMuc^q_@YdXV5)}Ka(y204lglQIzsggW@Q2|pXN{od-W$0b zux^ z34S47hY+3cf)20SM0?t`Eq5fY-$Oo1U+4J1=hGjD@-CuLuTspl@w-1pQeYm?fxQ@gTFdnuh zDCp&Lms1YeXA5Wd!u%N`RqLE@2y@m@?^*Z1{TNXC#7fS#vxoHFARd~JFv+{KLC?aGQI~#Ts zY!o6G!pTSCvw;g}%6iYi&?mIxCPD8+L552D2`{oq-g^;qfD3+i#n%JbvQNzSW=zxs zNv!mF;Hyi*G9P+!7OqaRTeG{vJPiEqW2ap{8evHO`# z!{JU8<Y`m3TR`d-k3BTjshh^s8uRQxaroV$#`K#Nmv}%<6h~-PuSDMme z>x1fURuufjQZ%kE{))SD`tm0M-x07D3K4B1{Tt3<-|3g<^gIqJ2eY^#wF>zHFy)p% zW9k?(y3LdvTZ|{AjRo7XZ-q8vdjAy)0Yu|cPysi%qfPgW4sL8mTHUsl zf4DGE_GL4FMYOKnR=>KuwC_O|Y4omnL=XnAYLT%9#-me;xbLqPc1Kzq|WZrI%WR zV(Vyzx9=3>E}!VQo*VA61AHS%JTRfJJQF-si*-td&tFJljNW3YR&_D zW792I?kyAorj5HyiL6?M*3n>#S0qP}Co2O88;$Ue6}18B^rtp(=20%_B*>GrUD3bW z=4D#AS8gFZl}CXt&;wCK-03tAsF549QwCCh(pG9{+_zbXbB%wj%AYV)FT!>nUk(D-@hPsWAt@s{Qc7fH0W7B2^wgH&;&3{(4 z%VFI;_dQAmkMf(2=J{)FR}hRo*(7JgcnB2n>zpMkMfe8q4 zE~1+l&>zZb1d{$e=cWuaE}D@w_W2w5^G%Qf$+zl6CnoglL)}C1nRhbWJ?V7jMjpg9 zvVZgjxT}J75CqNpbJ5k`YTwYojmSg|*SuBOYp>AR@}EevzT^S?Vf+*I>%eS;#`*0t zYHP9zkE#0$wvA3*G6##>j?eCs5b}#2zQG%Z1xLrNXkRZgf}zWd81~I#G$CN~_ZNVK zk0CMobu`xNcXBI;VP%)}8b#F9Cm}@{OX$yLis|6yVx`Ou3rQ@+RVp<9JeHVB-=9%0 z4wnSY5GOXu{FToFB>|r>gcCiEt@oA(LIMlDk6zINQ-hyL6m|kurjRLRMm)4uzdQ4F zbiH+47DNiaKl2>Q02_GSH$B_^ZsI+zA4kXvW-@w1q(^dEPjXGrFD6sZJeh|?DW4X2 zT8^xmQWOVTU6Ty@;~7cF0Q%;1S)}$MRF`-N^2o$>CVF*2`1|VK|F5C33lCoPmpv5< zlk@|(`p@pM>5`372-^p!`W0Q=+U81(HiYZCKkWdU3Vje<1QfJdX{TJN#T$MU346U_ zgft?Oau02|jjj{x;RUP}mqfy=<-g?CfDeo#o)7n(7Y0PeL|+cS^t%p_$g2Dg4r8@2 zrb_#mDRBf{3OlsAbmYS^tCDHP$i_KhroUr=GMRGQCbKbBlyaNFh}`N5?L++>(2pxk zQQqIjY)-8)2E=b(^)k|NDnvFXZ0~wsd&_}iZ$kcGAr$Rf58wlG)S!FsCZA-Gk6E<4 zj56I^651+>COyg!((MF0qYmH&-^`rW$GfN7ts+;_6m>!I!BLQMP)lM56(vI`{^+GN zlIYlQ7>3kl=>w>-06m3z=09B0e_S%VC2l(C?aQYSb0NL$TEZFLoul7kZ4fgn-rnHV z+Z60GDLw-8pStu0@a=;&`77L;P>;hrZw17gzj*QO-Tp>1ZrEWdWjb77R?f3e(7YcH z)KE?yWQ{ub%gYqmRCKG8_Lp%GWO?Z;EH{tmv%H@(h#7T~fg~E{McUR#FOOQh*Oc4z zzAg{lra5X0jXW$`Kqdeqn;A^23&1~K#Paib*!~4`+n9nId3@6l1W8O5>yE?m^0z&E zhyGeaqJ5FLCE3SuAT~K^H@y*Uq(Nk#FeQ^`2J)#Uiq?PGssubD&-&qPyz7I)TLVZ3Os8uXx z-$C(F-I|FBk*&wTV-yc!SD+k#z48j&PgJu3Nv&-M`Pd&2%l zS+{zT$+Tvzu{M-Zh;&33*IS?TmM)347S}o2G_Cl81JD(oQqq{^yGz-R^e1%O+gQwo zbKE!dRz^)%saZ>Q8lQ}U-|EBj1{)#BiBRko?L#MFDWxBc__WFaCD7jcM^PUy`VMRB zlMV}uK?w}}%|%T^I`1eBk%d?FK`ZJK8gAQrd3ZxkI`S z=(_fKQ_+m8l(=B8(9ENkg4*g~sk+D4C3a%z&=lLEEv`<|uX=f=XZI|HxXWZ1-$mgD z6J05tN~z{4HQv6?(=#6T>R7pb$M@AXvho6P09?|l((5Y?9-0m%$s#9L0Z}^KK`Qij zg?z;t@uCNK75%!L$hb8DKxE_rDi1-h<{OXp?Vs2ZR2sipTFGKd8Zn;ziJt5vENoGi z4)U3_Mv@%zP_e2bzRvTci!uIHce3Gpnn15lkpbgw3s>RH1*PWS$_w)W=AL`{4PT*PI z#R5%KFQ+(vJJZuftm4B)q6j|R&11Dr!dJwHUP-^gSq$LWQB7#06r-=xD{Y^{LhNfz z5cU|1xy@cydh${*D>kerj3R@89@VEr;r|Rb!9vyuGd9{&%8*7?<>C137NHie zt|hfl_+g>uB;gr35M(~ZovaJLBJ5p4Y*3C;BODi=+X`b9RU}UvpjPz4N~=_Ti?hfx ze+mWnzUQome0VPUze`ylm9kh6KGUx~SMdIe7A1E9_)Fo1A|@Lipof#Q|ZSpEXm*k_4hY% z%M2YEc@qtx_{xy>Z|~9mvd895W|xJY))Qn(S!$P*^K*scWsW?3|Mb@d#=?#fzDQ-& z@Z}7%=vXzw5Vr>a+c1z%q%L?@4*MI^G&@O(?VOYE9xPVl#QE8kso=;4fo}BbZBh>!S@+^i!@;89ytcPVvRFZf;3UWEz0Ru-DGiJJn*;UiKjG zYDNBN=AS?Kefw!$^N9K`$p*4>-NLA5ZG*6AVmhIWd*Gu$87f)y_t6H%SQB!fPP=xR<@LPOl)WQyjq4c`tvx zP9YAeaSC!dS@@cuaXTyNMHyLx#{4en@gXS~z{r%=C859Q^(cQj4w1iCN_ z{y%~=L`XK=DwV%1AP&-29-Cnjj|23hbgm#v_<;i$6p0rJ7R2$NeAf^YQSMy-YkIMO zzi@nvP4>zO*F=bn!;*_bzl?VLI9osYV>wOU2kn(-SeUd5p$~l3!tVIuPuUyXZ~YOm z_ch9qVxY31d8BU^q>5nU(Ickhw5jnnLCf2TUC$oYC97Jjm&`pKEr>M&6Zs;`xg&z| z#okRDn_ajbz7SJ8^{Qh|&9ztHOG`_;*fw73C(1;?$mayC%?97s={}f*eG^r*_PD59 zYq;-6D?Tut&D(C9{GiOP6)K!-z0`t0X0l>3hvp!R>Y{mPs3LYBU-ICy)Cs^@h*mMw zCQ=@|^84XfQYgF>LoXbIR38 z7Vm_fv_}dbsP4TZlKj#meDzGv+Eawj7Y&Q@;g7|NF-wB5cscUJi<2`*y5#wtv#+IB z<`VK%I(LM`rk;JF*-Wmm;!4Qwcn9@E)e;=2Wol$yO{Gk7xgX7;UWKc z>(nC(zIZF%vT=i_U&LeA3R0(=z6`c;JOr;Rx1xtNdnQ%ti!)oy4KN(|SY9I!yD%B;hKIM)J4Fse8SzVWxJ`KpN)j?Te{AH-_u_ry?VQty}6c&3=r7G`)Z{Fxd~^6z(_;F!C}erc_ZEsAMk zTtIhoGY^9wQfuY9!QK{&$8kK#Z}2{zZ{QR{%*I&=t<2MyqfY{SmK~{W?zcfGy7cYP zQDQwmPy1LXRX&sb>7Lt;C8wH-S63%pPaeT1ESd z!P8gWIw^#!8Sa;%bKas6DoojF*DG#ZRp=r)0iEYCsMHtcYHJ)B4UoJC9Z7u`! z+oVdJWR=5{PlqreMGGU@6V4Q`DDq8FnY*wZY1c@z8adgTvFyN>3MPL_FD|!n80)Q} z+KiTp$Aq*}cfg!Wb)<8*@+!1Dw#^1p9lq|#2iCJNlrcZW-p9^Q&;8PvudH6&oj1yK z$ii}OmsN!=zN|A;%yeTk)WmIHco^7@Zr=J>RXXft3nX+S`}%Se zNPPSZS2j?cnYLVqgE9l5dU9l{Uf57m#XhLFR-KnO_XYPZ?1$0ws3+lLl}h+s>&IX} z|6E*64R_{^>C$Su-{L5kDbhR0q!~yIG&0zl9FhvyzYsMZ8_AW859S}0`)gC7p-=Fr ztQ3P>n!qfCvYjhGL_i9o>yhwp)T63qp?t}YB}?HyRnov=C4h+5?6df1*v)dQs<825 z3d8L4=5G>flyeN*93$Y(C1&r|;`MDO55ftO#bL{}_;rj)si1U`8%Z3BlC-q$wn}lt zL}?N6&Vz|gzc*cK5l$Z>FPd$r!Jy@X)ZBxc<#HJR7G{&DPM=o+lG=N7>DD7>)q-tmW|JGs2ED<#XdAkoFh$*^U} z%|6ZK+r)+>qMfr{osSqT{$}X0ryZWB0(Yh+y>jLdyV-)`2@0Y5%B=6@VAC(}owUtO z8+r?Q2rPVWdmM|!dvc~r17s!{^jFsYl~^slL#B{rxleiSn-BAg$Z^?|tBQYp^BIJs zjJ1c})N8*Oz&M%=ls@Kt^FV{;{qAsObrL!5^=IJ8$ZEp&2=aUrdVxK~Xi3CgV}bH7 zlf0bQrK@#HRfvMqXHCz46fo|Z%j%6gR^`}N>p6%_+OIWq{^!uVhYlS5BX|5J={{`z zuf*-VeK8G?DyJ>Atzal!S-QeAV~RTM$5~-*!g`{(L+cN2o@&upW!^hp(xr7I!i#{6 z3B&1Xr4rd(;C|?!L+`ihh!(6MAI0XrXMOKhk#+~zq>N5XK=$uQ;*RTC(k*?>l&(uR10d3g>= z0T6Ta0r3(n*!IdWXCjEQH18@6Xt(D0*`&VvJhtuG7O$ zVo`2#-#G97Ux4_;rVId&;H7VP%2UItupZq0VY^@0gPZu#ZTCz^(0W{XQB&g=>MiQ6 zaZ|VVC35#@o_ zQOxE&+tWPU8jr`V^3|9T;m&KGS)c7g&)k(qu9p^6;!t`b8ADFJW@B8U8pT zB#F+zuT$>T$>P*#j8vbbvHAfmLB%Jr^vjd3z|dD~zcp3N>lfz&`*fd^3Xn46C{Ww_ z^xzNaHUf?+rS;U-{iuaGsD>ACMj_iNrI3wEd9~uF^b=Zi?h}Vu?nGfb(+qNtZQqgQ z_W)Vzm8}*FB3W7u*V=ExX0ikJUBEOx7$=qj9!N(O+9Oz zB<0pH9XUBEleXLowk+UZDMy%UuhJw;_Yd;OqAJ%IDxPzX^}z{cjPfQzCQK=pj4KzL zetYjXHZ31Eg3JuZRi)?>d%b!n4=he;IR)tnUto@Lk(vJ%Yrn?tR4;x1i2Wt4tJ3Va z|9(Wb>I32;&z+|KZ!j(){mm6~q0b{S(7yR9d3o!GR+ve`?Zre4{y#A|!DnW!`{ zx*-^cB^Cz_Fur+vW$I_XDJ&+T&B*uArdeZtgCsM;w8s&9`96PO4PIOOPh1-}f)OSG zl2SuiKf@2_LP8Af7iRJanGureKLa>$cGwg1Byvo`G1&X@adU_Y&Uli{p8pjviwfB& z-xs^LhR$=~iq+O!@3FmJOJ*d!M~yhBbH3WD+(ax{Zx*@2HQsHX9p{0ltrUzyZmW~p z?Qyt1l2vZxRmM|Oy|qOs>Q4`#L7TU)PJV9c#B5BTEK_%H#y(*oRV36yOgjrOO6@fX zK9Ox3?o+?{LKA8vkC4eY=g{7NSpZ9HPSND~$JLKj!fBD5zoQSml_~@&_qRDf9>s1Z?#a zVj%YyK>#jTLtB8>zKqd8VdQp_*la3#GS8!5$8%dxePi*TjGyAy0GC!9`xVdOZssa! z?)ViFmf6Ttc6f!!4R3qbi_}-gt>|*Tq;?5l3yWw^Sr)WVP*QEiz+BcLX4ay_v-!7| z$vXtsLU^*Wip^I!tXEq8Em%}6^J9(tFR`rR@~?1m%2A!)f`gq^?5+zf_VYg4cSJmn z%s!9PuqolxCr?Vlf3b0Zj*7@(cNs@DRRO^zorKRqn7`3#crNa3Vw_E|$!CSXU)6>? z^X>l$d>vfRDi?Qnm~R$K)ZM7fr z(q?jXE3~Mp&gUnbYwknjaB>+f^SL-+f_g0Y((ZA?%tj`k1ph*HA4;Y*@~`)=K4^&y zF$F16%w%f*f0DUkqr1Yk%;(r`@*kM_`CGk4^qpUbJ3IpDjd^HyNHxzRY1#J)3IZZY zwErHGwa0d7rVMm$dC4lqDn(Y{RoC>OK4^HO+2?WdhL$z_MO;M7y%XU!gn>E9p?w*| z7!Z&L{0_vLytW<*aQ;T#om<6L5?s6N;h-3r%ZUnei&{SB=wa$gn&C>PH7psG7ln({fB6rpJOD;jYS?EB7xo1p~km5J#Ye-?A92lU|YI8Fg#ePiXmbb9h; z@7b#J4dSBYS2o=--O;q|;w{Vim0lt-9r6n0M-Zt8eynXbgCRe4>|#kDEHL192b%SM zfEbcpWQA@7h+O2-3gQA1^(2l4=(*#dD$Cqz%SF2!8<->nw7HrFSeh;~1o8yA3qy$) zIoon~s@ealMcflAGb)+I1iZ5e;em1kqdC>ZC(NRBpU0B-Og09+Z7gdZ14^1azvO3X^dB z(hBbD6iQZLT{YIwiCT^Kj~n)Nq)uY`0@3{}o#G)l)luSfWIMI-TDxp;uAt#(qAFG^BNb21{#XZZDi zN@gYL2F=LD*4YHVBWJH7YqLA)${(i^nXt~F*R?_{F_ALM@$VW+?dLgSwMS|dWxQ;1 z!5BsP^D!yhVfE)thMN(a_PLt*+G0A~DjYCZe4v|1PbxMMr{d(l-#xmk_2P|X)TBaG z5tGYltWC|16AaN?2Ybgs(GYD&)}R=@!dZ^ z2fiJz{@j00O~O`~7;&suv2xpOG%=@5r()&O2XbEU5bu0ak&WmJ$5}Yy8j9ybqD}1O zG*POpFBm^G`=Tro9+P#?!>XWUh?XOiDPh`3<^*K*uAXubMGO(nZuOuk11Vo!-kXOFpwo`=Df##-%%q*9>#o8`%X@W1a_Nr^@d*Lfl*HW@XmQ%ZE0@avcSLB1DPm|xw#VZKG3 z%lD4XNB{cZTK6&OHIJut$k$4W8{SEXM?V-w4;l0!9zHgIdpNcz=&(puD zG~AV#r|^q+kjrn1)8H&Onyl^xL@->{9YLWumCz)^r*1U65IYVt=ceI@uNi)X!KPf+ zAn$AIQO*$gV4=V7)+@|)sewzB&r{MehUBFNA&UOEmBR0Y;x~Q8vxRxLm2NZc=}%uh zRH)Wv-?gXxAdzW-Xn#F9#SjaeV-Mo1!`23W{v#?+pcPVPy2G&6M*r;fAkb5Rgl7|{ zYRErKV!#4bblf6`_a6xZG8%+2F;JLjlR71Lrt3zGFw zmpX+OzLe=*k>XuF-vxz_Lx6b-%TKrYVK$BRRR~M?Ubv5a7l!wQc){d%7`|P+7!3cH z4FI2xPi9X=XMgpC$%5(HrpB*%J9YnX&JFq)&dV4NQwTW=Du@mxa+@f!ptkj_^@`K; zpjXMtoLDICmr2qI(vsNln=)sugRT)hf0rr3sJnwZ;V+T5=i-z+k=;kZj>i_cPtppX z6j(qBVv?)wj7nEga)l00i8-5M#hW}4_`q#v-`oy5 z9{5C8F(&SH(MMDhV8kOZPSYxr)X~64d_>Pp>s8ORVjOU?-Zh*Nhfhpr!@9}ELm5ch z&Sp%aTl`<;Y+&6iU{u^Cov)5Qgzb9JQImRIOtd_80QtZoVy=lt=#=N%G-rz+?DVK) zmD#~NKfVRwoML;SNXQ~g*bE;l5|im1Wl*(WKbD$Ym_UOUNW6XK*gnv*Gc)3gg^(v! zOR<;|;*6iVF{8ruWYRHq;@)_?$#QasTJ-85mhAh@d9hJQ1%6aLokzn(_Hj3^ugI{0 z07y`nmWjcX`?^<4Ple{Lmx-8#1iu~KQbNDI>G&Oxf6)M7PFD9q|E)r6-r+xUDlmSe z3Pa_Ftlnkdwl{>^M}56wz84K|Ud+Y+&er<4fzWIeDp<(5pQzC!0K}u5e5SMpsT#OD zsb6dqT-w=6U|@DlS|XqrJWBh8ex=OMY_B>AcnK&ig3^GoCl^QLXLzQ0?q$K$!cr53 z2vzFj)V;#zI2Rd~o!Bjtqm(#i-NIMFpBoGrLjze1q#gaKW7%RucnDsJAdI%3S{|G3 zviQ4-tDKQ!QB*LMd@*W2b*II?b+=P^lt5e&#Dl<+fmpFx6!o*ftVp8(&WT~Ia~++Js+}e=i|vvDcmbO8OGShQ!5Fjar==LF>>h? zhd#U;?;fGKLTK--|HASk$2jfi&NI-N?p4}v2fdiLxTg^ftVV-X5|XP#qydZ!=5E-` zMqfk-P6m9Pb-PEP&SAE>pi)}J% zkUl|UW=!J<#0TE>W5CJn(UYoiU~fpsxR`Lu76Ut2K*oc|ay{7E)IPkqVp=A@iBEq+ zc)4{;G9%CXDNA$I2gCrQAAY!t3QSd;}}Zfj6->%~1R#wVwz_dp7A3 zDx-HbK&wmvv)2OSW{E9#4d9mE3P`lK_`kNBuv;_-F2AKft_LEqE`KJtgb! zv>)9{Xq_|bnX;d#awZ}sHKb1R_k)mlca=QFu)}EIU5MQA@U3p{O{jB>>*tX`Jf93h8zq0#eFHs&` zrCTT1A56yHf_jsxR=b3YbJ(gzKS$ux4w8PLVTY0kL;G>}#cF0OXl0~7D5a2x)s1vL z?=5K~&~QnEF53M>jokCf*Q@@pim!7iI#Tw7Ec9@21Q!gJK|m8Cd+r+&uuL|3Vc;j9 z(gntN^+7QO`iD%cV>4CTKN2EzusbH<%7pA^-J7IR>h#)Kmd zqNGOOd)_J#5mSAeG{=e}saMcLe+q5-N0@@AC~-sBj|XchV(~oBK+`j8(5;z`E#1#g zg738i3J~Obi><}!-2!ybFc9R4V)q)v;KJ4SzMF5hQU9^bk}cxIR1hi;U{LxX{-b&Z$YqwV7jn1)@r8hf_7O5k_p z;jz1WugLd*1#(Z;Sl^f>)T7>;lKq@N(M|I=ca2N+ZxH!G`6jQTzwG{--)b+&lk1g& zl@=)C9xqY8e&ZxMv+0dcpe{N0(_spEJjBspHbTpYHks8&JyBl%;8$#n_qXi(<2q#_ zHgwLuaLMF3oT!I!9cFFgzJ^TO<%oRGaU7x)%>Eo^sLpCKL8P^)-V&4U$#^BGT$cZv{@l&$6-~hDNXNk^rI1q=)$r*b;v^bZQZmp2pfy!^5MuVm zM8z2!LP~&Z_)Ppb8|k~Xn87lMeW#1-s`f`KQY_p!iVJB+%Go!*-#qR-3;g!^6oGm{ zyF*pqalH`QxDTObEd? zZv^}lsNRKAU%JHeH=wtE>dAZ~oPe2sTHDQ3Unw+Ifr%)g)4WK-kVOs0M zX7mpo2BxwumJH;15Kazb2EoFpGN6 zJPK9M*$ay)>sk5kdyLfjDc57~s%H_eYiK6*WE)x<*HZ_Ah}f!p;fakL2;F+eh5UVC zHvYh)ti~!@)GZnhb5LL;tjcIi^-6g(;sV(U^*<@#NJNS@GmliTd#dmYK_pA;$AQ%R zox3bQ&+5Loc_S9EEO987toToBE}=5wFKR^Are`zq)8sCU5*LN_53pQZRa`J7oXzqy0uqC(8Ewjrf@g1+(|B5dCcV`+2G+F_6U~^wtodJr+*h z7^1p76+@B#l^zqg$}y#6h8{jMp?39;D5kqLVY)ZscqB@USc9g4%hD9mIB|G$rF$62 z@rgq_pF&H|&p-3(Jomu0>oN5(6u6LXWl^jr zNOb&;eNm-A0npe5XRE5-=*i#C*f)1D++oHt+kB|X37k~_*Eu3-TQG~^25gUE@8fI$ z-))&Ua(8i?*j!`j_D5_vc(M-Rx7OwFJnQnQ;Db^DG_A}^)>~MKvB->F-$&8HP(>64 zbBFBlaOTjbX8?&eNx5QquT6JlK`S%R>%1FlAn@Ecs8l7&;#vy}tNBVm3hMDg0?jh zRZhk`TSoz-oL_GBd3ex!$`{E{t*c6Y%hIE93Ls%i)0MZ~okjL#qZ}BWGd9xTeWYqL z1cfvGxK)bWQ{iV)9J>2TS(ykb57+|mB?{>`jQ>)<8Z?5T9+Io?&-&G~p-DWa$NPai zi#qabYJNYC#?mm)K*#*Z8tZ^n)hM1Wk!`%EVn(L?wa6QD#wtQ*R(hPMPi$p*w0(VN z#;i{NZ^V#N~zw$g#N}C338}~ zy$0sw&;(mIygM>ikhO?fur6O&#%f_*Wxi{aK3aWS29@75O!TZN3E0>g?p%Y@5CUXS zFJ0{~Mdo0j#IZ3pemhzpS3#ZR9A7l1|BQ!ROY;ua?MQwQBAG?bBy6ym%2*vevs~HH z+EI(c8)^EmZI8B)T51G4Y``(ri0n)a2Ng}cR4Sg4Qlywg0|WNby-iUUmHoUz(V>;= z%sWYBqN>4#A@K){FApv&37dOozCY8vg+Dhxs3;y0-Zxr4E76bY^B*34q-JZ6pvGN- zUpY}!Y2j9?S;MTR*a(K#FaHK^LdFIWVq1m`Wl1RyqTGo%^N}l0<7LSaTtfRN-bDY- zLvJG{69t2>U#@W8R$7Dq;oRT|Shbp!jr2V+C;u2!l*8RZEq$S7|0*V$nIA^?F#eV} zQ<+>x#20FD2CycYt2{kc9VGizMdw77=okNlQ!lg!_5&){Qi1-u^t}ffJ?7o0Ep!K4 zVO~92yoZ(PpxuFb5ofT-u=uT+V0u+Zj&d)MuTx#6L7Zb_btdNnavg(&kNh|N8+k(i z?jFWM=MhC<-B=n+BHl1ue)ONu;{0tHyxqkaB*0?=H3#qaEtb@h_{fFl6hHx4avtfL zxhMAG1kmMNXX6iM+ z@S9^KpMY95#gCeoonoJ#*mejahI5%0;rVX31GmE!5yS6#iQE}kWE&=Uo8?<)c6jf- zhi_X{#6aZ731T8}cfZnawRaf1=n+W^DMp+pKayH=+|;8KFhk^REWbx4k@~Duf9C0E zbHUwct~%xUyKVVy`Y8V9D`^^b3>Nd#cxAJ-yfXniD(Dr88*$uoq9=A>zpy`W5WEP* z>Et^UH=vci8?tJ`}_8d?21@DuCoCS%{TTCi!%awm$Q#LRgHB68%*urh_+*hKAcQv>R%~J9CbbDHUL^qyzJ2&(93(#(>htO)I>98?e*LQtah=2b zIhyMRa4*J+OhQ5jQ6kJ(87WBjRJTnJ*BQ36Qfa0u-cpJZlzQ`D%Q}JlZYH(5@cU7g zs>v}ZoumD7@0`591=L4@yiL4!S(#+93$cy;Om|MyPWW8u2B$r=FQhI{R!?zeyp{6g z_EfsX`35wvV8324+g^4k(XUhHOR^HY$c{IiVadVLJl#*O$4ETPffS73z@}{uX^ILh~0?kja>%2t99d%7!pRDasfmM!$4#KkwLE zeC2l{f~UNsZJp#b6z4spMSErsxJ}4&R_PhUuT+2(Z)1O<1_WrCU(vIpPu$DXkBrzs zzAu*pX)NM*@Pi+RP_Dz5R>XIiC^%-cn0`4?^gD$DvK=npGH#^M%uJP>1SY;IQL2P& zu>xmKJ1`~!rV3Cka^FmNMczpDf*5_GYRU^2ifxl5RnG#y+=#9o{L+>U+JVagHd7cW zBPG;iy@WGaR*L{S#kA)L5EZKFyoYhhar;7+j93XqZ$fQ>nZs5tV$7=I7oj!U?wfkR zwQ2)6*D>ZkJLGAP{QRNS*pkL3u6%H)D};e@o^QxQo_DFhboi$wb0i0P0F!S-CLq{fsW4r?9; zkF8ddJyx)IpEM|)xS))9c^mp3XH9s~Eo^*#OodL@RF4Ci{>}0b_&{LPXG!$G-yB3lmf9pzlX*J;0(K^VS1_WbG@UQyS`d8Jkf)s#o9HW3P1(b1i|){2RhT zZCwJ*;!2RoyW~FEY3sq#yyVG9&nU1*aBc50)F^!6hggOG`4?$QESckD{rESxvbvar z9cJIWA>YQw^*Zc4Iv4)+EqFuZ#4ngT@Cdu0LxUC{w-R-+2=)tvNLY9+kWJpR@YQ(@+K2LbMvWeWgl{|r?%Z*6^Z ziV^%Q#|CQMmEXQu_Gzea2*~iEx}89M3aPljPDY&#@S1Fa#@K$c=MAwu7h^vI@Jijh z6%k8>^8hR?jSRjA=VADnl7QIt$`#ip#~d2I54kfJa#`N+^Q&#`^N+lO<^K1Lm{By5 zt`x0W9HawI(Jy@2CfSl8?<0fWvgs7_33>ql5OqzVh6S88Uc{lCv3W~CwZ9H*4|$oR zZD&Be$VC#mn{)iLIg{ktk&ZTW3ZD!mz!7?3-|nc=6OQ=&`URR^Tmn&2h`({o!)K<0 zu}9braSCoD8j`Z}gltR?kQbvIds~M@J4!`S3StH8L{siUd4c|OHzJ@(bPXc%@2@Oo zv%a2g(lk808)6ktXJDpvBlq&z)7w#AHi+?0C?a6@z_{)Ocdh#Hke5r04R&)yq?E}F zR@ZVFB|X6tP<99WgzytFceRB8$@H>zn+mRI+W)q3EtUizV@j?@^9)10K&??nc%&Ia z&YfebZ#=9y_E7zOJ9y(g84w8ItXbwYD8y218Errj91Vw+7Cg?} zccK#%vC}o)<+HUglQr1W5d|F?p>| z@!S^>>u@SprzGZSsutR2{fW9!$F&lIKeJR7&t6<_IOyF}bjQ`P^qvUbAJZ%(@JnoJ z`V4tUV6v4Y(1UN#Og&teb;i9aiS|zHF6D0CDHhI{5WGyiYc0;WsLVz0mDb3$K9=6| zj*#^;s-P-2M2CM>`i0Io^wGz2E@}-agIg%y?nIBMcSJycd!uPtNdb`bu`ZR&{u;~u zSYIil+pq;;lPz2K{T7r3%t9QA*wy9u#c+>#Dq~1sB*XZiLNtythG{O6-(1m%nNpr; z3MA=4M=VR!DBhpx(**{gqqJo*PBY1M5+$n2F~wo=OqQ$j zZW*4lEa&X{;_6*JwvXMFzee-!eNqm^{ch5KAaiIqZHPgQc&^&)MmI=gXdH z+Q6sdn1QmTqy2}KqUblK)1t{XFFDRsF|_yd0$W1351_GtyIjO}Xub!J!hHLNjw90d z2gVgUFIp)6fP)ZcEd}2E@-5>^u1WW)1Ox3Bouhgm7pb=c-qAI~3rIF{Rb=w?WHzq8 z4Z0Jz8nz(R1ZFsRTpfBe^`$Y<5Itk0sM*h)Aa@HI0+OX8=p($C#qKd*;a4~VP4gZ2 z-OikJd2u_hBBUfTOnM%BNFt!Eb)aI;*+HzM_ovl=QWj1@jE1AnI6g45b+?oYM^maa z6Yn64I(~{!XSV-MC)*qM&fH(D@7{Bbx5mPr0W5XO4FWdKF|0zgr_hnnlWlAX>Y;Dh z2IN$)0P}W~>thrakem}TLc82mkb(v5=W-)ATtjiuKyHZL@PdIC(F9z-2k#nvu)C^H zO}ynwUyIu5C07l;OT2YMb^Y!t=x!Swwi?ZUFsJp$XcLO}Wq@T&`CtBwUvm9p$HMtVMpdfT;3vX^Jfh$L`;XCsPxDt(7v zExbH49vg7>IF~Qu1&H@+t@W%@0#?=`tnGcYk$vFppu0YC6mh27Y-Wu?Vve5XW<`yK z>VBKp%io9~P}hDGhuXFOcxGaSd%nky_%L*((oItNmME2_+FKYM5MF(Y>yxez9jYjW zFly6TEK|=6W)CtVns!HE)*Q0_x<#wb5FU?PoCaFV9eF+nLXQuGH3ecAzs0BZYDM zcj4UHf8%25a2Dn5`E)O>{`{C^iuDt{WA;|+6TuqG`*h=r&PEjF{ItYr)CjSp8VVWd@m7rk?q?UH=I3J>iw=c!;xce}+3&1;da;iY}GxcdcMJzV@S_c3m1c`|ax z+qCtaorL*_gdF~#T_$ZOh*xSXgc~k=ISAak{eFjMQEbfo_noKz*^;rtpL*6I>szgx zJZ;ulh0h}=eF22(uZR&VzctE(EBCIplN}AX*sqxTAuqa8&%@`*e3SF+)TZvcg|$*- zq3#nmZ;wd}WQ0z?B|jH-XLLBFrPC(a-9hRR+6wg#Ajl zX|$-B8@AFbUN~07v=5-f-66GVy;H#(pO-5d@hwN0^;0`eG6o_A{5s~Rb9hbrn2SQ` zP?|d85iYzirNo-w4#OGSA3<1xO4n7Q!pw+C-}3H%^~N7{wjkOZok~7%FjtjQoLO4; z(AMxQEUaQMcIQD{bI0#rzeI)Cwr>zR^X4~3ect?x3Zj(rwy!e80KmOJ+ z+kONrwU*uweo@cFc@9dYUG-oB0m=1NsReC{`=!^bVKLWqC)6y@GKRd z3N9LzANK<6DC}@dyb1Nq2_Z$WnOEyg$S^9}1?3X&Z9p@3A?$SOcmw0K09D7mRwo#| zb)xzd`}%=93BZC*AWKGeaRXd>M4K=kATB&)^l&BO%s=3yg=*dONxubDc|^3L zY{~azMKe|U>Dkskjf0Z#qkH9S-?@?5A^nrX0+J(>s`rX%dq(X)Pc#aviizi-V7vN* z7B@zR0Hq)#f2+ydh<%>kQ$AE$b@2to-F2sMI*D%;;uGX2+*pB3w#})sQd>Hd zX+Dc-G^#}uG!pSP5CQf_0?2{s5*{VUUFcW1MJiMrXJn84vxZss|K=9flSu;4N_Z-` zPXfCz=kb0Y8BsqG>fg^?Z5H+Yzds)gJ@%isqhitJYC=iKK8Z>6vxECAdyFFUY>i2K zXlQqme7&5d_Q9_4&EL&lT!$Z+4?yv8Kw@~Tj$c#9g+~|$HpC>^)I-G9bPq>U@1Mo> zgLK%hEU!65*0*$bq%GPy&{++Q^a;NFudE${@{8`-i{Vq=JrOdPO!uk8_XNj`pLxIW zZsk3kve@qBIQe=8XWFz9m|YFNvU>jN0l%z-JAsF#zWy_BY|>WB+Ugp-E*ir%hU*86 zQAXQtj1ezS0k8Yc9~B$X)sG;bmD75Il>^4mcVPa%$nFYHe0w0toGZ2Vn1zI;$QiUN zi!6c6;3i0AJ%2-sZx-9vUR8q zliQiSh3PJU$Bb98)Fv@74f2To^&a{jB2%@Csc_7Ez8byS6XmPaYCXrWjJvg)XXg4( zX*3574HDAbm3nNi)b{TO5*TI3^t+9X@_LiL{_^_MF8p5wGX)ke@%BI|ZY&E0Uw4!{b)8lwa6(Mp1030`Tlze!uScSu?L7SY%Jmt7l2^WdwbU17eTB zV~7lK^v!3@Z7uNxO=ve~(gVbRW^1qV@q}pjS=FJz#Q;h~EwY)^@W@KIBQ0n2di_~+ zNFPY`c11@CrlmYR59mXxUBjM9y|>NU?ESa(hQT6tl;y^dEY@aa(sE7fWk!Dz|MNT93`xIC6a2%($P^=lob2?GS! z(eQ*_NH5I(ovp0RMe_w8o&|TZU(NYCO_8fzr;M~_bX^IirFeI-LW7B~lHe>ii!Yk^ zZc&<4cFHd`yo5{r3X~%}b&JKhZ|G?-XYncgS0LjH$7-6i)_#Fh!(6R+Ts5>Y3e%#6Vhcmx00v7YiN<&4!>#&vXyu;XU{9o6CEncdOMBp30<~>xU zBfsuVw1Rv5Ub~xJ_&!)N0}s2NKuY_-OQ5k}4<*a-dj{U{KT_$j5WDCln{BtXE#9-? z6x-}2OFF+5M`|MQUyl7Q;>cgFh0(CTf`nR3e4))Her-%oHr`pgvlKaoEVn4u^nDPM zg$~Or+}`~g3$$I;g9raUyFbaN%s+EK!W^WLD7XB5^O%!LlU*y4+py|SX(Ebbi@!E; zcl~9o?C$I52p?ulc;48nFn8eJb2Z_qfce)mbBKYEFV2ip>d%-2-}0d3cO4$Yj$^L> z{=RiA8AvkqyYAm~M^Q}}=X)2~40`U&2)xo8Pp`l(AKGb+Awsy?m_1d2hNEQap2-*< zB24*BL1*6kliNZ$ML9Lm@eg`33YvAq>zY^xX`Mf7hvku)96Vw|&~l+%nmK-yi$IaUVKAcXJL>;g(5hLztkEEpj);?<+^Xs(nOn0avyA|11 z^^>L^GcFw4W7}K?d}si|S_)cNTmLDXb|upT!L>Rx0j=QccyO668Vl7TeZN7!}FMe}08USQ5-Fpe80jaO6Qjhu*r}blW1~L5S(X-n;syMtz z@Y_jM5hwOXl!qR@u*C}xJnq>*`P}f){caqTaaRV(br=!G@O=gic@P>M1B+8Q zyeSNyWAZ)zYGQ;IQDQbgj_U+LUAJ}lhWC>iq5eqt>dihEKCrHz=or%}@=*`O(twW= zF;9BP2)^j}J87Ya=o(1*2Ov+QwjTmm;?b7nF011AyA3Ll9>i6#_Y z9KtY%;ZLazZ0F)C*672HH+YY9CXny?NiWxjvvE-bB;(5$z*i;lX^Zf1x2?;FZ^@)j zv2V|6jbyA8nyXpSNt$KOSf+3t6TakaFNXQrQaU_M?(^B>FZvGY8@X{SVxkY#VWpqx zQfJjzVskx}9-DNj&jRbZw^@$U0IMKSAS=sJtYmYBPQr$fqU+Ppb+r#wc?p2+$IPcf zn&_&}@OF8;(=-X5hrRT+2>99yz;%K7cxNBc$<@xge=0pskt+4cIF4VBj0;~(cSwfC12qf))QcK) zPMDo1ARFtQQ3_=t`I7>+DSJT|^`%FI=r{#@ReUTmx~lh8{YRwESv9}Cn2oR`AJbx9 z_1@{R{9BE5uM(!vti9u}pxw+IiJ2&W+`|(=vph28edS`ZGK#39>W?Nunq6sKHy=@22dNMB8V1Ldeqc*|nPAVkdtrdA5%2(Ae}0tO93@lS9WC^HzK zzwX6<_|{O($!l_0MsTN^$)eg~;&F=Yho$%h6hMcl)=K+2EH#*n=t#W?T82d&!4eQ* z4;152q=+VB@w;I(i^f^n#$IHM_;hHJ5bY)Bm;@k|wN$B1D>#JsC}BScyy|n{=OqyEE;P8yJ1$J|49^zu=JM+rfN3U>}8jw4_=yMG~HI z+5G*`c@Eq?Avhab*BZB%6-|Qp;|h@3WCU1v;PxQrV)87FlclbjIbXWz)90n6`l8V| zih@lgdrzg10coBvF>V2?Q)UZ`VP)y}jvh>B588RrX^fSigXvGxE0pX1PFTJ~W`F z1mFv&StV#51}09v7Yk(ow=wMjyT><<|D)(!{F(ayI6h;{{Z2yexf_wYjS!I(zR7hW z*Fxleo4Mo`aw#cHE~ylXayR5oNXaeNx#X6y%+_Y-x8I*|&Ut)3=ly=YU+>pbtFzW% zV!^L4>z9MzM%~ViQc0+zHM8M|d#$Q_EBzjOPX%%AULvE+qZ}1F0S50&DXF*QM;Ht!Vhf0VNK#brQSu zHmJnkDCYR5%K@bW)wXn?w-wv96}wsR==s$YquxME(JD&b^q{!k-i0sKfv^!k?%=O_ zA7JiEUac-#14_47NQ86=T*_guG*90XC{x}5u=?G0Kw_YZsv}&u&F)FHl|;oQuU!aO zC+$khWRDe?%c^ctj&b70~8z@?c!g32l?ps`MJ=d@(e%&7IU?)B!7moBbN zE6Z*!-TpVClvd@*MV*M1+&$mx2f1}Y91kEQmLryi_f=M#EgI#K>jZxvxo_-*qaz9~+{Kqd1!K5(fm&bR?dV4!7C27#Y^A z;s$Xp644%#bO`0YkIfU_hX@ixkLD%u!-iD!7s0x}*e!Jt%(V}doeh3K5)7%5qZTE^ zD$pXG$}ulKFdG`CKEwLp5%6i~&%gIW_R^X&#w73--FmDvBt_H+GK>HqyasD!XnY8D z1P0g{%Bmx1vTJuqslIA!LI(H`xQ`wo?{fggRb-dSVJ8T{rN>?}U@9{;qnO>_ft1rZ zMS@^MHqs7JZKI5j(npOnHLmcSsuZhu;5OMEJ`>Z1WRHuTe&=+uQu0o|d$`zoF{v2A z72KU5W_kgUbC|S`1}08xHQVHl0AZM6CPtJEwYRwDc!!2Gj6}LJlQbs;6;79uo4d`$ zTq)X@Q`T~2jb$EVHtWUU-lY0XST;xs`;I07KmB~WvhR$^9m?iPePt=I*k~Q1GO`|d zSI0+!-+sPc`HH~vqv%xDvD9C#VS|Slr-q~HXGkii4oOX2dtTIdSbD0H(}j!!rX zJp+bjy*2pQGKaE`Ff||3b@? z???6+fUiDd4N{Y_$%I{01^J)_!F`6i7Bz`l(9PJWx&5h=^>+(BtXurR@_&m>g*PxI z!Lr7^TR-2b=?$qKUJ4XDO#9u$MTznZf^ob)B{rxg-#)7r8`+Y-)o;SSVpFUyCp zFGQ!t&RGf%JDl=z7;;u;lVrANC9?Xd+r0&EfDbk74bM_Pu*BMkF?hRzJ3Eoml8++pD@qFU8K z0@)L->ESs(7msRG8Tf=#q)ZoP0}c8Yg_0#Q>aHkn=AHq!38o~N(Uit9;rl!Jq(0ZU z7%1h&0e3O=3>Z9d_yD?|OEL3H2cRItWLeO`eQz^b_dZle+812GNM$r;p2yDiUVUM9 zS#uZ^=%28@KhZ1ffh2OxQj&oX+oy)TfTj$G#r}vynfVK>7Eo)tf_xeIZ}c5Yd)qJ~ z(*AROG1BG}$*YDFY_8JevUl11Tge5~roFd#N4xReUmndW>FD*mapZ{Ycx4_#P~U!! zaBM3g{}rP;bqff3Hg53X!bseGc#h=}&Td=!v@0=5f$1`B%Px!TKR#L$@3?}>qP`)# zcwJWacCh}PWb{oadP$%F^ZCXCCyT|^oTWwPRHf)`{j4bA4{3= zo)MuUiZ9QTY`ih;hQF!+%n`s##mQuQ zgy4p8$*tcTb6Lhw`($6RX+qR?bxYrYGG3MqZ7Ix1ou(QUlJ%?v?o(0kHKHxE-P~-i zFWVWZt{_e3QGM&kdvWZ?77S#y-umkaU2wM8zi7W=7~1$nQTUtc>>Oa3HU&`WSFt4J z<$aG19ok9dAFt&UO~WA)Ik|7j%uPKtQBhdQ54)R_o(jCwKX;Y)O2NR@?Nr-RU}-C% zNHH-n@+-LcA0W7n6=e`_V=o`wlHer^A7XtOX7*=ag?8UXhfREr?+`GPMDZOd1HR_M zV$N|x=zTQ)@a4;`jBd7l&1h2Y{-O!w?}sZ}Z>%r+V&d>Bc4Jqx;PVhrM>;F+De3(K zTE)plyeQ%_M-n-2OOuS~GM)!>#LI3XSD9&PCSG!Fr$dTkRS8sX|-F;JzoYY5EdV&dt=36PT(@uW9q?EWm#a>fCIkZ`{$>6 zkuB4%T~4{_!pYC?*rQRb10T(r0aD*}6zZC9$4oyp)r18WI-%^GIr)1(Ab50bAkQ87 zr%f${ve+`o$zzcV4%YIaS<6lcrX)^tAFdR9~sbK-n789lVeCs%>vl6X#a__0*l>EY?!rYY!27K64Z|@;dIE8 zibGhkBFd;@^MvX#z}MU4D$`*NtR(kWA{I?jc3z$ZtupTS#MM18|JyZt4u)~bM?P@Z zq~*R}dP#7>qiU}k^Fr3>j7!Pb;0gIS<22IH*myI}jXmCN&Ac zYqlowqu}t{%SHRIl&yt018G1c-A^yqf30mw8rveCL0;H3LzAwqF+Q?ZSzON-z}Ut; z;vu2;T?ae$;4b&XUQK6veG$gj$cU}jPUUnUCeP&gdO%3Ir=e7-Z$vqA?t;vXwC=&S z!Oq2W@DlzBjRo(hQqC*3&7d?Hbr~-~VA0C#6aTh2PL)4G)o?thez)WTN{Vr0+WuEK z%kSi>qF=V&{Y=g_`)~LxEaEiQe1IFR`ToRC=lvNT|77)xNpU7P>ybqTwl(q6kH?3e zq`ZH97Cm34$xp=n=3g+23y{>yN74Z_b&SjhU1R%R9xM><$xcyZ5=#Yu;{AZVryzRq zh(;+fJPktG&z4miG((aqJC(IzwLFuRezuP|mtX4hZ#G8sXe>|L`|0A2*e6_nR76~8 zA}P-&>`oiUKRtX@)aDIFWr0}ttVKP$udr%OXgd7mein+Ot@j#fTOurkq zW1Z|Ie51qHt6DBt)x4lmyih@&j`=7#q5^7m06LuP=puHbo`FLBPeFMyimTHtCmmcR zeGU?l5H2z68*Kf2=g6!1GOhH8fji(MjpiCwkdLj7&Eh0sQmF5r=6+!@5+ z=`v?p*-w)QI&39gmKNz@YklT>0zC&9^NR7N!X;#5po-f~M5i#e#-}|6kVLsAP^d=f zUM#6wUI#!fCI&ReJ=l1%O#Yf1zmjUPESwQfJu}n#DEZL+!u=J;r8P&X)3*;vnr zkHVSl7uS{zZ;bf7?Trezd@(V-X`II zU3&j_W1Dd=#7K=HZYS(YQkrY;1(YqRhx%uAuB)jufW|d57*wBdvHUcHUmb9r6U$x^ zU|)k+uy)gUFM=oI+ExnqjK90TK|L=K%HOLgUA2jKM`D*anbOn(T;8%rAl*`r5Eb$h>VKzlymrQq`fb{`1^yJoK$65VCw%a{&z}H|+jo&)9*{da zztF67c}dbUdZ+Ea!7)wrfaTLLl%$P2p7f7ZmlG?iqBBMQ}1?@l22)%k{U{m+mp$AIjC z_4jgdIp-iLfIr$R3vZR|`0F++HP;TJqM?@n$o=X92l<*O-Z#nP68SiMKiRYs0)&x&);=NHvJ9arIFk1F-iaF! z*OPtoK#&zp$YejtmUcT-J;^Q8?$miFO~ zu*A``mBxl8N|KW@c!{$n6tQK$&5kAYiRMD8ggD@~Fju0`0Czy8<@ zup*n7I8aR#dyE>RGEy`06;KV4rdu-ksOwQVY(USzZL!U>ab*_Kxta*c`(i7BAlRu% zQ|Zw{@n`)Uz37yO-Kf2IGm7OtzhhU_pRRg1F>!%brBFV__$2RM>RNso7+rphs>5Ti zMv+U3N`4itDl?6_evN9kU_b+p7H~?#r_X^oWp+=83wwn(*81|SCK`R;Ub|TO-%ZzW zYD>E0q`{I*rx&Qity>z%W9&x_{u^K(Mw|$f>pwknwmz=$iYV&{*yLh9W$;n2CjC7F)m@RC~wrzuJ znHb{H7|ZPTWeq(zIbmTbZP@(tHc_8;ko_l+x*<=Elzu%z&YFKP-_mCmmrds9bxF>~QoMyd|c%%dA^R znw@Sqzp)@v)QUUL`GNoB#*5j~4;qAJm~~%E@}x}HH?uTd#x;B&xp`*!%nZEl;XlEt z>$bG%=_hG~%&Pd*A>WI`IP88IIlC->Ys3SQ3KIAKIg9*aN8_FbxDl;?V-B}~UQJ<< zAAB(ev_X{gFd~ZUhy95jjT^=Ikg5uN=QDW=amC|?>c32v9ahiI!r?`rYGGp)-DpqE z3tuGS|JYwQ7IUk$mBN0It{u!bzuXDGKF5pE7j|3s z?XcEIT|Eav;W4Yww~2FgjVsuoj4=ejW%!wBc#v@d2EA~Vt_d|151Q|Oho}u&O!!*b_u2g1ga9?x$ zJjKATf^i|)m>0bsTl1{R9zN-mLnsHyGnI56&>WG`#e6Hixcm?`dW;pVehBZVe90)g z=)F@fRc`84XZ-f6asWE$=OQ>XYpYhV{7>6WUZPhfsi-%?dtTlTB3qnrQ#p~^LDW%t_gwxy<&UqZt}bl4`s%s0r-TzOaXgF%TJ3Fz1)uhEp2eBve4u=`b3jQ8A2L7=;L+7$7XuhjaG^^e z4a>4iVXP*PNdFZ^<=tLmDf0rE*x8kZ=Z}t05X66T>3ye-w|vT#TTu=X}$9W zJzb*-==&ViOq!s9!+37$;5%cZ<%k7#u3%LH@;`>JK2N7tu$RbWB$E7nTB=+yRc#fe z%sI8|xOrgR9*3?xLR~wmH$xGjg{P_a6CDJSk78xaJHmQ`e$wQ3I3BH?^Wc zlTW+5ffm3Q5%$y&u@XO7l(5I4x&n&O1zwI)Kj;B7cSO*}G;Ud7D;Qoaq~4!O1yX^Q zry5^(9%8;j|I0gx%mlT4lXtZagl>-?rw~jYhd}kHecm0j}P}2LL;+zYc zrUL1Wiy^zJ&lp!Y_M|)>{}EFKkf#ezv;FyTPuT-dFaF>hQ>M6P+?r1AAy$E1_S0px zAc^?9_jMkBf^krDfh=3Ygz>Eh{6V|=z)O4fay(*3LIYMzk|?HLT`J>*Xzk(822$lU zfh4LG4JSFh9AHM{r{xY~6RK>+o{%cD>*LDB$k?l8f?zFjbt={!tU}Lr#sD{o4_c`c zQ}ojWaVrKWCBnss0EzWeH2JW&?>HEPmFJpDh&mUyw3)Z0vE}P!4N~FYz78uxu48|` zV`&(axU$0hQNmJ6h%$gSH(Yd|)AibZ%yo$yW}HTnxPaPE`ceJ?kG$$23!DRcRIdXi zp^JYk9kYPp_4g2}8;mJ4R?~_9lH@rxyl-_Ldjj$O*PR6yhnJS@JKwuf1n(g(-m;<5 zBNO)(jo0SBp$4+ivmLUsr#ZkKn(MOi_dzXiH*o5?N~h$W?Vu2E%Zxq1#NT-asiR<3 zX%ZX1FQe61m)}F|fXIs_5no1L#xGT`BLun1p4R`q2&0E#EMnGnKVfJqsr81VRqmt2 z*nv7KMyMgKwHBQ;)(bMgOJ+c27`94#Z8< zkiQdcNSGvWefFy7D-gZRfL}3Xh`WHQiC+`BA@U)sBRuxOm$Vc>*%{=(kkNTEr}iA| zdeYxMMb+)^+k{>FZ-ZE^jZQ%C%S$b*;<~4jMy71o#aIx{FVcK414I)WVh@NSzzoSgkna^pxZZ)}?Z#91#ZKdYx2b_Nu_*hQj^& z71WfT<8`B=ENU%ohR1V2Pq+0nj$R#~i=!rl0}4Y2QpVI=SBvxLkZn3%M*i~yGg|RN z^j!&HcxPB>>Vwn6IP^ay!ii8fQI=_qW@$Pz=!S>I?ZnA8GkE5MJ{2GXSs!0AZeN#k zI(;`pcG&=S)W7vpwV*4NzO^-p;^e%4_qX+5C&nB8S}S0k&7~shtk>WC&{ws)!#FBg zCUIM0-L^OO`FnITRE5!lk$}5_{&I&FbOgKTW5~30IcY+OYJZfw)z~4aB`FyxnU9Kq z4^;o8we4Ayaa(I*)7B8E0ngZ1H|mcRcy-y>Mw%GhyLer^_uG?(e%LE~GdoUiICXFu zhYy8k&iVxO3WW|3P-1l52dezb>Fl{%G7jYx@lBFGSZV}Tr7)$}bL3u*tCz^Qqx+mp zNaoiAQ`qdgZCLGe``Wnm(41UqTXW>Z%GWtTr_8=+5Q zO4VLQHU(EEUUuv@o*_3)#oL5$!+TNw=YE*n=et79rC@n4+**9%-tdY;;A}&rm$+<_ z#2;q<>Jn7_Z#{mRDHuP(T~}}~C<{)%k$M7C;Z(wB%IuH$6gPOS7k#;fPzj5_3T zOnV{dU(Kr7ZFtl;9TDVixsDamJ@2@cu_g6I2P08^ngTk2{^mM7A$PkSkm(J`_;^Tm zA}_cbMcr?gGhXVP;s=^CP7%|l?$$A7GMSfL))AS!j~5ImX9uH3gW}S9ef^Geq$E8g zsJ{LO>r0wBhi$3gw6@MXaxx$Qo&PdgMZdTc5h=iT;c*;6LJtu&db7wF7iCFRQu`JG z#$6-T@EFfe_!+a)x&+SWSTaU^T|opQsR(mgA3C{sl*T=>9y~(zuNiObguM1Wl<%c2$O!AHXR^97&74Yik?<8)?pw14J^XC)_yEyu80S82BHjxC~rdyIYJT60}) z40{H&`k?vq@GXTOoqv`uodSX(MejL&%C9P?wxZ;hJ{;61D@0s%jt%DZUj_#+Vc zZMB4U)b&FuCDlU!z!hVUP+Li1o!$vm1Sz3=vIQ)x376L~uet*cw+7OI!wbx~Jk-gs zaU%>^FlYiB%Yi61^L&!*=#i>vwjSFos&XhL2x)B5i;7@@ZBXe~|7N{{q$B;ay?*&) zr+-HZkKl58t#{Pk%YR$G?Rg7a1|abq0g1nikBw>cj*^91DfX-z6-JtAQ>c1bLa5C( zN_-+#f?6ZX86Cd@sc!e#50g#Ei0aHc7^d?RfJnxXVvT)2BdT79criIblL|pI(%73= z86HzBz81v44yA|?PKZ>)vkXG=Sfu^QU*6x4SZrd5_I6XWG)ktuUw1q^@mjVJPkX;i z4g0hPiHLhygML7HS6gFL+k-I70Vst0G{s3VW%tUr|gKrRZ5YE)D{4I?(#WS|Z9<%z1RT z%ZQISdV@1DTbXe=0Vr+wvl2*6Z+8YIB<`1Qq3|ko>?`|s_E3~SUYW^gX40St82DC{ zKSpo(dlBJGehibkLi`)rA$zFEFDzf^(ZfAGW@Vxvk+m|rM z^@`YIvi*lX$6R_nhHCq@WcTS$Ms;CIQ=%YvEu9CyHiJ2FN<=;ewj-hzuKmemYB#50 zX2whEVFd_PvwA-bm`S{n`%Q}iB8~1;C(odCl;Du%Y1v#E>PFiv6V_gd0=!PE6LQ3yPu^J$$5m)W&(=b zt(s(|dS&ZA%;x03WG@!-jeAp3*_s{)Jfw*;!hDk?-fC~LJSO=4nOJFs#D$P^`-Kb> z%9~pmjdy6j6x`Eqm4CWmX$%~<+gh3Q?eyDj6rZhJ)e~z&pl>)Cq7Bn3 zil(^-pU<~krcJ=p1_*o4Z`4>Z=3VPWX5@9_#6igBq(e*IaD&M=4^HR7dM}hp}g?}++0Q=7EwE2aCD%1e6g8UAOqCBxkvqbn9l$Vwc89H6>&3XG1 z>Ng+iEtiYHh|vi)7QCdB*4#txeS zS310(;0&>aRCvKgdn9h4`?jz<^Az)#bd8DPh_3pJ&-BKSPgm>)^OMcV*G3OIljE#t z1xL$diB*(gYzKRpa&#XjWn1sv(ARF&CR3?xq2jnu@-?uoD=u#S7i=u;A% z4gH^E_FdYJiLGQqF*9W))`!De)MQA{#Z=GT1zH3ixa+}&%N6Kq3OU^->H z2=s>SS>qpO0QlfO|H*;3X>h94U;zGt6niorWyB$q41D}xMXDb|MaYN{;-r%zHbZ4rFqWcj za~Hoev!J4+IHA9#ST=Vmzr9HQsQ9rW-iizMWIQM&?fZ+++O5tD@Q0s-SHGCUcfhat ziqGH zxhK-DQQPDJ(K@1|TY2&F^YeC__2%k_&1a1T{CG$Jz0SL84_f5wK18Tqb%5d{x)Iuh zR%IqbHzVH*4{%n_lm+L1O){NpaerT}FGvKF4TL3n2UwzgSFo^&Cyu5%TaoLIxlbe* z$=JW>$oyDFnx8+|13`J&h#vS0<#D;pHZmrRolaPa67oRgkb>Fnu}rj6=?^MFdje~E zMu$T%(gsHvfjKzOjK~!p+FhFU3f8dzINP5D%!z%trugq>2t}eBON?H68yKC>6V`kW z{Y#Zi`gZ$gMz1FLd)CkJB(lAxE;}4yVYV%} zF<_THN&D$|rir3#L_py_VaaJ2*O-kdVH$p0o^07ZW-CnPA2P72StxKLRN)l~IQxaj zNNGdJ_O>G5g1ys;a&@rS(s`PE-lZU>rg%d<@b&`xn4S|8&vngrD$#5AJVqm7W&G?Z z2R0v*uepJip(4#q`yM^VQ)-EFB_|f2a!ZRbhf`n05@W;(OLh5#_Hp|a*!S_4zBc&_ zc(db%V#guwrvb06cC3(CcG_V5+W3l+HoS>h{Wi3U^ARUL7dx!LX-UH&% zMA)02d-xw>A<^>Dd`I=Vnx8*?pnppnC zaI-4y(!p6n#ZV+PnTw{1A_*f=b zpR|89zfe&%Pj5;0m9fVyAG`iSLASr|b5M0uMy4)OjQ93h_w2dm(?gs`Q%q&CL5opI zm!2AV^*f#pSv?lb+aqUHm_R>(~GOMqG zWLvk`8zy63rt`oWX*mhY<$Jtvzd?E*A${XPpG+y|;~DQ*l9BoGT}>E9l|+XILx?xG zzP~zEbv#h)?3mXl<#xY&=O+vl2w(g+`Siv=J;HKXTHH+he%2~rc>bo(pykAxfgt8e zx4B3E9lwafmvEY}>SK?m3gvwUsh}d}R@n8K*ERj*nO(V~AdS8XjRSZAac~ruU#;4t zdS(wysEI%Eik-2c0HoD#vZ$(ma+_$@$g<@;#5ec|`BO?M5e?E#)apj4F?!t&2TzN1 znENBn@HRn@mUx$p;X@3^WTG_jTi2Q#LXl zHNm0%UZ2uxhk=U=)ALUpSAy>*xozRHJ*+n4W!y{79tp(Twtdy8o@=DlD?z}S%uLMQ zo22I_qm08_k%u$lTfM}Q%O2)pOX)1IrHiGWY$-1XReOE+BDwvL&#@~A>{*9sZBl)h zLt}Ri02k)5=ypzA*x-VQLHrkf(bD~?FLgdI$U9nOR-f->!_V|M)N_U=_r}HgYUxs zrc4r8j%0F~h&`x4ABKuyYO6~YW@iVx5)GcI=&K7_g&FjDm<)j^n>|=%D2O>rK8!k?>|XTg_IaB6(9Z zjM#8#8UgP5c&fTUKI2$LEG{xEdnO+1Q9cl0vtqelWXgsLY_@Uq0pM4lFc9aPTLS>Lo z!i><^=DP)N2Nzmg;j(CCNId#|H1#ALAuqOJy1RNL|jruU~)ti}_`u%Iu```aRvuG%@HgGBUc!tebxn5B~K&ws7BI^}rwTT5ZghI9e7v$jj|pq74!fZfOB901+4> zJMH!N3jZ#Gax&md9nR*7Sz)9%T!i7jm6_j~7gV!LqIv$5n{l2OP63qMe*t=-3Ght9 z$`K8+n0yTUxt zVZSf`JtMjaZVq;VEOH5Kkh4z5np7J6nBLqBNj&*B zQ--=cJ~ljDeBC-F6$o+iu|CozHRpMmCGrY8=3a+t|OmH~G2yFxKtAF3aw@35aV0`0}Kee6{NO zl>u3%C$uzcz8MEF$?Vxf@H2J_te*Q)QRNDDi=Zf^i%Mt}O9&XENe^b$xPK+ym+MBr z`32zb(-14%W`me8vsqneOPG&8?vKEzQ!rCi%jAE-o8j3Hfj4RF0uNYb2=b@4Y%Dnd zRj{>wG6twa9k!Ky;qzS7d+}p-W^3w0sv&E?ZsW(&Z738|l>K(tF$5ec>BS%f*SM zd#JlIvV+~tyF|}Z*=43RHt__5FusJ9~3t%q4WyVE|Hvrn8(p~vmi zUao=u_wHG|ZT3xnj=mq3qgBFh(j;a_)HM*X=8yVB{&qd%$`WO~Rj2ef$0||KS#lLi z0G@-dLqT{sCM&Z^0kAtoG%(W%4RpD_6WqsUME!A_*P#bankT4Lp3lr3n)w(eAIGqC z8WJm084imMy)1L-~4^&}i=a@}U_|$U9+1;O)KvP4DY4 zYEk@tl4Z!?T_)Ni8F9`ys3Cn~w_d#Qxl8=jGFO9*Mu@H^43aRF6=4xpAm4bWn(u+< z6@76TT4RUGPGQuiTeEqDWUA>nB2-3glviZ!l~E#!jpY(ed!k6dHv_o6#SRZnZYC7F zyj;Vji!Re86b4!zm1P}FyK|Hua-N#DZ_C>=EP*yWxgqwF)5dJ_?t=wP)PFl+I3V$8 z(5-wKwd+5Inx(#Wjo$(L>D|~LP$|G%J^EqL@iyJVM9PL?Pq0$kCTjRX*u=wr0U4r= zfKq|5_sw0n zWKFki@7DP7`AGk`Gxje;f8Tw2;`q^`)O@9}HQUC``ja@-ua;M6S4o9wFn=>|ek)cU zXm{J|MBaxl*U^gluSLO4>egv|$3G;0k8izt{7sHr)3gkgFoONMR;bF)AG8x095!NY z5!=#6Iw-+D?*LB;;oVB!$oG@=$}e_fIFOgi^ZW-fH{<5fwJ8~}_?6N<;rm9|r|h<} zwoW>)b{!aaw}+_FL%*PBl)+M1_lURPs<5efB;q%qPm>T}G`%1DFg|jxh(4nr*A*ii zkqTe_TcxV-ysZTl?`BRHGk0ZT^|PGKc>M2nBysJ}f0F*s^ODW^>3NkeD`#FZd0@iL za13+(l|M#riHeGalD-wiLul4&YtCj!MP;*m9?Mre=fGD zgrt$abnX9(G`5Fc?uw_C1t;t=&POeAL2Cz}e`dCheRHUR5s!FfDG8Iym3=jDA}NBH zcwN*(r&jqq{%#*%W3WEGr`b{7srISlo9$XjE&+JYs5y}{Wfz}f9HkoAOz9>vs$tLrQ^QMV7D zq$EV@__^OlK2%79IDnalIFwg}&z7UP4#Jie`nb4l#ddRB zK0MA|s~c{tV%dsEfjfp>eYtEMv>;EiVZ@;M3`%U~oXF;bXvQvaQs{8CNnhzlSoQFO)^$fRR z`Ys?uGvNKZqYSI(q6wr-5FTAEg66ujLJafr_59xo2R7k~&(*s}=x#)eAL zb&`lJ$AA0tew=2+Q2NTr%9J|a#X1#{GcPrmu0tQE^Fee$cc9YZ4opFxA6F#0Xf);Z zO1$^33y-!SzCW7IC+}jo7j#}IpTYCvV)Nuf<+43AuLAapC~xrPzZPl z{hQ-1g#a&4UVdAP>Gr2?nCbJPS8&bCy7%ES#r&B4$q4`7r&q9dNZe)0##LR$&P>Hu zO~iqWAm>}dFPo4f60f>{1J_6>^tmbi<8<}_Hy z{tmy%_nQM{iP&GWRrYSm^-ssmckJ;2rBq>;{>28nJkZ4;SLL0b{v)sc&bWeihOr8g zUuiY8dgIH_Uhx@MnVn_xaJp)|7C=Q5&N|twsPue7$fo93YMR%Yg3guwQeE0)M@DNe zeJY95RZl+ReDuBpH9Yp-j+Cn%AM5=>(=hj@;a*O5q6x1~g7DjyN{4!$iwha5MaxC^ zIzsmpXD*ICVWRHO`P`U`_)jHD;CEl@ykz<)>F-+bm54!O&y+-C=Lip8NQtngOXj6y zpL_iFvae^f(8648=FMO5lf$P!Q@LXX`Hf>gKfCkUnvUXOCtO@zFi()cO-u21-FFv@ zJzC93CNvOBqXc}R_k72M%sS~!j-oL*O(sf8IjJ+lnrj?^gz=rfr{A);Vch0xaNhX# zC4R9$K9X(Vr7cJHtQ)mp8tL1I{L2*7#uQG<<9kbC4yjRyTyW{&2d+CmD1fc|L9CXx z=2r0hH4NBt6iKweuox$d&~up?uisV9E)q5H&bi8K(a89V-@y^_{NE);t_zEyLJCq? ztHd8bc(wF8_YgOGl_Ay}EdX(+{v!Yf00C7u06Ybd((XCXm3>n??q<4~W0m@UwFF6_ z=Mo*aj_<1k-$Ta zigAk>8?z^2UdK)>ojTdEw^Wx+iM)NK&it~vAsZ3J=P)ce7b|y9mPbJdnq@b025D22 zpG3T{z_cKzm1!L$qGdSW1g}uz&`!|pjbmsZ(_6$8mu~wvj4rf~lbe#=)+Wr~j{Sb# zAEAFo)s)Sfmcx^5V zWkVF6VSEbufpRNPKBrC0646^?PP}=EuNdH*IoAN(T^@_rWN^ojKmG^%PeuKw-ypO9 z7K7T|nz!C6hX@}yZxc2J!g+f zU_Ptx@J0SRTls;IMuD8JtNv(9(A6X(H^i3es zU~U;89}y2ZoZ8&7xP7l}eTpp~@O`x!Mqf2KlLxpU6Nvu*BoA4u;K3EAj=G;!vxCA1 zgBL7Uxox9kM<*QfU+gPw{Ji?~Btj?C4ZEN_7J&J~FZe-Z#=r(GaA72o-pJcNUi-hX zvWu4cD>f1Yrs3(8b@QxquUiBB;ckG4vKG^=H^w~UjUHL1k^_t^O6|k7!;jrQO2>Ec zIhJ=B&G)$bRcI4zhYs{HDCFl|;_YQTl9%mt!uV?Z-dL9KInD;}9)0Ts-1LAw>SV3; zHTy$1&B}QzkuK&IC=&?2Z6qNxvx;J(1kvcW4a%Au+s5WpXo3&PaTNQEy5V;MjHF0a zpAG}>HMwpYmi)&R)%f4pQSle-3yK4G70ruQ>`M?$xz3@7l^6@yy$d@!69JuPaxGFs z1<%{*+ngrx%dZoe-5&d@S_t`l{YPKt?)FIruFUh^bEw8&U?bfTG6avtR0%>^hA zjlMR=oei~Uo!EIRW%rNnChA5kEq=n%L_0zZf87tin}_5oaa*@_umuBx%~fdFV#|#x z165rL#>_Eu`-9{mVtnkK1je`h;}3gCk_CeVLy*o8q;Yd(Ihz!S+OIbVQgVJobC|fl(AYj00>lXMh<) z(*DS3wM^qSulF8|<%0iUVY>#(u=K;sr6L)uF#J&e6ERg$y#f@76xTVO$M%6ME=+Z7 zK98=dz1bVK_dkx#I;_dJ4a3`HQc8ysf|R5nNJx!NX-O$T1WD;;13?5SNkvMeQM$t+ zl1hhkcML{vF!p}?egE+<930R4JokNG=fy5d_UWNd3}CwWuw$tng;F{T-NWkIwbgw6 zWX9h5ik^;NkADU!Ua5Mvw)^|HK}(STmk5ZR%? zjq(xX1EP8C=KC)i-k)g77+HLT=Z~+vkOdxGP_*5yOFV%cpO>#Hzu&UUq2SB|0SZ$A zfk$nSH=a%gx5IH}Rb*IJfE7ot_H{vaNcx3p__B))9hCRm2w;mx5WT-~9R1^^Esz!r2o?f60j9Bo9kFs=w^ZG{_dB5;{wnXi65`x1v-Wgs<)+TEcS#U*ck zgr22%ZvWzwd%1lPkEpC2)hYV?H^U__N_FujMws9TK2Tzy>IYJWiq?>n@OsRl6@n0{ zqwLW8r?3tn*~?nnwrbEwW}oGAdI$^l?j{7sncofY^ic}^8#*tG=6Io(v2Mcww~m;I!gmCRU-{3EwC%Ua?5NK)zBFP@8KIs#u%_7=`W zAAqBFp)MZvVARvpDjUuE_dzo?)hXHr%iZLOJ=iq|+6nxn5nF-+l`x<6y4;jiJO^*Y zH>N+HrKB<)us4e-@H3Sz+;0j8#`pP<%#XsRF$-3?ox$(+S#M`3hPIjE zjy-Lyti{TG&E%Gzb>Q@4v4@Eps$6)=@PsjXk$zQ=P35>jm`KVBVM6hz#@4S3L;XI; zp-MQiv~5v#Jo8G zZ;QpE8F4IUD}L}?HtZdpN!w$z-PgNUKa>>gS+YCB%ckP1`TAB&*RwU#yypRim5^uTO`n-Xw$tSgP|HeM zN3tA?+zK192W(TEbH%nVW+g?v)8Q*83?34l@sfTo&ZuQpnyHa#*mrGlhNMXjxe`*# zTxl8&Ab4aAM?@VpVk0p&$KWdoVeHxXb1hY3Jp%Y?0Ufw-ct}_w)BgoI zSEX}mUduh@!bMZ8PO42yi;%M`CC(X{V&R{uZ{i+#uf#cHAdcTJell6h`mm-|i zrC2e;w?3=|U+VF?KLYr{k-*6EJ?eS(1HvNm#qk=!Wmf{H#pV*>??Ig~(gd^zz)Wfr z&?>_=&W!m+%%LkGM5O5BZ>s$Pn0bZrI)*#$%Z(pgykJdYz7ajh{X4pV?-*ZWPQimS z#pfDc(m`9)%S21`{|VNAsJx;5j1zV%^}U&b0m%0jo;WAvc}pg*2=V(KYpHwN&4X^m z9yG_dwwkXcY;7!kEVtI#VMj_+q#S)7EZ7Yc4;cwsPgalnP_m5e-c1YnhcOUO@*>)8 zG;!2!l==pX*(F<)F%N;hIoZ45Isi{t^xW9TI(+jxU`kCgByN(MC%}oy`;2vR?X7 z`~dsO9PILk&4<5-z~b8XgM8+DTiE^Rq5Sg149O&=i=}=@W`N+0Hj5^nVP|o8pkY2@ z7+ON!5js0+>jBoLD6lP#7ukk^;h}c?O$ES9`0ak!{pF7I6aH{hlf(T#Sz^yE*|Yry z6A$U;Btc7(ACVcLR*A2r>0Q>okp)-xOa@rL)l3utjImU(D%mJhSueB?* z>Uy4^C;qi^xxj%TqXI2h2=Cty*E=KpS&cy$fS`i8Ic@EZU+RI_{5Y;vtE*)K;0;e{ zcj|QUAF$!)iNO1=^Wt|NGV5tntsC(4X}o#AP301bKWf!Wxdx7y6`b0vYh&$n{?Z&X zW}|ymUd6$!cON&kyN+}Qm#{d!3ePUgs=a>fqwi1b1=ziep2s@#)W;FIXS{WtnJ=OG zCcyqA&@M$8Y*#h%B$Sq(xcxP&vt0{E-xNj*x8|y6x*|LQjpZH+kJiM%_A{E%+X!H7 z#D@-ogl}HzEx{dSgAs5Q-ar8Z{jSV{>p4kxua9fy<6p*PQi`li&|eZCQbCpx86 z9g05{>1+}H`uiGAZqo@^xTP2Qa%I}jJqf;HRIvT?7nk?U>5@vdFaH(uBWP@cPveP4 z(D^>3`r2Tu+MQge2Du#v5mCN0`DqasPMwWNYPHT(ny|X=?geJaO7-ln=6ViBTif}_ zTv=XFlDFf(W52^)uYPdtxj>A{T=Z+sVi7OT87=7m@nBrti!gB8o;-uUd6&#hA; zxS8qVI0Pw<(iQtbZH$hB2!BVS%=?jB^{=nhgpysdK%?htIQ#i0Vdd*Ka98H;zSOb2 zab!w%TaAYbGAU% znL4f<{mgXpW}Orzojps0>N{8z7DnxNz2;1!>M zC_UtZ3^)B-;g=7?Tn*cwIGig!GY!^O6 zNJ6qm3`yCidx0MW*cf2j0GPhr0K}D1I7+TB$8g^;IiU-%HQN^&d~2O`K+fazmW9Dd zBRU1ng0Et7J3rGvWsvtqx?IPXYiV8dr-g5%nCr>Aa{P!Ax46DhnXWyreV`ZP6+FKk ziEgWHrBck1D#XDKG}~zvddd0-dlP0bH_jAcYbL1R8v|&T<-ilxMrKyl&p{{SOjlgE zrPj;cu3fHm59N+m%KL&*AWwN5WkYc$F`+pJS=T0)22y&hS1`pgnc@Sx?IzwZJo(wT zlPN_EmCGLiIgFvptelcHo@=I}b37$HGQ?YJigHw~s0v9YCB(~^UVL3eD4UQ_0m4TQ z`h-o_NpUVNp&MA|?jWUyAw?<7iP!kUkko)jLIgPzGAUG)oW=ixy5iL>F(e~fY-H{_ zG9E%EtxL@PM1L0uQlBQK^}*m7*@)4+3M2vRi>bJG|kDLL9rf%^kE8Cyl_l!tm@^_T)W2pB5VLM>7iNe@Hg`a< zVHMo?;x8qYlNx5M?;5jZkvCCKe%t)w@nol7yal5$H05&@FLt1Cjqh3KF97@Y*JT&<7yU*rymm+l@zlbPH&&rJfg?2lIyQQNlNTrGJ-eoBb3hr!< z)pRv%584-iT6$~=Usl=Mb@CPn05m72<6iTz6T_VV42y*a8|x3%=cehk(qwfPudk2- z_hi=KO89qxM{uc-1;l}#OF~dbYiLfXqq>n*>?yYby${ppkz2^y0McY@Q6M&AH;s2i zcxt?QF+|v~Yd>fH$RO!?X-7s$i{M;d*(r?8=6#5C9Xe>N36 zN1}#Wh$x!2+_5b?Q1IFz+bG+?8LW5JKJ`6Fh4z<`f&P5TGm`I4;J@TU8JzE_#v|(` zfSzK;+!rc_$w0sDR}o-wdXoK3rynIzLgPJ>bTs@QFr^w@78mMr^#{Vcg7gpnczgeO zeR3OnBrwqC(!RE-am>QpTmMh}#IYBSw^W5TcC5OV(SGvo)>2=aeO;*W99lrr@f>7z zza$z_DF@sVLI8NoQan_XF*WEXouV#2Px8|^zFn|Wud1?UPyd$QhO%Lp`-GzGb+jM1 z^rX<--RiA@rF?~`{B|7tvi4&ia;oD;zGfoeIdFK44Ye+uOehNe$2De0!rNzAEvI&f z5%AC~9%?PIDTsa$s>}y|Q%-Q2$pcV9{ zENyvkTl9a_-(zj6uOCAsTqoBos*keJ@Zgr@4)s0I*wTrbIk<=cRO=CG0UG&*?1qoZ zXF|1=^wS}E5FHFKta!z?%Q<_Ad_D2sR_OPY-C3lmz}fyLj`@70(UfLiraGkySRh$_ z2K1aCS(4B(zK`{oDRuqFANh1SOBA>GxOz8=;-fXX!3KiycAIK58pJ*$v9vCDFt;Q0 z-4||Y+s=ZP+4x<9c@XvYyc*|^0FKhwv=DP1!GyCbgW#>yEXbwq%^%3+6Y?Nx$`8TCDP+|{nK&iAA(Z-#X{0bl6kJd`nv4A&ra}(z7 z^O4m-<&OaO(yjC|U^B-*nEVbp@y;%07;nQ=KcI}Flb`3#v&v$07t`jZedPiEkir&J zncg3K*r6OV3?ZP|Yz0(QhpX!`ItQF?i4qbVXT<+W0DG1O;vYoc7CxFo;&4Xn4KIc_ZZIckenyIvdXFONhDkzwFV6*RtjCTW#^Of^5O zo|AF-!W*1_FkxZEOKv?m97-~L`p7=~w|#l~&-S6w>03u6H4WL}a-mw<4&7rPR^s)W zPr8wNo6Pr`_T)q(XwSZ`FC8s8z&e4Z8-2NE?52?sfTuz&0sw#2lMnFI4_hRdF5z3> zD&?;tnTYtgEze6=m8@k>>FmqU6je0* zxQPq&3T&k%JCQklKa;}mTT*;XS`K~slaYi$DvmYjIp{TB`#k3%{*(bUG@#WjhxPv< z@6ef>AkYChSqes{gMr?=bCn^dg5;w-wd}v)X6!RsO@E1oxAiO4K>m3|PK`8meTOH= zw@VAnSILY{EHOX^RDD7}Jhu~WMlBMOe$9-k-NV@2^3H0U`RJn02~H!=T3(=6|6!<6 z3#toxarHp5d5jUQ>HS^tLi_zFhpkSqj>Fo{m;6_^a9iSybFHiC7?yupHnz3Tz`cKV zJBXOH7Eh;sn!DzT^RN+HN^&c7!gHbTrbn$s`f?xQz57U%K4m?Id88AS#6$YAz3|l8 z;yu)wAwVx?`Ng8mp*eJS_?|T4=a9s?IwKmYT?r1pfuj*_| z$gJI4Z0)lnP3$)s1@m^ju=?7T0jS3GT{9-WQvw^(n-X@eJf3VPq~fhe?efs*`PZ~i zeg-aeCo}ei)jz{^WoGvkxDkTObtIxsT-T}|nIUq1?qo|YickX9-ti=CrMxftthPAk zo*IMGTEjevyatQWK;ANP;O@B#p_mUcK|(Sext_sT_c*_`fzJzV#*5Ul-<*HHB>rvV zfu3v6Uh{4M{?GUL7IrlJ>c`2=X$Aq?Ppmk}KNGm>8e9gIg6$;P-$GT}1mI{+`3P2l z#GGxJqG6^WJaYNpoeB^>x+SP5T8!?C02gI@W7XdhPsZ!kjtyI8zB1~5AiD4 zC9|*qW$8|;ftep@1_qP^9_64%68PyM@~XHN?w8W4;RW)3s-E|eOEkyN648Q-kQ{85 zn&Dn$RoU0???I0VWPCM@FlP4RnC$F*G5+s2H&AIR(Al$$rW!%XQWB2{@uu_XD}-jr z=D3u|xFc`3T@QJ{RNmg1K{h7S9+wv_%gcUv71qw0$5sjt-Vf@4yW5%a{>xxU$=vgnklNUBg20 zOvh=HzY~N`Hne1kQlhi%mi2=4rVxEJ_u27R{~b$5J%>$a={DF68!hgROWs+wTN`BY zDa&@P7)lRkswPhpSrb>F8_)}x5}yLaR4G_-N+DQFZ%I1anC+2p2|Iy*N(kXk9x0V4 zvRMc5S$`>z7ZA*zTZfl3nEQ$X1;bq*eV-KSy&NUOZ%rrT9kFWB-|LAmyX*W99}n7O z|AG6w;`z%5?QG}GtCPJC=Xt^8X%M7AA+6muUK3Pn!(`?%SDF)F0g*U@o%8atufX1o zefnreB>fV(7WRk{crZ-tDZ0<|kE$X8J0f zfdr}$^gv-dTS1Mc>jPnKWGjF2F^`hZJDk~w-1ne-AuK?k%v;jmcl=j-2>C+SHPL%C zc`fo4J#!+I(U=>wJY9DaP@C9sR1KRSBLljvz)Z7^5=5hk48A)E;2@U`7@l8RH{h4YU66ZB4nQy zG%oqENedTkM&Rt9DK7XK2as@r-s;T12LhN>Ebd`Z#l5QM5V*}DFFQBz;CFBC(i-G- zvusGxhAsGdviF`8;VRVuC=6*7`~m`8mtn*Cb!?UwgogcAIx6W^(_qpANt2aUb73P_c&G?`8O%yp?Da~x%hZ@XAL+%y4_lwSFg0p z)I+;bli&3wpR?aX^mxjk;{~iYui~=q08*@`9C1Mbp414PrBP@MrtB;&!?v!C{%h$F z0>0tcaEY7>f+9~66rOMccYJ$R=#nfKxR9EcAv}J*G7EEu*0RI^K)7TDucJ)6X{%X? z+c#`rk8Y7v-Npt32ZV}Klk+7eMJksj)%lORsZUTDC-9j63?p$MVtgx}__&ub{1>nW zm2_LV+t{Hk(QMO~%X%ArH&>XGRkHt(B81e76>zu`p~6f(ecAW8ynIFQ1UO>-$btqu z9Zln%yW1q`iY^SLM|Vy7JpA5dw4eE8iQs8J3omx|GL zB!#e3f0XKBpZqCsjM(u7s387MmyF2m?!GB#~*Wo_+rC{uED%Kyx znu@FB!99Ok5%lvfK`ilAy?*PISLCj|hvO?AQ?NYa@ zOUSWl6ACqJkw0EM&v;pt%{!76vM`j(p|lGP_I#xNJ1A%9$|;82(DODsQOJF#iG)v5 z9HY0lnN95CzxRni=EXuxNHkK+h3Mb}!yCBvza0AnV^F$duhQGXj%5)BD$-%>s5-(| z+l8zE2Tu>3{W_H!MvfUj*1)h4^GqheX8UepX)$aXQt>MBe@7fU8Xe3OO0ELD?dPlp zwWnQHs4hP0vvH6du(ppR#DfBY^mqyK96N@42*PYy)F<8ovds zEdy%W)05hUP${RplT6x24~=PevhE3#TXb-y!Y#SONP!plP;)L7su~;5^x@Vp39~dmXgS(op08DR0jCo<5f$9Th4iB)kh+ zNVx6*gwuoyONpQI3b&u0>T?&5@40s0DBSWLBpSR~b~XVaQGbiy+ACN@bXcMpU zJ$A?&=a1;aDfSKf4nhK)oP58M?#iM3)p*SjHTz++5W@2e4a@?It3VyZwF}TpUs?xp zP{DL)RrDe?172Whv0BrbRQ$!^UCG~t@Y<(VI{p%>C9&jBbMF!21swn(V@)})i#X)S zp9nSi78oXHF9626uz0?bpekjoGPuRkb;4HO-uHN}-az3M-&3cgyF%k4e?=^o2!B&P z_S6(U!s%=J33G+KTG@jE!@#K?O#AjcJzpsKnScnqJG^m@Ad74fL|=$%xdJ@)YcT_o zu7`G&$0vjL8ax8n&GO$_G&W}MPaZZ0bx-r6VAjPWI>$@hJz2n2tAPG~;$YvQ{yZ&2 zC?+y`4(x^Q_~Z8RSI@bthonzQBpCz~=7HP_r~K z21toVxM79+c77NeD7+?nN|VQ!+eG+{Wm!l8!V*OYm&mrZvhB8xC7sxNgZ3ZL!@~E- z*EeD)p}bh&q=wHLWm|adT0#WCLV@hexRHld0Y@*9+k|2j#~tkMCv0vec4r+>J^400 z%2fFplJVkUjolHj5wi7}Dv)MPSmJ4M81A+o)u(@=<1dUSxo2-5Z0 zoUGOe!?Basb!XtaZomD5*`@j47Kb$`Pihfg23O|gLvBQHI0Tae_#d$W(F$Q0fS%+~ z3Q5O<8`^RD9WC+XzaV4Nmp{X97WYjhLs~z~W<+KhGkIWSJ;VqnZOzf$;mLEi^0(4h zk0YBI43W-j=3oyFTb_{QwQH?-hj-UO_;PZj7`@R0fFmmX7!G$GV>feAZ5swrgd67Qn%vr!DB?jO4=7_{rQ;OU#r&0hOR|`x) zYTWge?p@r%QKE0*h;?sRtT7Z-h%hk?1cqIGHO&o;Kpzn#JB_Po-YO!zwh*Wup^CXG z&o=E~bb0?`M(0I%0kBm_cy>7Q5y=Oh>#j0lVf^~GfsFw&O|#>p)>a^4qB?$qkuo;9 zB@?d$0jq7aXo-x6J=^db{dXb$e<(yt5vwq(=eDVn9y3f4=I<<~bL99FJh2(bp@4J+ zQ)zOi7=p@qU-vFAJ5}ACjeBVkp%38e68%$Hvr&K+qJh8Gu+HNE#F_G}6*>Vaj*EW; zmT~|dvuh4M(}sCzcZ6AD35Rllz~ScvmkM)>wdt^eA9U(vIq~`EQvqY$hYTf(XU#+! z%0$w&c8U>8DpD@Te@k|B=|l{!Gpi+qzCZba>Z|l`{HL(-&Ml)v3sJ$KAs4|znrrM_ z@7*0+^u{-*Wy!)Eux}+p)H7cO``?Zb^I2j&@_wFnarh@K7nl%!dLd`mm8*m!&R3*eP4~G3y#*H+p zk|e;>;gkQ>bR^ETO&UI9 z@|B7uuyeo9W63W|>>rt8a2VsZ{k}=Poau?|IfdGB4a0E;F*`D9t`6Y87vKOS5l7>$ zAw}PN{qdsig9gji^P%1pvtELS?Ugw(QUx5S{|0ADeg|N)0WWQy2(*B9v?Lk6laL9A zT?bklGvc^IykNtHb+A&oa-8KS4=OpwAN5+aq=Q9{cwhP?iw@(qs?FmdxyUaHHLFie zR*^$hFN|#Smt^SGlM&K~qp$EWv6Y@uj+;7+0c4uzmR75Ut1H1o6D`>`_w{(&-vbOW zqE!S4eYMD$C`V3T^^$G$Sn0{l>}BaYw_ov@u@{@XEmTE|C}~K(hpV+22bybCeCPZCt;|o&YxlEp>v7r;OYGfqP z@#+gezBn$#@tzAD1sq);YNNxt_SBy&hispd;WUq-SMrO&T?5F7&<_x1hZ9|`M8^pl z&SzRxszI>9k7?dRF4;O;YZ?c}9jhxwH{?eD&id&hyy={zN>cA%m9}KT|DG3YC)K#9 z4typ#ey{I(%Q&&XP|0a26nV{`N5RdC(@XmpniG`&q$y7M8f;^Q^KT8ljvciX(#$0X zJB)to{~`@Z0L*xa!n|@Yk76S_;QxO0I^Va^@^sNUqNeJ~z%dY_|Yni8jDiDKFXSjwK zuLLULbslOT5Bna$DApb#pOGVk;z7b{gDT~L^4sa1^)1nl zuv;O8kxN%d3o@1raJLpd4L~*%lLC4@sCZA6uAQKOAkw6NO+G2W;6ak9a-RoJftwE| zyKa6c($O9|?Q}%C!+>0gTdZ&1z13oC078 zRzRpqmrY|q(0whl_BkK#OIr`>pFH1Y*OzWYj@txPU=BavZY#=5QR4reBFq%-cSLC9 zBm9V*6h7Un@V6)=m`&96iQq~`zSF;bR}7Xjc-i?%MR8pKW}tHE$0YC`dqG&UD`O6W z!6H0C=O2SPP{mO8EyqU0JE{+q{2gq#=!17zFThK>%HSt0&iN)}aBdtwOV+EI(hLpJ zb?s&_6RmI?`7$oCl0HdVqgPPQ%cN{Oga%(uMq;_ZS{xM3cl;>fX<3?`CMpGrBfAUx z=-{PXXdoYES7FaZcFV}VkoQwxt_#0=0XL8a+&FyAD>$m?nJaZe2AKuuJpQ=XEt8N zs)Gwl zZ(mwm^TO5CK-(v=!05w(WNXsp_J{0G`-GlU5P2zqOZfzk^l-Z$8*Nm@!$(;ffPl(J zSaN@^E?tr(3x$-EHTm^bwm;FSxCb&)1dGp=!$~Vwo>#cG074vc>tq(NaFtSojkal@kkwpkq&?mKPcx z-y~pb)Sg6FC`bnPIxH2ZS(UYu3ANqFe?r5*r6-!K>rrB5;-ZZ>?m6jZQN43yaFVh2 z<@TpLw`lw1P;s-5xt^?~d)j0xSFKt)KhHu~8p-(gy!_&)(V$`-+p}1{q2W4*4{#OwUdSJ(byHQ;v7~Jy?^7Fz_!M9K;{+8qd|yN&KGwW zsZ=&#&ZZ+XzI_*ibdWDh1zGqhbXOboq)ZY|DSAFe7Szy&E6b;Ur`c>o!17N&VP>6kYT)crLu7FCA5`xB0?iz*t56^Nd|s>_o8uX1MPVgR}~t%*u%17l&Mx zWtdB?8}y_AkKLRF;}yn6YlI{v+Wc)hK8elUJn&i{yZQk|$GkpFktF~G_I87aH<$C9 zre<&wtUI1hJo}&?np%+z2VMpZM(z52$XUEXZ^e6X@5wGZX5l<{m1Ra)vGjsnB-N@5 zj$NQd57{FT3>?2G!wIkraNlcwpwwSyvl&yn1hn_wNMCEgu$kW?7?r9Hy+)AVC5P(X zb}T~vk%8JZj$mWr25C)DqFe&AL|9TofSH^p`%i^ehc)*MMQltBwZBE!^jAI`&?L8!1-(u+OR@QFQIR|?U|phg^sd`|5PS0T z6&_9`t%u)gI9z;2&Q%JRJej(WyZDK~!6sS5j`oIum-DzUr!doW)Sh2O2Nw4-3pKe% zAkLq_Bd(QEp)Kq1!fAhV-NZuA>w%|?Qt7knhdo2Gta;u=va+M>^o*nYe!H_T$BSsZ zfX1H=KZucG$-AtRe5X&Z>Xwlrv6F{%sd9qG@*cn3@lP|I(iCLcIg4|~Sle>POr9_B zckESKo=q2rf3RN`!zDW61tSb7;%=#dBRFkkDOP|s@uq?IkJhjH<|^$X8E}a#GDEU; zpq~0<5!s(wITjtJ?Olpx!g!mTqh5u&2_t2kS-|IOz=fXo6D8(1c_CHDrdAMlTx-uS zweE#g15O|}^1Q(K(%`EiMmB!cS*BnGUOv1eRt~&=lc#X~I8Wy5~iI&9^uL$^1* zerwmdBH|qh4N%+Mg(bgqz8^%-ILlC#+ZGLY!^fp)iGeeN+D!8BcV3lV`v)DS*}KKT z6;lRzWN-M&FDw^Yt95>?yUpxs=_nhs6{W$fz1^D5RG3+J4ei2YHqtTpo0(8N=b6Q|M1sW0<^G8G8g20w9e>d6 z!dc(dQ^>7eGgrR6j-@cR7x5gB%Hi`FKbRkdoeSev$))*l9z$? zF8#%j zwxR=WpsbA%)_uhj66-R;0^LuqPoDHhr?HP-HMU1!92f_v zJY(O9OY@$>2tzV4cy z@_j+|HAZMghu2IBg*1-_y;gkS=G-SAT=F zZul!DZ5ESb7I6-V{ECbs_wK8Qw+Q~V2b z-q2$N$|qV_k9ACL-Q0I$WMA|C1t-Qm5uJUIYaedzIYh&^gih;JJba6?4-*DFQh@jx z_qXPMF>|d1Xh1*wrpbpBYT^S7TT%%P`y;NMJTlB`^Hl*|e5G}s6Z-@6$J`x+3{ljy z<5yV}DE>yDoke6~FQgt}#XieQrk|+r|M}L^kxkVwy>#c%>g1IP;pOyf8Mtz9V<2~E z8}*AF#Dkn}<8K_lhc_LFYFP0Ty)V!01&?J0aIQBp>5;Ows`|1aA;5JMDS(}uuJh=1 zeQNqQ`WfT?Y<~ZbQF4k^Rhm2n*h2WDhe=c-`x#*0m)q9Rrq`HDfdkR?^WrN#d&X$)rhb6&R&XFAq;Crj_tXzmFH29xV5GkmMX zs_5D>hj$1`ETaa29?p-LJiea6zO5l?N*(jJ5L$>_5`ncV@ina??d%sXR85d?{hf`Zz^A+VGBZ8lbZt$ZsRP}1z+36wHoV?{1 z5H91}c+@9{@^76++z3{6ay37t0>!FU_UwogMo}Y*r{%#P7)UT_nx##p@u;;NTq6dC z0+@0&e7k(EFr8>l`nemH;}q;z|88-*5S4F43 zH)ElegFfnWihiUe_opowtC`WRDd_r}f21S0;cw3tQzZI5Cgt<(Xf{12t}JQ9#7yHn8qZc{!Jyd~JcV|<2U15K#!o~7ra9N( zKa6e+ons~iD>xNgQ#-t)7rR*0WRw~b#+fz@`))J2axVv}95-?!Qh?WdpDrM?YHyyC zY-ekcsJ!J|gjyw&fGK~vhycGfZnE_F+O#hW(u)1AouR_>olI@Wl5gJ68-TRJYW=~R z&9h2(n-|}KMvrl(Gf7GixT`8R_w18Ld?Beo%Cw#={P>(NLhY=knE8Ug>4eX8E6|7c zCD(AY1R3w7UR=^Af^1)?5r3&JkJAVJ+`>g7n&Q^BvB-p}u*8Jddu;op{U^USUs#;_^P>B z^Xc(KoXE?Qcb%D^WuN&f#_wh`&;2gNNK_HN2Va0-k`fD$?%KrH-hM)^bf$FfNav}Z z@2~U~Bph-Snz(B9wu4a9H?|?r!IeDW%ROKdx(_yg>lL*C2IrV5+}a$zSd6LV)s;CC zFn@P*vsba=o~^EwzKxVnR4S2%A5|u`JApakG;3`xnj_J_&xy+*w^XT?ac_qL(J>oM zn@l=lRt_eVsV&capNwq4+k}%|MQ5PljW6-bA^$QN9KUP1dUdQfw z?q?42`B$u0`c{+^9tjtI-oosjGFJ5k&R}AAB1Cid&^MeUUx6UB_|IBE04$#_!$D#B zh=+_gU@y@+7UA{7eE8@xmw2qZo6KZL&fEaE|W=@<(u;GhzJRIDz0)D~$Uzy+!GdVtErBuZ-xYAdGI}f7}qQH*oDvw;v z<#vd|CaUK1!g#Qi^fH@3isf>Sx8jd#WsA_gb165{DhM!+P?%pKaFpa|;CFE@p}Yjk zDXlU7Jo-=AY7gVjW5JvF{4XkUqYJtzZHU^pK-ulkS<1y% zuGwEi)jxXnV5Veh-p5Wch9FIfTt6YMk=r4?HZFaZ1^ay(6CZ)bFjG9WCo?;-{IkUh zv{Rw!cVhs`_2>@ZpxfKCQ(>q>?=+AH?ze+ioM zoq#$P&?wNp5RLdoq|ixM30v&G@<6&xhs)R{BOF5OD++*nX7|dFlQQ< zHMCB6Qd4N_rx!^{{YOn)v$ffL?E2C}38%}N;6KHLpT_->!yb3u4cK>cP%$ZLlk>5f z?*#lU8f2HkS4v*yRgU-4Wp^wnyVA z9}(<}N`~Jy$s=n}x)G+yUx&HP_)6H>3+~;qkOmo>I`)pQi&K%!_2^C-Lt=*Tn(u3YRblIw$S zlUiffyA}L!G1I&1Ed~vpftzq+>e7ggkLScS)t*lu>$+&Q&Fpi3wo@S`>-{4t>=?6a#Gxx&_pU2vt;a?(6XTBd#77>?etK<18O-Y=1 zQ+3)k_QD&A|KRk*P;-7+tnsGLZd8`h7-&8Nxkot3;ZroFhjbC`PuoIcHC;E~t@XFY8-goohVj;k-OV|YQ zUp30}wLe1K{m*-FuIXHs=JV-RMMZCt6HRc#?^jwEU+a9hDM&?vuH^qYK5v6K3{2>P z(JDT}2yjWeY_7<5M?tBt)LJwC@TfuYG=Z0%s7_IzrT8Y5yPE5VfdRI{#n*k&Y(Xmm z!^v9$Ta5ePNMdEAmLG6vOu-1M0jZTZ+`lq;lZI)k(!wC$+~ITO6Ft4`c^&PA@_yma zRwEMhz!E0^$!oo!ujzHA{iwU3FE4%h=JpNA_yE0X&TmPDzesVd>u{wBoh#mdw>xO@ zjb7}?S~!UtGl%0Qew2^y+}fJ??i_Dvm3Z{pJ56oCMi*mr<6#64aL;&eGVm67^>{hc zh2u*o@S}KvqSGpL9X0-Evzv~ON&`wpPKUw%w}1)@!JN)52BR6Y5CI&nQM}Tt6q=2n zlL;w`7YzdOp@oCOpjM`zKdAb!Y?6@t^l)rqRpDgPe@25gS2Xa?KZ^|Kxbs8!xdF+i ze1&X4W|kbthH4GkO^rzr=%Q$4=iDDHQ(1N+MP&iyB>!T?BUeARU2uDIzvrFvpZa4m zQgQe9L%cs2cJ#naXk-=UluM^b;>BS_>6-YqK{(^++Zv4e>mZI6->WaVgAa@iFD6tVd^n4G6d8#d8V;x!BKKa;{jG@gpmDk) z-eX%}QE%|}$-PU+i1sg0W6iVrL`HVfgl?+R-8B^(Lu1J}Wif znLCd<){LsS8wxQ<^4sr83lPjoWGVP~LvxoiU}}g_h+HEQ-jb7v^kUJfzD2H&5@&XQ z;?MT*-$2CeO5Cs7DUa(9?+LHhR1g7MJxDCCtYDJ-0&3PGC&1_Sgz~N~NV8i)qh%V< z`YHFyg(h$_Rm;V;HtaSTaq?Sh<4ncH&P9Q%`5jSSqW6{m(zF&SF?4=R1OB3LzT87Y zg&n+ZLmu#qHXR4ERzm;;mg4fbR_`s&lRKgB+?bpSY8y_owPvt9X=o*6(&Iz<|l6p%(@01-qGc<4?6 z=`M*GK)OLfx>LGy=#cJ`?vfH5V3_mqe*fW|z1Lp%y07&ijXmy_m4jf63M+#pR*pgw ze~+N~IF~88Z-tRo;gOVfLTcUEEgAYgR`Egxh4>CQojE^KA>SZcPQ1du9R{qygVB5t z!?#;a7t!YnEZW(!!4`rsHQa+o@!Uk%x?MB91k$pa4C~w&?lrZ z)RF2=eB$?kb;P{w1Z^hb(@>_JuIkbNa1V_^)Ru{3>Ms*woJr6G5*vbGhzHy}nyKI|4)Qyx-&(tAbXhpomiYX!p zPh!rE9*JgYSH6#Vi^CEdsi;rj^1S6oo5OE+w_R?3Lx$z7rMRUpqG!U zERQjXF9e)`3br!(v94z2wq&kz%pT|5zp}RW$C|>U;{V&1@sWvkQOs?U@7mJc_t#)Ya^0>5bN)3R=^Gv!Mb=+zrFN~@)A)jrN(n+#ggptkMLwOaUlA;XbU5nmj zI;C}s*YpLnV*b)3mtj@%OI%P)v`J&HZIXD!8s+BjPUh*wT7Z9{C{HYVkFRxr7Zs1B zGs0s@HZB2cvbxUYspf?ZQx!AtKeSJbzGL{v10VjASB@W1OBg`uTV4zXM7m07z;rmy z$7py(E!Iid)S9WDoH~!b(ha_UU%p$g_Dhuf!nf}J>eKR9-eo$~>0@|8I4?s`;{ewo zOe+eb{;`(_jwE4tqJ;imugv5<_>u$j_iZ#gZyB5$IY_s&Q}wYR- zw^KTeq`V;`%qS5TayQR&D|&uBoihgP56)Y>@3$mxK5v&m#3!qLnZEZWJ$toqg;*Or zA(d>Qom8|*-}q{uyeKx`;2T4BVk>xArB9Z-TdQU;va$ZK{#SomX!H~n;FcE@8a2R} z7k&5uuqO()`Y{aKE&s-k=p6ng)>=%zer6z38R%Jei@ix5|V2XYW`mi#bmu%K;Uka zsUj~~7rpIMo%t8!Tr&!c&qo(8sN+mxP0bjsz7M~6!;A4WE*rHo(RJdpQ0_i&e|-N*3U@e!gD&Cka1qCgdN@5b$e61%1TR8TQO5^#&gg zXOSq;h##s8ROq3HZe)-4uCIK*MF1Szpt%V*P}1Kq8spT6W1asLWKV8Q&nP_26+SI< znG{8w_ogM8lpD&Ic7KtHmp{F^aO(mbUIyY#*`HjGR?Z(jy)-Du(v(BX4Ik>rIScN7 zj_CfKQ!ahcs0#mHoZ5GKw0 z^^jb}7qX&^U%?G=F~Lt#KU8g0Re~!iv!Sl*(Ky14RDYNL{r;Oz<JE>lrOb~R@emVPxHCND?xcqQ*dzGy8C@4_2ug`)e+Tr zl#ZH2_+lD+#8uL(n9IxNvb7gv0_HseL82euWV<9)N;H-W=Pp>02<6abLO#jAIlU{{ zsi7TP;(CGg`lM(G)`eeU-~<8$uUH8~b{RaxFgn8kX8f=^zm_0!##!LaJx~n2sxSOH zzf35*EDa8HiGG-$mToxjAGQ4{-)UPIq{b!F3m%2=AvQ)4Y|HN<_E?iuArm;S4!>;}PS=P>bkm%HEh3b&Hb0&F90sGwuGTdpf0)bXkAcE$5`pM9SV zmr1hk7MD5LJ1Hp2h7{@R{}lCDL=G^t9#i6Ds^io)klU&@Yt7ai@T!HRl9R($m*)Ph zhV}0<)nRrG7z4W#0Qv1!I*&MozKNF?w$h>YgM2Ts%@x^=G`2W(2B~(@+k#m5ulEjvP*_ z8y*|nz;I4j2kaYrCI2GAWEe+TJg8JcioomVj1HZ*mg83qwCH@l1QpxcVv>#xgt7PW zo_pHG1k_%ctU}~cF-1oJO(9e<`9>lT)z86RPY*_Pa&R_kHw&R0rF1Y0737Gsnw+I9 zed*&5v{a8`j*UY*GSB#z7Db;Ao}6~)uGBchG{Vg4Z@h{W|CxP*(Eo?@wU3n95{VoJ(TV(%dLOf3V`qZZlZjGr)GSJiT90sxHE&lxDVD zB(EyJu1JQAu&_<>Kl1r}JRX-tICb2&6wZx_%2>Kmc|6Eb1h+&J5QkHkSinXV7jYLF zibh%W?#bH;-!IX zLx8j!M|DscNtPyIFd@R!e}NQ-AH`u-W%;n4M|7v}*Jvf7lh#j`=R)q)%%r#lYq;9= zoT>7ZY1Nyu{1Cg)xM&?ErKnesI3b#+QyWKP$yvA^VRutp+?tCtRL4tbe< z^?d~w(frOFTh=EYHS80!-p{&dlY-fR5axa?Km>M+vzxb(70!+f-sc#et6sI~IMq${ zx^b>zJa|v+pp>2_>H|f~K=o+sOROQ6h}3fL?}@zO=SrBZypPR-X%(zaM(`f=p1>~0 zBvP0`8umR4BGgB-ywsV5lWYJQZ?7mYRX_GkZmRSC3#|aa-XS8fHyerQ~>w=XK=vBYkYyu zpG9r#YuA=EVlZnm*@o&@BrY9sC3QkN$@t1gXWx_GyfB~;hZ0*D?a+bel5ixqry7GC z=9$}BgJ4Wq2`5)K9oj{b8-eyC`Xkpy3G&r+k)X>tPBhfzkeQwF97v&W3;mIyCB6yg zF_9rwO+!xL^Ra}b0>=}6c>ds?Drd~3UH|(QR{!mpHe?TvxEnU%fd2{HqHMXUZrJTL z?@6C=w`vqlpOw^GfAU(Qc|I0&?=xH!Ph&w0j z%Je5cfoy#8b)8gfrE_Wap;S%+dsSXuaXfntBs1w4II9fB&-wBGu43#~nmbWVQ#kzk zgSv!DV!fBZ1c}bHcV!7+JhZzJMKvnsby1iCxx(0lp@Xf0aN>4wOGB%PtZ@dQ50KB8 z!AlIV_kvK$t9E~GkB@3CdA%@qXtVtS(EYu4t`Xi>`Ntkt3v7K(tZxNQ%COU1YH%E2ZEBg2CdFh)41J7Sl{LhBD+Fw=vt9>oSt#|1siJc*Af7dGrUTfinUDBd{b zE@C?ciV{ggZC{mFwFib9Rs+xQ<;am@FeJ|gxhgr{Tbw#$M@F<^DrX}*(srJV#LM-l zITJqK<(tmS%LE^)6E7*vvKe6grcM1FO0d9~T{p#3*3EU08JP8&Q-Ll>7L#=h#-1Cy zlFUaKGRK19+L>t0{dMvPO7S{8v7A=S$i6MBWR0xccT4U9DY=Cfa`@yyX`(;5vjR+jOn|MMFUc!8N9Z?g9_Z!!2@ z^A(>O<2iQ{HC{UbznK4bXY7gz49c!YC1EzxTs;TO9)jNP<3ni{`pU4oVC1NPCs-rd z$cYTi?{)almoehk-Tz<*mHL0$01TZNVnH&>3u6|9sFZj@@OXAH(h;c={qTYHYW((A zkIrEOB?-vmUpl&m`)hbn8&!NJd)#dpJ}i0{v*u|st!g-M5itZ4LEGLyuYiE_3tT)9 z8UwYRn8eV$p`8)J#aM}@%KFM_K=#@*VL|=X91WI6q$hQN_9ean=J?ix9Cf#Fgkl=x zg`O&(sLNepFhu`h|3qKcs#2}R^5no7t3G-%0G;>jsK|x0?WHke@fda1u^^dQ$~9#E z7HdF%r zzcZO$2(_@k^x5E}5*93zu&b@if}yjM=QGI=aF^nb%6>qatE_$H_Wu*J-SmVGHR>m9 z(>NW&Xt@A7hM?}q#1fWqRsXG0>-!3KHsfQSD5^SGX!3koaWH`E%2=gMN}Ux_yi=a| z81+^_p;D4eTX|n_=}jzds)}dVQ*m{FA&bU9z1$PvdHh3pJ512kKSgL6*w9+spAv;# zQyD+?k}sh$^FJAUV!SbdxVrDUU6j^>;`u+p?`whs&IN15miMU}hrK_hDJ9=+{;IB7xxM5%k-~rbhZmd@9^8hQuz!(%~e{7gYn|f(-q=gdRVE7m96V z0%e74tdC&3hKD(tGb&%I;{0Xct7@>HI(lIXqSW}&(f`p~x_L?U*THk<$$vr4X(mC3 z_zm@7AwIEb-jm=|Qaa9C2dWEW6%cy;p>ic02!l8U@P3D*_grJ2qxGwk(sMgnaZCGt zpNO1CiYdr@nPRsSt=8lR-8)3ljje48IzNwlu)j=kPUIu+e9j2?@JL2G^)ftc@xP7N zwF0YRMLet{|8g6_TU>ZxD3^Mj_N^}+Ug-;?Ka%?Z_HCd>39k+XYbB~+Y9+z>2x?$l zwq*|iJ1@Mrk=9<~+5qBTz!Lb#X%FDELs!7_Eoi?t*9lgA=t*pxLzkEg=)*Pcs60W_ zA}>Bj5T=8}O{k}pFqWj8wfwthhVPOyZ+b-e-5eLJZJgGXL4FpkUBa{B2yywydmxba z_sMHt>qh7IPv>5imHwa$FnxWcf2*AEVEo7Q^|FsmB8riKj6%E$rne9JMz6vR7auv7 z|3&wT=}Y+aHykx`UAr-!Szia3l*E~h{$eSMaR;vDyc z3rqr71gm9Dh^x5E>Fo^8eaEtM(4#dCNl*jTnUdfT5-jNQaOY)1m zQQyBsgND|N{Fql5bR|Aq?~5DLc1xN-C+Sli-MTQDDn8{dWhws@ohVox{qX8%Y5d;0 zO>ra*zT4JBQ8oNXJiYugp0p#`8kMUF9?4>SVb$V~Cuoi@3sE^F8JUOqorHn8Mms0! z$B11q1NNT%eM5>MsPvatgXDN5_v6@71aWtEYh3pwMgPl>5;u`= z#TJV|wvsj-1R(|Pp~+BuGe$vjainW3v`g28&E{b#*2w>ID)g-7Z|CarFCq!raXLPs z094%8503PDkz4C;<54DSeg<8W4W(2j{zr2US`CbKC?kfm8U%v z0jqzrf3;A2FifyN?czAK3@H34%uR4{vq-jQ%faiw_sQ<>H^}yrFDK8H)#wUl<&}+3 z&Z`Tfk`$!Mw8LBrn5a8&HWzX`N6$5lN`4`5CBtWet54D>1+!d=$mp2{Omxr(5z^p) zM(tw0U>wQCKO+9eDMnu6AHWws7d^=h>vh>>I^@ z5cnTTrXR`+TRU|R8+FNZl2a?w<$mM>zJ6KGs#Pivj}^%hfi!?b`V=pZjRGa_NcI}| zoS|P4c39&B0rD;4SZILgWND)>I%S(UeUUzAhE~U_r?9@&{j>xws1Fre^n5Wv>V}2-T!X)@@pE4F@;k%&2~6*D=B7ZVCa>Pg zCo6*u>*>M#S3;YcA$#r4NzSI(7JXamv@F--R2N z9r=eq+?Zx@?(T^U?gsX=37EZh&^~X(Ojxm3oq8`ko0b23!At^QZOqB0%otEgEt-CK;HMW_ zKW*$Y>-Se)Ox>mG?UiMIvS)bzx6ECaE9BD~@^sXK&@D%}s9}8QliSEg5zW{d@m97z zF)1r~>(#R47nIcH!GvkH?BGD{R~wK?j_JwZk4+p|&xdlv9eUhVdn(quVE6S?q7M}$ zJ|(0HLa6mQNXPZO)awQy2~sUr{qnp-Hov+m($)HDilziz^uKifi$`1My?y8f)=$C# z&h$)UE3gh4b~hz~e#CZpCb5~R-!phfY6Zl;re}Dol0oT7adxpAYy4!-{G&_#s60a} z30d+s(hB-j)J_{my8F;8oXUkgef8_H>lo%2I;y?!4~w&EbM6f`)@G1vUMj0#(}mzY zmt*yD>0Rv;n-dcb@yeI``&}CA2vPKz-rip1l$){NF2y3Me$(^@W1p#T`f>r!QR#X| zx&RcwLxY-ltJ3p>+p8>J?s3mZ;GU$Z>(zr?JgW~j#~JHIF>S`41Mk=O^p|DUlW`6O zL~SbW3`)R%f6KYMo_@qzwba(WF(v;QZbp99M&Yf;Ab-suDVRyfa`Cs7swk?|*ePV- zK0S&h-A{5tB4y2U{ehv`GCO=s1b^Z)zT=JQR+Zl_|N3qI`qLDqo29HZ9KK?%shW1< zTB#!!K5Y9>+6M=0AvcdV+f$T$co4EL$^;*?Iw5@*!oF7*;(Co`l;rXth}pGWl?;)L zIBgY(8VFoDJudVLE@GO(2ep~@p73gMnlXyR4EUsZU!RF|fCKXMD5)+V>YES9zHdAs|l~uy`omoTS~?+;I#<^t-8ijOp1H zFScv=G~Md`Y&d+fsp`u2ACh4*;xKP&xI*4~i2aGS)J5Tn!y}c?TlA|PO=FAIw7BY- z!c-1vM>cyC-aW4z^Gn7q$wo$qX22|#2?;$x54XKdO*xxJ@Yna~w>2s0F5i+KtOZ|Q ziP$hQ-biE42D%aQ35NkCHfP(WwBd+I7#}H zbyV)Yw)T^ynj95uMXnu^9wp9TH;HO#XQ_oBK)&Em%Sld4CXo=ccg?fjPEhWNVzuTq zb6kq?rh#9P1(I)4(2rHF9pGL?R)@iQ09vj^YId$_op+`yn6}E;&rqEB0xr?t#D9OI zd??;CP17=utsai9OOD7F*e>rj4r(9Mdcg&|F(3~^l*?K|aMs&&a;^1+j%?m-9>_zn8cK9mu zCG5;mngowBY+~_$CN0(m2C8@7?@>mWTWPC*MHFdL1Kp4sG9=8@*dXj>i1NR>0UG0~ zc6Gm&VHsjx=X=CET;KQmqytDZB8HA#Nu-2m3KF1}am1COb0$MU(#X&_$Xvv0+;B$WYhj^%~>g=0=HHNKDb7F=@4 z1%JM}ksHD6o^BRW*{eI=+{$cjX1PR*K3`6LUOl#&WXD~^I3=|yV~jWSGLH2e8m0M2 z2?he_E-?U6I?zWPG8a`E8TOnAKxrA6Z)eobtSpp?9_K32eVE%@IN)dRve9}vo@PD5 zi>Ne~^O9F1wvo*j$2x&MI)79Re4V#F>Rm9q$Hy0+OQ@>kmnMm;MRf*WfF*@nPHf$K zB)AJO30UkoAu_@tBH3U79*+R4!a%<%Av!LMqB3w!J7T?fKHiN!n6P2##b>z6*sa|u zz6UW)YxU6G-3q;AvpIRFf9yHpFEll&NQyl5-0k#FF8Flo9T-j zNqlJt`nYXtOypO*S?9@|caD`M-Uz{<9^t4Jh0t zMGX9cAB)D7QPs!&G1KtuzHE}8Tqr*KniLJZ5%`=_QM;QhVpfEP|K&Z;W39RgX1q{3~rqaX2VvH7l|L+B^_>#N3jS7Lb<_ORS-DX}e_N1$oB6*}r<w7`mRC!>T-F>h(|j38Y!svvpuvSP{ie8s=~%4;EnK#2DQ4T2e5TqAvQF-SD-M=i z=k?|x51m*KNe9g{`A_(BqmK>o?ziyi_qV0S0=I=9rH)Yxn&{UZuC|HS;qsK)S&)V=m(IlS((m#!NN-kG{+#meCrEh-xN2hE6T76Z7_nq})jwv_XNf*^8 zxL_2y3!;XAkae`gI-sRku0uO=)rPN`O%^lX2!=IL-kOww!j!y!N>$O#CO$nnH8H+4*=>R;|G27WVBChk-+w!6CO|T*{J4NF zd|w>p963)CP57K$sn#`6y@hILjw-lQ5w%ykKp3t(e*7=PUQ&TdRZVX(P&KB3Psy|3 zw#^{$DhM`zvvb**gPZmsF0;*moY0Y?`I2c;i#bHSZS%5Bx=m7Hd#D{QDDUvejGT+k zyiqRh{n39jU(Ns9?j3;LKz>8AYuq*#QA69gwS0*tP7Y+fFzh+hyTjTe8gk@Es^8lP z>-!4)$)U^owcXMM$_pk-4^ra6gA2ZU~K_g(3T(U}>AU&y?H+5J8P}TSdJay;Mc2+FfA*z>X?QSdF zwP<|3;vCBFB{i0Xpe=+lST*3FDcc9)AsK}Nyb*aXts<<4!$g>rEscor2H%%UKKhB+ z9Z!&ia zor7~#;O8D-W-HyQrI+jUPVPjav3QQ<_2KNNIx{tsh40y1sjQ#{JGq8Me*QG9aVYzM z*}BMAmb=)%tFjZG_x_2t`B1A*O%gRcG_ynl3-I?HKm5w}ZL&?g9mWUc>e%oX$;Yi5 zDdXV(VR!C5$+(5+4rtWn9zMqpVRpEDoR~d6ggl?1Z7FcJpu(zBivSye4Q>X-4|eP+ zB&)neMUeyLe#L@g_xfLkETs$RA6np3Zom($&MezxvzIjeFoy!%UuFi9q_}y|e@KiP zX#f|6jn(JRYex-O0`E`=|Cn2s%_s6c&Ibv*KZdt{M{%%Z%kKHUao;&%Zh2?cxNv>n zGOBkY-vPP|Bmol|#r2@YNe5s$XjybM3ggBzK7J5}2{vYff_yDq0`Z9<8^2;zeL(0( zV&cVq4$(E_d{qmn$2UUoEQ37ap$fE^_jd4_l>92qX8c)JtVVWB^Wci(Tmh=mdxa*V z0&jTPq?%0|7lQ)T#QMh;$M`@SCI4ED-C_L4sHUC2;6mom2}#6V!5MQ+b?ICDc59x> zklawR_&NF+U%U0Uxt@seM&msH!l_(x++q+j92i_VJ#9i9%k!XAQ}Yc-o|3~Uz&dvc zI`R|`b7~pV-Mas^VtHp>old}HtnT$jJr%C3-HTtUo#!|;nGmGVtH;6vObo|eW@8p- z0`4HcYyP*jTEm3rwDPH~p>+IX;$eE(=Dl4;Nv?Y{boNi~6(aRY zov9-b2vhakPsfK(wDEMZ=17_V-J$g8!wK=R+qy zVRSoz({zb4gMOYCjDc4-2;wQKSsx&`Re7pAu09Tp=w88=;iXHJyvRjHgz9jeC4n5xDGQ}e79Lc%T%fAAtY~d zgH-}hBhBB{FmA!>o$C3c0H?Mvfa>PW`u0rj(Ni(wkPwfN!kJl<@`%A^z43Qqa6nPk zWDBMU{&{p;Nae94X?n%d9x2Yi2;~DvjszdS->&iEo?g;P9aQjeb{~uq=Tj+_c5UWw z8Vy%HiriWo`@*L)DYQ0kl^p(*sY#J69%t(j^MZ74Cp2!=7T4Hv^4sTPVT>af2Dtq zN2D6DHPh9C1X$Kj?W~v#8=|#e;kRttA>UNKKlF(ke|NJ?U?mHH1H5PUOFR{X@@E?#=J`6AFNNW{ z1lOa8xzi)v{JMaLU%{#xi=v7Z!)#OMdfcX_u5p>mEfs}Nt{#hfENc?g2 zPD^XvjllSMVuu_X9)lEs(;L38M8!F%uRQmk*QFU`I~*Hxvkb5R&P5>DSN)6wm)^YR z!{Jkw&s?PihpuSO=8b84VQC;2pBOo@!BY^0l+DB(gVYjB30{xURhu|Stl6Nk^FUfr zF|s*Bk0b|+yfKnV;`4<(u!x<#qV} zBQ}Samk{JM`jlE;a0QlzJ^P9ZGM)DhI|_!6*>nTtg8i(IvGA=az<=@8@;bkfzmGu; zW2B9V60{ge>o#ubymLm%;%Akv zQmw(w=cVP7vCG-w`ToUGWcV@ac(=_Dr1s zzguy2@RJJ*HbD>nedz-1cvd}4T(%UODuW!&tiNfc5?AdTpFwVw#(4Q7`=Yq`N1T$6 zcKmOrUTmIKi~v1DP$iD5(5kx-8X?I;Z26_i8j81|J?lXjiJChB=EcDT6w>DJp5=YS zRwN1FK+i69H-3}ohbdz+p48b0Xc53KVo^Y`B+}oB^8)z)ncvw44;Syi>hInqiDm9I z;@&%qx&FM{$;+lZS4yBFy+Xtqsj|D@c@HJl-+=Nyo0m*P{kH<1>4cnO3`>JA9XV7HemlRH!o4!x?1 zyFrw)6%lry$dNmrf7!0jChGt9-;|)>P#}37GHNO1jf2{s^Pwu8%Ny0GdH?#3x!G78i z{-v$Bb$ZY1czVm}U+6C*i8s3NDK?e1fT{pb;~hvRDK!ztX6~TQsf!-)% z`yNfCBY2)Y0R0Srlr+LtoeEOJ6RwySm*%gcR+mjl`AX>63Ma~TtB^piT57#TfYz&4 ze{Op`JP^`6>nw;!0`+JU6N2Qs8Q8>Yf(q$#QH<>)>?WhAZ$m**jMX47rb^H#_DL^( z7(#}srxWr$x~M2A!d4ZLu)#S}hes9EjfFX1_aec;Bpp#mkExrlQxRFcE@Ag;*v=98 zVx=vmNaOwE1M_sRs;Ip{{Uu*Aq_@ zKJehUM=Sn4==@Pr$(@_ox;=v{cbc6tWYHU4Kpn2XAl}YdBHlVxOLfg&rFe#LYAIU1 zo-9Bq8e*wQ+17JLm47m#1G_%6iKE&L`Kt#1x(NJ*RL_Afz&rb9e_M~br)f70jp7P| z_^5EMVFLT18w}4~&^)UiWR_?-G4rGK7r1)c9sA^rHwty)=@&*9rea!Xv#K_lk@YB) z)>RE3$s*!@%O~#W_VHEg+{ojRdV|4?^Ih(e$n}1c>Ps-gIKIh$jN^}G$T>ftrT{;t zFZC(si8-UT)~7BDL9$UxA;r!@qPkP61aHcv-*+J$&I&yOVb$pZ)oC9E{R@lh9K{VM1)Z987GEQ&xjGUDYrTQ5fP_G5xR~N;ONrfD*GfX++xM>v{LN`rPAI>2< z^JusSCA**Xx8*kxqfGY)ZytZ#kn5N<$DvKxUF^?DmMiROiDOY$HR?T_ z{8@e(5R&sXtS{J^-4c6_N!@gPFwF)scSNRX>IJ6zDB?*@$y-lrLsZkz2cE&wq&TrV z`}i4mc%+^kzc|4*O!4SiX+2cEWHJS88C8lEqj z-_?1pm<0T8e^DE4fA0K#1>BFqE#*tl{xe~!98=J{ejR;70Xk{O8R0XNQ z{Wo*PCd&yn0uDOlaLbPI-fIE~8>vU#*d;q6mVb+II!TmU( zQ7ARk)RIx$!<$Wf#ojta)^bVCuA{l>jh$p0(7avTkHOcwCZV_3r?AAYdUz%wvC7xc z<^A1G9;%C?jR*Wg=h9$Umph7L_%;lO3}6B~U(2b2yuinZuJ+jIG$K}r6pPsf!zg|j zKhaZc`|@|@#foOyAFMH>3(G0`)P>ipC79?PSI$r2TE1z!eF->aI<4bUdKlfuOL%i< zG;$T3RHJU{g{-S8*_r>@H0xcgr#H0$@BB=T?R!?PE>hpX?8$!At=Ev+8b~+~ov;lQ z4tgtQ^$1-3?3|pP;oDvu`Ka=XV=IlIgey)oFsJ72+t%B?^j=q@Z4axzk{6Rpd7vxu zYRAs=S=;QDip?((pE&zxgM(JQq(332G8iI&iruOKMCm(};qTWH5F_Y&Y|B6~eICnk z5}B9-N8dX>9Z)hr#e>MUh7R3Co&Mb0_g|v=iE?r9x9}}Cm-h{DA3(Xs!@u4o3+vPo zj)Q<@Ih61lpc+5NUDBEF3)YNJ>6LjSl`0J`^ur#}4w0|rnAPWdj1FB?s32_1CJY}t z3w9QLCUcvM*@yX`gA=h+&vc1!!D-D`uv$oAG3L~!T;!2r^G;B!jD?WJs^!o|Rn+8K z2s;JA<#TkT8^8PU4dLRtr3a&)rRld>6Q2H`2DS4Rq?3zkOILftot;*LinrR6Fa zAA$Z|4Ef`KIDF4vU730< zc}Gsa55*d!PXT+F9?19yTTO4^^17XFn{v|>4e%4>sfl&tl#yYs#KJ7HHgEAnHYpJRS26r*-`qZIAg31WyyM1qky&j+kPOew)wSoI-;Sr?X{xP zO=V&{l6LunO7XBEw(z^{Ukf(wVo1f81D}%iE*~u$@H5t5x?{E%X32UwD}9)uTJKan zO<1yZs*(T8qohFnMcEjIj$VXeY40p>ed3U5FzB7eH0mRaBA-Q9si{N*^K9p~-lZQ` z4)Cezz63D#`L=wfW8lPj(fI96=@T&o3_M09_gN-F@rYD5XiQD; zh-JkrsRk7zNiEdza@11R{(F|*-fR{*Lf&(Eo%6@Gz6SlZ7vfFn1Q?iEo{$0`Sq{`S z0!xZpu=H^?lx8ePu1qN`tsxcf0cR2;m~wyy>FM_*g#-_?#BoLiIvz3j>+sZH#j=ysagP^X`)Z7tbn%rzRDQl#%=+C@D7T*l10mcL z)i!}%EcXVdBtw#;0F2f+Ic&nu=#mq2(ztQLd16pMgE{6Ch*9G5)aGH|07|7q$^ai3 znX(?M=GX@-c)&!id->NbS3zP^lL zAHzir+VOn$-y-WG?8a`95;(Iic!C1FSrev$a_vJHyd37f!>WNou2=8!kEZ zI=`Qd&!cbf(3&f{Wmj;Pw$QDDe(To9vlfg-+}i?=<-E6}kE!Tj(9wRjH`g-QR%`&) zjl;F^lt0TBZH5hzRDUqf#)-|yM*eyZyBSP{3?x>tu?0dh01JtBx;=u%*`OQN_aVV{ zM;FHtM-dsCf5=;nNw}zDVnJbNYm5VPZ>j)RjS`<$zxLd zBj3?pHL3B?x7wQLEJz;?`S*)H4w=3G*%~_4loQ3fJ8W$Ik&w078eP0IujlwI^L1Ng z5`Kt%{tVgQ?uzI8!Xil&m;+|tnGG^lh)}!^z1^^fkqOvU%OJ-74~=*4GLgo;4RYWJ zK#pV&-z<@WDR16c3HPhoY~%$``9gO`K#~2X4gL z!EgkpIGr$o;Mv}n%ewo~3hC90)^qA}0W4k5OqGbux>bC!dPr~rj}e?1TIz^51?~oJ zl*sCpI>-!js&NZ{H36WB>dw{*w8o|6TRtFetg)lkf7X}VrR2uB5oh{YC)MmlRV1Th z>>f{^jik$GlI*t3sSTI?cU%eC4(G;Ct7mDF{+{Y5Wep7#Tj5LUH3;vaW)|t!WDo7^ zvzP2GT0)EN!_Su1i~ml4?3QpEQyy~&?8<`lOylz~M!`4_b94-+(B~oVO^wpEL*JY` zlA*&4quhEMM^O~8e7p~dC?`L^ut-D};CG!c zUSo-nM3I9o23;icNqR03*K}t%=dnVjL3Pg(FL~Uv^`fSwB~Z1ake_T8L$MhuW9RKO zsD;1&btsj6J>r?)U|u7Sf39wrEZHKlUkOEeUchLjbF`-D3*am!m?w$sssMHaqYgU_ zLS_!<7TU~6-F*pr;xx59oZrmBWQi>l<0?clwy5>OV9dYcstuLLNl_5Qyzt_E$@vuZ zp(w-L=+h4Wci?B69l5hyBp=+oNbu*k3S_Gl)Ku#UuAS@s<}XX5ODk+N93UU;2^=ZK zyd6qNWHRR{d=BM=Ljda@9&pQdQ8nh7&XmvG7Q-2>j$g7x1jx7#?J~!dEdp|dsL>xT zZR{3|JPqwku|ue;T`~PpxxCApkaqO$e$@fiB8p35Y0p>l?(tZA=T8F^0s76G5v9^J z0Kqo2QOaNAUX=3@8a7fBeC^XZ*t`9(Y~vNK;Um;wQ$G8kPQYJUH9e+w>C}`FXDz9i zyC!UlVwr<|FJE21waF%;^}PQhb|yP2JSpPKu)Gg~+1#s!LdxIpJiQU8I>oZ6uEvn{ z-+}cwOW_emif^bmvu{BaF*cc<+X>H~v_>vz#jhVU3#al+a#9wWTD(<FQ=Y-DO{> z-wjV-NwmmL$}kx~V7>9-6kbm^QD_skb8P$6~Td?_fA zd-__C@+Y&7b%w&vU8W4Y6GuFBIZ#_h8rKmx?x-fG^Se)vcd^M+K;u<6Dw>Ncu4SpDd2Du-q!1H>2bkR;b0yv1;F17GUZmbh^i9EYbflE#79!(@)1 zvdg_w=RA8!x|u5jYn-IgYj=?LXvm3fdT=^`21k)^CaSrmnfIl2wD<9dvg#sAs-H+xt5E4U z-}c5L(45Agyq*wa(p%0D{mQ+7iU$V@m>yn<%nTx-l~|BD=NHjA6o;@DwgD9Ye7HLt zsfS4g6hr|!_9jMi$3$b}U*}bc?aRyP;+CFwg-jckKDLJ7{>l zGgZ-YH|K*wI!(Zpr-2X>B-wek2_YzyN@~Zd5juVEOc>0lgvVk5H~9T@Ty-Ar+AZ{& zUw33Hl~d{^_ar&td+MNC2d&Z?xV}Yyqw#Ujm&S87nzG+PY6{FnQT({9k>M*0rsm6q zpF_QB|D#(OwcaiL9YR5!X{xeQfqRx-WvY=kp(FTmb^eD=1BOnW_QSg6@v*wCm8%l3 zjlLIMsBZuY>8txhey#12ktT1_S9b&Yzo(Z{MVioapF^4KIP z@dOcsk{Eq|BI7{xp8h0}MPu!878C+Xy_%TKS!D8MXXJVls3X?K3;|EBYH`xcz9f2Bn@Y%za@xx=lzr0W)=YC{j@P^gcckh4dZ5=5eJ2>uOOny&8 zC)CL+RAZo81eyysshZ#qtZ`(rR0iWv?afU*7#2Mozm1JTJ=t3IyO21x4t(`4G30Jh z&AY?eW1!-!COEMh!K%9jP`K0ol3r~2wfuho4MFn0ZnYwG;J-2sp9T5<$ovUZ2kgi8 z)Z;&bP%rav5UyoC&+onQU4(<*__IF-dPB)aZHM^8O1@wO1_(eU(0{n>Z|t!C|6l#p z_gN;I-%V|shjSwZR8zAvVp{|-G)@4LuU}DjC2sx!3CI=f4BC9m^js4EtsPHqK&{-~ z+7udEykI5~Z87IxjsJE@aY_y8Wi9iv{bEJYwP+@7Bd5#S+%YAEtK(}WUyJ|NWm(KS zTY~yk-YWhl7(YGL{%PvXWCes5wpBM+hL5>TW&mwM%n`$y!Y_aP^6S6yg)q671pL^( z{rOL{GL9kqfv~TpfYw?-ivL$EO!2RBp*hz7AqybwGc5mjv?m{Z_|97{#FNH@Qy$Tz z*{RC@rIWW-%DBjRxB0o>YW_m|4&R?EsPWcE*&!KI^t$* z8RlQ!^vy1bJn6r@=0PMOGOXm+r>YOv+sG`?UYYDu@&AC4>1d=Cl zk%kYtst!wq9ojt41G9Zw7T~v(bVl?_^#6Mr#aSreY3()-LS}m~?od2Jq2QzrOyjBKlE@XRKHMlFGGGmy2aFVyQ+TnKF-K!?fgpe}qZ4k6Ate}^Zad#n zgZ4&M`K=8i$b)MwD7~gYq%=`jeo+jmKGA%p>OYgr{4x{K-mkF$dspIO>E7hT(TlpU z^~BI^jzV4y7wC?*5+5Abg#M%3@pgOHjVC|*x8M8yU;ENueDNm(RKNR=KN~yo8QY(H z@fm!6`}3a&XsxkeMfg?`s>rVs!NLWI|F%S6f#5LvDHENQiTK>dzVXzD&er^T?o&Va z_ybQ|e8(NfZ@uQ)Ymetwrn#M)eTBD4W=vS~DsHUiIRc|kiaa>#1(ju74&?bP)pocV z+26>;l%FG6vpBlhgs71h0W5qY?jg<-d#|Gv>`oSAk`+teyh?2`h5q+<43KbBS)0Su$stji(S@?SF-9 zefBXzb7(IizudgpnJa6nY_8BGaOlqKv#Xt)@PA1U@90=9e>IE^43$+^b`kR_3fdUtlE8X5lO+ zo0_!QYe9jWv4uMjpU=MMrYCPb_oEknC_aDYz8lE`2Q2)6g8x#s&jEvf zN%LvJf6Dlenm;eT^b#sW1%~#5!>esVHshlKszm})KV^*f zJQqM2&@fgnZuX=;>?+gBV3tf?3A8iUOf3u+gy9A4+4(vek3gQq1Ue44L@we5=r7W> zsYI#cSBLf_(;v@8+Q&WA^L1>j975@)t zN|p$U{2%0e{*x!~N95wOAH96z`3=B-n(MXVVb3XUm=reiY=9(QBgs>iDe6vp0ZmQJaHNfb@cB%8JUZuN(M(Zq~c_i*Y7E zCicmI%qpjC82}qB@Vn3c*c<=oaa8FEqkR`Fm`(Qs!oKDFf9EUD0sMjg*oo`JW{IGT zJH(&D5%|3qpT>+})SZYs`DZ`=7<`t~{VQ9~(VXKM`3Ht?=i*3}F*|Y}fRK&<7JIJ- z{}s}&GUj_g^KV&z&k}D6`2YMfkHz-X<3IAXuY86|jwbd4qJh%j1<3VW;SnMaodraS zHGLFPk7j#9_JQWZue0(4Rtk=9Ey805{u~_@OKEC0f`htpCmqzxR&>2=Ym8OFYLy4O zUd_ClWdB#=P@qg5c6DUj$S>40Wrh6ER%oc*dH_6?;ICM=_32s{Z&iP{+=Ko}dxf%3 z^O(w~xlP6wwe|L&HUBe}(3x4Fz7Fdue(}8Tl7cdnH6|KlA0SqWyaENtseu~fZx~FD>}6D@^^R z&p_%4*bgKB)vx~dvHef~=!3uflkbY3`-?CBr{Kt<%EMnRZ_T%Jr!AT$N+3s!O)ET6_ zL>jv5h1lFw$~afmy1FFlvycK-<=*sCNiPy`Na#^|V=}E3O!6;|>x**Icv2Qtu9knf z2U3z2lTlDgja*p38dh8WitNKbCCk6QZavu=R&Q8>;QFMKXg-F1(`l;zkjSOH3+=$; z?VqF`VpL@hrN+ic5So8iGZ+(km(4`)^(GwpTy*cjKHOAlUrjk{Ikat#K8el)j6p z>O7L()8c=%{Hy-o=KQdF!xHi@3I4jV>muHbBZ2t={+B=eI41u>qDOfL)@0y%?g7PE zmL0gwmA`=V2oNy;lkg5-05}h*hm=I$fs~<{|ExF){7>ehm{O}eSduZ{;fxvKiif>< zroh{Rc6QP!6LC1}c%MobqP73qodkxU`f?>Pf7=LbwGSaUo$Y&)@JJ_ax|7ONLjk=EKt&dagv+`8Z6SmDGScf+! zacmj+fqRPUj-um`jXQz@PD7myV<{>@X@f;BUbf75Ecqg@B+*70KKvD3nzbpAYk@${x6Mo zIs*7QuBjQJi0#_i0bmNKLt0|O#>g0w#ZWvTq*V7oSwN4}&CWD|!tFX6r{y{a@V}m^ zc6)`aN;hUy*Bf?1nQzrQyby{CDUGL41c!QL7{>EuYvUWyI0owdXJcNGlTcHg&id zh%dyEfHK(p$J;Gf>1ba<|7c&@2t<&|JDAj;WuMlP(e9!CAk>u>{}tyg3#j!1+C{tC z05Lv~X9wh*R4F+S{{>CoeepeyT)IeLj~&eU0u)342PPw{2O0jcAyORwg=+w-9$F1f zAPe9G7J}nf@GUqO(1oB8aSj6b<$G^@cQ^mHK-rS5*dpF~0TnCSxA;%v-+-uv(`lO( zm=f!(9z>;pl^V%5Z^(?&c}S{;P#<3rW1Rt$_Fh85YVs)&WDrYZB$q^1li078S-_l> z_MWX_?Us^;Q@F+rU3-=06wLdB-|6G*FQWKwkDPwptcwgFD{Ios4x=Y17ST5;iD&$w zfc$QI?juP1iIczoYhQZpb07Pe`)&-_--V>Fy;f~|b<;MYQw^a; zSj?t+rBQq$t0&|uOu05-HU8~*wf~P~otFb5kLLNbvd;nge}p{n`u3SW@oIp~@rft^ zr~0z6GqXTh@R?Z6I&Tz$Q1*w5x#R1I=VG6gq9O8gUKrd8IuR@r6o0DVS;2f|u$eO| zm%8zoxKYqvySjCFy|VcN{zC&`@v4%R(3%qc1f^U!~O?48&B(qs1obpP(NKlY8M zK4kVkxB!4pgCF~0^T%i4JnVdkJP0Dk3E%z4pAFdm*}whXx4-QzvBeKvf8BN3*?1@C z7`vH|r$B9XjuQT}uU0pz3kJ1Ne?|P?=5@Y|2--BE7XO#@A1p2gAA$Yw`U^LG^_5p% zdHG39;|1CyX@}K5VXiZ`pAli!`9aW@t2#0w077A%PhJWf!RpZPJ5ctAbI0HsXfCLB z&V+$x8Fr_&NVwh}Q>8Ri$DdjXurceGHDRGxxmSbyE4%r+{G#nwKJD_)RBhhso>&VQLFl~=i0gjHHH{3U)zwn68+0>6x=j&Pj?<_&X))1j zxov&F-n@E0rvKPWIUSW?mF!Z>Z2cuB@L#rD>`(f|aj6_-P{aFZKRe*Y^P49wzT@jZ z@yM=}^sjsY89wp(oqzfg0e?5KcQ5kj_IocreMSdg+(nRo;h{U8ea}spcc$Cvtb0tH zt+sE3IEcy>CUa5t8Tl~G0ws-hcFvHDvJ!Y$cwdtJ4{t^XOPGH(mjChmq#PabiXVJv zx55|ff9Byp3t}+`;5HL`paR)yk4)gfG%i%{!B=o57m-0Y!1N#3|MUVt4af-PD)1H9 zm;T!#>e$~~``ppWDl0*Lb*0w}9>Exid1x3nwVNUTs(Xa1p$Wt7_Q8!M4Q*;CPuAVS zX)F7ypuOthi4;_Lk?*b+9@+0-Xf#=&1pvp>@8+GFoUmJaelZ3`bEPQV5wAApZ}$6?Cuwz%^7^QS1JuL{rk^N4Jon{RA2 zTYAKK=D=(;A5sb{t>=jz$zf!qKxR5kL0c~P4qAy%C`FX|F?THf8`zGrLUA0a zK`8j33&*hje~af8Ix0viup9WVu6m(>lXjl2V(?0LiDrm4geI! zY58TeK!>7-h~Ok4m9c>7KW_GSF2Jg7y_22}>f21;QZH3 z!Fhegiups3VL?>BH4~bad=oj@qzPw)lD4Ysndm#4{mGCh4WiFA%?kOslf{aoWC8q1 z6C(j@XSEmh%gx6IB#&(uu??W!<2?4yPPo=pdUG`FM>lguRt@ZG2w-rT3Uub|&j-!y zzarpQ)~wK`RWo6Yc3xol z^d1lVwQHiuf(r{<($(il#QZN-KiSMA0(~YGVUw~9OeNAEZMCLNA%#hHru>y@7J~R( ze0*-nHRzO|!?54t|5XNgs}OXRbW=s4q*KjZF*-&V`AF=fl8=N>pfo<2`On(UaRht; zqaC?G*kQO9TtHa~2Q6veJAp=HDUUypR({1LLWtdzW(}`@p z&Tv=r#glzfE;y{>y3MFK3IvHwzP5u|a&b`NpXMEXBK@zTJ@28iKzoGFLIUtv?OBU} zsqZ?mk9_gX!td2+`&X0Xv)!*p`GeuVH8{-!s&KdvZ#4Z+phPBUvpFs6E z0;a&%kt~WG81rBUUC#w!0v3PcvX8)jPAhwSE6yw0*U$PZ zhVXX5fv$40J0{(2*C)lz+e0ZDt0|~tVQgi;ZVfxIu0E`wy-Nqg5Q~R)jzC3M_ntbR zj)Y#nmEc`$xxoeEwY7LlY_~5qEU={iRQ#`LKLVjsiTvtowf?4m)fCfupGz&=JWJ+r z;-tZ>8~JmdkHV(m|775=%86O*nw%qvmwJ=DJqzFt7T9K#mgxMH&res->*V`C8#rR> zpZ(Sk1ivc#9OWec1M|6T)1Nl|XG!oO@}KEHIsW_hx4q@ThaLv1W6ejb_J{~9BDTO} z%Jr zhW@kQ0+=OP|HOUk6~n{gFRI*k;(w|SYwyk|#@}!I?utn~9&>wU7^@L(W;S1t3o=qD zX@pQo6GAHuU1rgK_zU|_vIftotVAN)=xG)f&-bHu`-2HDhwc9*3TUf3{9x2`BpMW+ z<*aXSkAp-2v#`U#0swXvbJGP}kj%+t+3{b544BN%^nR|}tHm6^DPW2?62HYDGDLpX zj>ZkJYAE=^fNMzNvJHF|8Nb2**@~`cZ%|YJWJFNEWutGsEo`+wWGzPw{GV?-J+k3g zjyo$Fv<`@Yt?@;I_YC{4sF=k|*ze#`&sj@|laJ3wFiu# zY>JO?G_ReMaHc+Hr=t7y#RlNRD%2b7^O4UkA`;WujOW4y>ay9@#@CBI>~D=W|6Y@4 zj*X)CIDr!-OrjCxpBRpPZMTa5=6Q`j6)%Iipy@R&B}5fIno6jb;?JAa;kS7T@KKlf z^8?p&dlM><%4_=t?!WrVD}ly8{h6n+@(YSTaKT>$e}Vk)0wDV^?FT{-411P(zU9#?`@?Zi;UyG_7V;Tv2f?I=me>3$PmeMjwqAus{~AVQCy>Hveh? z>gzd`Bi8xxE7z>EBIIA`+yTWIV+{w@1xOqObildJNHQ$j9I9v^c|1;s?fUF|WOEkm zTdQpXJtF@SeONnCUKrVcnFaWC)7F2>TO(gtX}6`1L~5r}3EZwZUv^dBAe*$<+bvJo zTjRI%E&KTkQIABI+cUvuEvCzKn!E{*kas4^19g5EUCR1uS;N zc`5#Y1px1GD=@i$>7(EmdJXU_nDfa{GMH!y{8OTGwjsv=%txjy^|S_jV<+U}?SCD7 zDz?v~a}??V-{UwsAucfjqQBC(^iK+i7)2NlR5?ufF5yjoqsg7h78rD z^DNv_dL8v-Y0M>DUFCK=Ymg4*&b$Bv|J)fU)+PKrO&SXiIz-RHQ4HSNE%k-!bw*QI z`!7jV=g-&D9DI;XHoUQETd`U6De7Cs4;hIp-OOm8g~=4@ab$M+5|^d!ntS!&@!4^> zN-d?uc7yi=$lrPdy2EJ&Q$hYWMMj*W!gkob!D$L$XATc?Y>>DA{4!!kbmC+c zc2FINqL7t(W<58?a9QCWm4!ez2orOGcrGGrH6q|soT=Xg|4srr1ia!S=vE`b?O3aH zuw?)1cO9QIsyNmyoWnbJ?#t@;0Jmc7RrkSv-B7U$KAQP$0@1LdGx8`FjZvu~t(9ecM(Y7p(FX#+>2=8OBM2rP*pqyr>wHD2icJ6?o_!e@j}L~K7HO~K} zZiy{{|H+B|*M35A*ub_CYG@%V^6T)=_&okwfWmx@igKn7E!o@lD{6+RJ=U6?=?Vq& zmHT*O)gM{e;~VC;En{2vMB~@(TQlrzvQ<{WZM30U6auisAHz?-nbR?AjBhsG-tvQ_ zrpRw0{nrd>Io^bBa}MFsoAt-h2zcSLD_+VvOl_j{yvwAYM#OyOik4Rcs;%*VR3x3l zKEeTQpT<9T>InyKqp|aq{>7@=w7&>Pp0?qkU)p*Yrq*&4HgeI&5dA|Eltw z;a#uL14|L0_?3$7Ys2#cUQA|N;vRMnDi8FO4Sw=>-Y9gl;#-sA+{t7m}jnh!5f%Vx~s0aT=Y!_!T zlOI=zFY;=*h)y?SkvA>`!x?9w3FMc?kx6np4{uA_iz0T_g3d6crUspi&vvs(#7Z0q zJnLT#e%0V?@u#qW-fG3h1-HbiWRs}54of!R%l?Tvo}>f-E}8)h*4T@Q44HBi2Y3P;xQj7OfEG~Pno1`z(qM<2$NF3#`@SjO63wCb6Y z!}u@DIKwPwX!v_?e3z4X=>o9Y4{O9RMhyKQ*N>lO`8Z7+iZgN9v;3cI@az5oBCyn; z21{l7K!x!H4w)Lv_)o^hN$QY_`Rfv1Oy8OzV#ys?VuW$Q%pe00vT$UM!+`g!r8w{^ z8gmFM8kFn{gEa$N;8ScU;+6Tce>-M- z7xwh#Dn{=*3*G5;Sf4rEGOz>7L^j{%5b$I|kRU%9Pyx2~3L|cNcK=cNN@|&|>sHH6 zhn|uY`Pxvls_sk3f8~i+3&Gs>hxF$*oK#-g_G(z*FqbjybN9K={6X43LckDtSpNrD z4T$DqjsRr143LSy6qwr!gP+l1#uRuOdJ%&~Dn$eDh4BTPF%;DS;ufjFyX>@7 z;u_0>yzeIKl8`GmtWW2%Sn=*FEPJz@I6gQ4mH>CXxV6S`f@Y()>OVAYmu@UkBzw-1 zFOaiq(&skSII6Bnr{r&IsZ*4>~|$ zALRUCYJk>fgT>DDP9*A6=Vw+Y(shu`gD?Tmo+t2RXhFDg;6J{_C<7CXa03GwuFn3i z_PIfQJ4Ou5#~7?!AV^-XV7;-LmkO{H7REL6%+T@c%iwRepHYvuTXvlFaa=_?$-I_r z@-c)<^swgz+K1&W7`vtao+J=h=e9DANZe!#u~lj?zLP6ARHa0gH4}3L##7L#lsBs| zKIJ5twb;5O2)`e*ich=`YiCGqBh4Y}Zx#+#{n-jNRF@~itOYJpG}ERJ)aUA2d-T8s z@VCcQGSz!9ly38I4&eV1>b8(>Qp}RtPkBwLwz6vV0P}|6#q#CybeA&nHOZiDs$g^h zk5#mx<>7=c=f!Q;w2 zCN_fHn*qC;Vd*+%2@?uPl&3jsCF6|V*x9%8&8+Hg6?|4uUG#~vkDwSb(9*0;Q6Y?U za2qBmq#>r#2ZcWMwoasdI?pIs{<9xp->P;p`64x!5n^dl_a#ppHm4c{~vl$YW?K0V!Da~@SjH~UJ|KYaZS*I&44 zJxy`7?cc1-W=k=LH6Lw8niEH&+t`1v9{jaiuI2zr9EaJDP%O;;fL3BJtok^Ja&7U6 zY#ihWAy@#o2L3b7i=<7?4ghFVAc9E`Fh`7-Rp7WfJOa&d7GnE%|MuU+m0x-JN!;qK z?|8@Pw>k53y*)NMn7XWf?pWlv#q&nk=?r*|%~fRqGr|{UE!6=#&DrB-&#!YziCXdv zQxx;KwwoK$*%DqA3R{-}$YHz5A-`SU+n#+I@;AnwJZy{qqy{#HS@`}6<{KL)7$lzL z_a*m`jB}}UnqEQCe-a*M{U=!+Me47BpKK3>W#!fqCYU&{v)CsJrxpL5n+i&&6wn!h zCSyIZUGb@qWiyz_7y66JadmK|4$u+7c-T(!NvIh3KO=Lhv6Bm?9kA_NQ@@?hWkk?g z{v=s)s5?zXxw7Y~Aqjm)90sCMAe zMng_b!DKfIAh^*baOyC!u#L`71e;YC-co{b5}z4z*{HiJ{4b_*q653847vfB#mzLJ zQx+J<^QG)T8Z%Y7wQv@xK>=UwNjG;3Wvoxq+c!2GU(D%wrg9IvUFn$nBKUClj}{Zg zbS^j<5NChYMo#@uo=9I`%K|MCXco{Wo2CQ#b(+Au9ZSmSq&3-=rVo^O!J39p&Pg!u z0Ds~#GU9PldCp7hpV9or3y; z&U(c(#XgL7pf`2?@4fL|%;#m<2iW0=2&lpXAqXx2DmK8I;9M|3HI#`8~!VTDZw3}u-4LZo~j#( zDGPUe5$R<~qbb0ybNlE;FsxutDv0T``$HX0dO3f-TE9*f+w@(wZDk7IFK^AcRYsOR zvMK)?G3*txr~+{_`+p+|LRFLor4IK&Tn2w-!l7#FpHa;AqzWdaA?z>@Gd^|g;Any1 zENDSXuwQNLtJ$18qzv7l*SuBaZ=wG1J-9Wpmm=e4sLXT17a$t2%q3T>R;SisL)3sZ zpMl}D>Nz_A`Jb9H3Vw+rC?bc0EFX>k0`s}nJOU80gLg#uVyCTMz?7?fuFY;QG2a6& zK;sl-%gT%{ZS9sUtlL*KPyH_i)&yG#4;{QqN4Ao#ZPE2GvpJT@Az~L5hx$2x`5%lr#g-O$+ z0mW!yR~;P%lH7QHbLqC5-uPd?{MUc|U$OnifA{ULedRL`zUNNR!Ob_{Oc^Ig zK})gmCk|k5x;I&jo_(_B(3(niz{tNE>LKf)BgJdQf}58={5T|+=bw3uS)E)0hHE$? zEg$g9SzsUwR%1gIIJg6>_CWMT$so?{3XsP^miosvSuBnV!Q)3s2XRaP;oraU;!7{Z z{i}8{%^}?+Xe>vElSyC1pSr&;Csg~&0I=G+ek4=F+1uZC_+J=g;{2ETymEZqV&>A2 zm$6^BMtkI$# z=YQ&d_{6)v^uptDVS6w+H)7)(=yxz9JRXQ5p z6wD@_q4L5l@A%{=J_f;`)4pJk$5R7%fyQwHqKisb8Z)62c!&80LyqHZ&NG$ zL;1lcEPtHOig2J6@Io*$?0@iYLUr{5x}5(>>in-twTBA(jh$cAA%b%QL25DTY?oOs z;0R3^mCe5;;z*Ekc)r7Y+pBuR3wWOF|Kc1ClsGBvpbt`$KLyQ{?2H`@;jg$6(A=z* zw~!EC-$i~#dx?hs!*~{>o$YA`YWi+Y8B(RLed*2u*-hw~qW-t~2yIej=O`sQsJT*w zvd_sa4SBz1fxJysqn0mL%hs&@D_Zx2J7c{sp% zqA~x=g%??V8FR9j&re=JL>Tyw*}FKCivrXBr*K5&9|a#+P#V_(LBJOPF=0v?0yL)Z zbEk%Y`B_0;f!*w!G|V&F81k4km~g&Wk7MA=#S<7-``_S8?PT+GiiEq~Cd*SrfR%!h z;HM#BE5#V{t6{n3LK_kV7}!NoNS=2icx9%ky&cuER+X@7YpYr=6x^~y|AINPi=Lm<>0peix5$pe3LJ`;eisQjq zar4Cgl=^aT<2h>39%ca|TT22sMIBH@XO@U_kLA`LH`B-kea^3jf{ z0ztR$2ur0E<*6lL9|R$t!ICZ0*UiH^tQ2)GdcCApF?4RrlW7(cW3N@nnt`_(=bPdP zXvY547`OJ{#{09|KlEY2x$;wphli zL(I~qqpsbvKFYx_DnQmB72xhB2A`rY!21Q+k-I2~0+9PuSiJ^)gq7NuHb_08atyw&Mhx2^*eioZu9u z^fM`lf)W6qt3WbRY)c8myFgynl95l4PhC`a!R&m6ME`Cr+ndcKGvREfj$bv&6hO$! z2?ooR4X>)fmV_M*j>uolj9+K`R|ZVKQkqM*L7El8Bpy28E1$WM6V~<=2V(*06$sc? zg(^W@W-+C+M9@kf<-bDUpMOz{Ehph(UjZG-KxK9O4Wy>V{RO{egvSzF1XwK~S&;dgSFFf1LyY!W%Z8M+DpI9y9zdh`DmHeb$s_WSLSw%l_aFVf=?LhW8czOC#?u z8Nds|xZxO0Syw`e`M1*1lx->>fY~Ze$ggAHtik1=r2e(Bbk@k}almaGZLY7&>8_xeaox>~Jj{bD= z1=pL)?aBT?7O;XmMnL!$(pKpvTz|u03WeEeo@h2A*Gy@+(m>Eepfhq5`@iD(o6^D3 zD4Y93K*2qi-Us`i5Lig!0Be-5r&N8M~VMu_W!mCdYVVDp1Gg}|EdK|x>%&*LpBTB&5f?&Yqw0%Qp|AV zyVxbq*PBm6Pg-NWb%lSmb(kfaRDr@{7R!RhxMxvZeH4`7S8BHoMjY+Sf|cCSS7xt| z4uXMFI$qv|1GVA*$(bctHRr+UMKc*}TkwA^vD$XKN`_sZNX@0w>{DzDHdY^ju4v|n zmC~X$`(et~Ns*FSH)+y)j?$hJwi+~X_}O!6f%4t>x&3w|)gFMZ*jXz36V~SS7j9y) z2%6|7!ca#_qfa1e6PW#@zM{_OZXqYuZoyg53@%4pW@f_^HeT zkeP}D%x6J1NI)P3gbY}p6EM!=Ka}?Y@^BVdIF9K(Oen<-aFt0^jfm^-rhVw~{}N@mP3pU7*#T zng%MFQFpAN*4YxS{alX>YRG14<-t|CpLMq_y{QJz=do`bv2?Q1Sz=_nhy8KapF6vH z-CE9_{h*(HW0D|L?q0~Z(M#2L!Ok`@B3z7_(P;GdpRE*nUTB0pC&umkPm;(`2OFvsW7obbafL9vh&=k}&sJx#94roJ+<-lyfe zY89s>i{;PtZ1$gZ^`oNzQkL<7bsZaIc>pq(ec@s*fOl+g99Yr;Cv(jg90cs^tX_}{ z#C*h#AqxHRyxKd6hT&jP#?IsTqu)dp=z|YEeC>5-1)3WDe|Zj+nZ$~64rmJX9p)$8 zAarL_HX(C9VVZ+t>Yfj5QE56O!zvF?T2mDd6RI!Nf>;98X?x=BAmC|olUx2m0UH_4 zi=$PuAhv@s`D$7gFtl0Qt+vpb4OI814zzQp|D<0p_^)7l-~}Dlf2x$-(m~1s%^9JK z+)-?P>#jyX#szIt&^+j!H5q!At)~V669Ak7%+6URM`vEe{Cx3%%Cqur*PL1YJDksD zGpYHk_IdJmzw7o>s``Te$1H7EofL6!xNQXg>w|10b++2}2V8(^fo#gJoJB?VWz)X; z$}0hxyP<)w`*F!W3T*dhA0lAXCWX5pVE zoqr={|9GKSA^VRYZ=3Zh&9dub=g+_WZEryh&#z@YCU^eB{9ooI5$` z?SI4nZ4(F}23`^W9VM3b4TRe;{jCw;2z;@X|?U-$U zg>9Ampl#~#?16?nsjas1XhuVs7pmR3Hm2@gYw`jP;J;wLHL|@m9l~aCs$oBlEEvY= zDRORr0e)&OH58@fPXFDSlW-*o<-lfy;vM5eo?YmGtw*LJq`b4rGlzO`X35UWdetEGUpvX35IN`g%0Z` ztT@1uaf~T24DrEB_bB)u!v9VeI$(+zxJ`Kuk$0^nK*+G5WBJSi>FmSQb?ql|4__-{ zWF#@rBWwjCM|`WR`c@t(|1|`zcFs~n(w|+Bq5ewi2V zvA3^-x`ePR2k|=N5$2PV^(aj=j5_lRG|${Zie0|3_Sp1B%2$+;m+;@P#a^NgpH*hV z123`h+?S$wvn4YGmTlsrG(7i5U`r!)M2iR!`Msnw+kEdeoY8?u?xQ6wW>M@J=K=w0 zt#o9mJNQ$-Ud%EnsOy*JRAQT^F!%%2<1>Kzlb`q)OnQhjbOhqRPd@rEmVM`9>mUn2 zH{!pq&ufIiqz?cG3vhM-1RSP%;`&JM0kGq@SO}U^&rpJoiW6vMb9A(b|J&mp|1~wJ z7{C?W93tjUYqq!c_8~7+Sm;7&*hxe~)2JgC8ctL79WrMbuNmdpQ}+;hAdyen!3OUb zjI$arprZyQMUK`sIeWkg=?0-~8ERwd3_ffw*Qi_j|0G|brThG%Ij2?a1pO`3f>v_R zD|t+_6Os*?{fkNjlT0A>KtLfB>!LirUU@OKMr})bQ<=xtS)$ZVHB6eWi&lcDHd{L| zm1iexBzp=n+qw}j^=&)Zjy#r}K>MVE~*fuY>f%~7PufFmM zYxu*q4|jm`d6B3SM^KiZMm}VD2>3c{814XTKJYXy9L(h)K_4su0lq*fIeHM!KKcN% zj8IAfSB85Me6+ph{1xzji2@4pyWvsov<~+cS>T{|FwO2jJzsyWaRjQhnG@mcItJZ3 zzFN38qw4@Kw8*da*t+Igbe8|wQ_OueA-_B|J(tRBEtl2%tnjBPw_$aB))p(w19q*)wS#4ACm9ADbW4zui6;GS zp#TL*j;Z!O>oBQXEBIHk@CRSOe|Gz16xCROrbB05;J3yD$}bwEFFsTTob*BkBE0n~ z+uDDZ-^kSJ|1Hbc#nHSsz8Rkc|5Q_K{(9H!|fa(x-Si=+g4DcU@I^dTDoFM^WLY7we)D?kW zpO^H-^fCMurap-Pz6RwT@C7V?t}Mo-;lKZve;PNBl-)!6|3L|;TDb>cGeN5jd;^)c3lPA0dbuTQ*AAMxzj>bt_ts!1(Y1u3nR1|Z}uz6|5ei{!^IdWC2P*G z0^6z#_Lb3}-Q?WPw64j^D?2R%`#4y4PSXAOv(Q^tnk#_MJ73MuVts58JPY_cZ&p+n zc&BR7ib9l{ds-0~Y2K8j17!=LWr5a!H&Up`ufCFbwWIGT1>}rh82>H)n?=o>A2s+l z)(Gl@Q}A4n`YGcp{*!YjR=3ERoF@Jl1++V@Qpf!2^?r(aKqyyTBg5z@;=_rsYuIfEk`Y;;RhEDen|kZXIq?np#mmJSwe zoRvLz>AE&3n&!$!(5Y&YPtEzn&U){bS}0#F6YZ$ewqLSmq+@0MCn^7(+P?(s#tTYY z`JX>IBI2))+<)&^UwH*Gixg-6=SZ`RgIEF>IXMB>NX~?n&f3dJ`-H6y+-3ql zD?i{X$o2u|$C02F9z+CzAqIdvN&{hw`^1^}%H_{r}41mHq_PPe)9^l?~v@$C51n?p;CjtzRY)Y=chR>L`gq!eS!K!Po@2> zxwMHCoKrAy_D6U^%MorRYH+g+;%xmk#?#ICKNWYt2&HZ0I(82AH2r$^^G~~ zYk+@xZPNcYvn4Klq)Ok?ju~9^yaef5C=_)WfnrT=pF*5Ug}$5OI>PR{MdfgY-_;g#iBJd?gMZ zL1~~bz3}+|^PSgLH(xwHJq`R1*uMh)qf0CkL4_0pMg^0`s8}%m$5+(8m2sr#%{OuY zW)(El_DF0Z`^^A3xGgnZgF@w&Do^1~>WEN#sWqtTUu~dS`&dKisP`L_>#V9|G&hu6 zm4yMdou^zUe`H)_$TcEcyt4I1cG2w9)%;AhYK8G>Ha^D}#RT>9+gM?{ZJnJPzApc5 z!2d+v*U4gM_Jj51mVr~>;93@TVc7Rjs=sh|eVp`AweeN_G=!gc2Gd+pu5(&p%6jGmb}zK+>j<{bU| zJ3?Kh1cLoFb@?0QT)|Zj=D>mn!=}J=uOHykj2{M2tI&I%O@a>%`VWyo>jOELq3`|- zYaWX(vY;L+Y{{UOaz`$A~TwlVuGkHXiJ6D*tI3-YBN1THNR*cZ=$?Yr0B~tDXbTTN0Mm$xH;^7Pvt;M zP=}xJ=Erl=nzJz=C$|Jm07ZP?t+{LnLsU*vO@n^`V;-kZIr#&zd8_LZt}}S5sr{xa ze=Y{0tv_4$&aD7(Wq+oY$wdN&>N~PHTI0K5_Eg*9SJe!d{rDrw@5u-M&&OBk9lx*j z{^~$TZiN^#*dOw|?+ngFl<({Njq%REqKr^kSc~5V{{&FclM=0?W6_48P@s8*v3wc{ z!q4yZQ+fEDGdpFLLeXE!Eb5iOTK)xtMJ*`QLL@nSc@uN_yEj^X?MDjkxxuLJ zbGx$vs4cQ9a;00Zp_l!u!`E@r7S|z2s#<=(QY-L%bFP23GGl0$tF`FXv>Hvf+fwQo zJ&B1%rR(K03%IYXE%GAzITS9&bi8pCq>7g4x+Xn!hF-3uUjRtYGTB|wevByIi5{-H_SvLf4<0^&8=UT!piFFyotzy_3~c^5vNN=VVq_*@Ao$~e=PPil zhrI~_y`ZhFoih}@l8d49pXbsRwpLK|q692Z^g?!y#wLygS`1%*!=M92uV`ZAOz;(t znt_g;m4KO%gN~Dtlaq;nk&)@o3}%KuGdRAUDM;||*Ee#uu(SQT00F&DJ2|@;TiE?s4hv@!8z=rhQdt8V6W%|IMfd+wEY^Qs zEH)N8Rt5$JMpgnQrvGjbcD6q=nFyFz{?#T-|5=;3x|mox(SNm$y`7WAAI(T>U~lpF zmSOwHMc`y4U}XLa{i`!EFcUDc{zd&CV*jfveZjjpnf#rW{U6gZGI0J4m+6cCKf(PM z9i62Uot>i@{og4${y8NR3jxc&>y(*|fbE}Eshf$dhk-4vwSlb}{lAX?j?DSbky)7j zCo(Gw-B-8%qhJ3gPg}`S=L_8a>^!FLc&ptvGFcYHP2Z{N0^@0>l8mWR~%eSP*!?$}(Ys93S8j zJik_nNNTM$yPWH&=;T^PCDIdZzAJD4YDlb((dC_67uO$1yRDDt8cJRT*G5FNPJ2#(ApAR)-A- z%CrYedl!N6HJQ^g@47tBhK}xjR1=*G94z4~%yB5XYMmFmA5+e7t4n2yAj7FwyX7OP zGp?mlYW8v{b92=T-z{nE**bgwl^g6U!lX<%x9M(?8=jMeHf`~tlLVQ|hnPo4W@ByJ z5FHgoa0jW9oAAf&$3xZcgP>h;v7#C%{JsU=QW3V~{Gu!1du`pmFbhdO<6Ys*va6zf za*wXxka5?j(_1M8Pba|ou;|y{1 zy`nMTSiZYDy?FUL*uqK^QMwfa|3tPj zo1S3j`=+rGPxyHU>`pcj2vmyO*m{ZG=xsZ3yC%t-1`~!wR|X!d|BQAubbc4&kIpcI zK<9x`-`pe2yftD3W$(KhqxKe8og{!Kw4tT7-O>!?RUZ_z+wl=PY|r=;8Vsx)VT+-N z(rO)~-mpG?za;%^^+b9IeI1*#FixUw4V+}ERJwJ0!LfCmerNw-l2Ugx&QH+>9q66(CoDC{@!>j7r*Z`T?KHC|S+L_;kJAwadG{tgmM2Q&s*8Cu@ zmQ8W;&fQEu#vF|y8#x`0T~O?eS4phs6j1V18D)-GGk>&^x;-*g_^HoPA6kaoc8}RXx_X z>b$(Du(<8Wr%hW&{aaiIrdY6Le&id1a@aJIJ-|_)m)VnxzBtCcx#P7EFfei+-}*`R zw2%`Yf^;ARdLAH*4nQyksyhISw2VHzIj0wqxqab)cHztu%o!{I8||BBIK20p)v)39see1g*KS2pP#& z9vkkB!Oq8Y)Ff?%f(Hk~D8hfMXzrsC6u9SLPYbA zYCYy+F?l>73<#aD6Sibe&g4)LL_G<^L%w*;z--dUUtn0XH1e{PH**5`{ti;-DZb{u z#Px1zUo#*FTsf-_QP{1eV03Q}rZ&!EVEKb$Q5}EA^#fTH2yzmuf_#%p8&mf8C-}{i z`SLJ4G?4tD>#;hl*lZ<88`3TMsuP?bwX9tbZq>XUG<}o3BGJje;pG5VrArY_bjgnD zxIBPzE!sINR`9S0?w)dn(uCp#nna!6bO@UN;a0?hZb)qD$^!>Ksj<`cTO*#?g0H z+gUG<{HXod=YpoYvh0kF)w)e8bx8Z_^Dx2dbk7lWd}a#FuKsi0Jsfg`PWEc6@*j@E z!#V?NJM_Jaj-gWc^^L}yyaXGpvfSqZ%NS=259%G^{ZMy^EBguRhVWDSkJvvkQuP?l zaSy$`8LR3iSfm(^0O@a+#EJR*>td(9G3Baye*-@ezl8GRHK?P*UD>a6n?57GS5-Z| z#Guk>k}JX;lg1t^#6CK}dzLg7<(IzoL$T73^HILwecyZxPHPL^ubW<6Moid8ifva`^YnWU)gw~=KE-LP8`svbLw>`9e^^jf ze~sVzO~=I7$8y7^-&#OpDwpMgS!5SKpIg4Zfwb#>-fYSH`1SMiy2|>C3*J@23hYRE-@g-q9-c1FYWcQe+nVK^mQ+ zdhN-Zy{=6TzZT@DyXM2|%#H`-9YL6)Eqalr2AZ!qYt=;mh~9l(m8S4kzG;EASIj-hCHZ z&1|kJX+FX$X$D*2%2bVXj~wtvSVCvqxR#rJ4#_U<&~>c6x`^9-j5+za)=)>>#qJz% zqJI`XS%&b%0%zRgJ?x^~+99p;CL3~IM)LK=;yzB*u2^|nyEL%9bQ@{dWY zmV{dN;-*HwkJPO1ALOfD9nclb*tdPfy*KN+@Ja6)HdtV4YI^uNoaCtmwcc+kJ-)*s z$%}{6X?AIQFQTQOH;CAFrC!tA5sS`DtHeLvIe$aT+Sg8|{tM5oZ+M;*Kfz9W%25Zn ziSBETVWTLl6pEYM_m@i1({fn;+!#&EW$sHN`q$Px1CLg5w{^GfTjUa}{=u5%4rAFa z*kcabS8(RC*?T7vx;qs&!hKe|)bBU;nwB=2vEdW{Gxa<98fp zmqFFJn3}V0s2zNVo8GsfJ4KH?x=btKok&pgU+mB78Af%GdE1qqeOb~;=f4PUEi0QWQl{vTa;GG3(v5a08KX%jpm7#lklK6H! z4}Bw%{5|$sf-bXe?jypld7ML(m}G1ax8t%ZO$*FNc78-WIg6o>1r*7{X~edMWDJ)W zSxww3t<-vhSmsiilAAASR%xK~dokXS;A*QWek;tF`l0p}3a^0lRfRn>mVHy&n8MYj<*^<&9 z*(_dgo?=k^6K=)P!=W|N5231)I`Hq>GO4v0wc#1Cg&L)V-Fzg*QY~9szuTraMtOZ_BarY{?2nnu zg-&1Q`9=7;Oh?uU_Ji_4b8Mx{zZbv?hnT)V=Dy+XyLZczq0`UyUPq(jmRq_^Y;3^M z?|ZuLVZQ`ve_~|e_pJ8jx=)r2|CDm*%c0&|zATqGe8I~3zOi~6eC`nJfzgA%JWO`>Yi7W|E?5C=6e??D*emKAeNKO zKDFJ%_=&Q=ULbo$fL`S@)Kh{h|?ymY=>qZSj&9N+H1payJHR>$LrYknc0MocsaR5XhWwP=AkpoH4PBC& zhiE#y7;&o0&U&6~sl@`qj!3GBvfotkIm1{KVbkB}d4x-6usgPDmI>7d^gBjMx&(K3 z@N{9H`ZdQtfnIED;mcI8Aa(h}t8N@Mu)<9DSaZJG3Wy37F}u4E+7I9J$9xfN80n!{&m9usJixcz>h(P z^P+Z<>V@cWT?M6AUxN2EF~?eeJ@~E1#~HLoYWv%U%QN8kd#({JE7kR%JW!HRcKJV6 zcqwRA1!6t-j#wpvdiK3XX)J zmgcj0>z~BoZG+h_pTuOQ#aO!TU7+2jSkx=SOp0W&~Ul zTn%-&L-)C&(KXF)%apOSPuAXSxec4!(0T+Z7uP?pxDA*KcH}g#g1Uc?EfvgRLc9f6 zeWq&mj1}j@0o+!zn|lQ?3ZEnS0r2xJmNjeGj@5GsQ zYreLx{oG7L1#(i6D0oMH@V8JzC268!yd(im7P7BPl3~ipw9jH^C7U~QQLeMKN>J{* zd}ESxQ@nG>O@O(Sp(fvo6lV*NmSU7egbaDHMTGP_JHt%Ci4&)}`#b|$5eM76qd_ki zW`ga+HMkCSYtw#TSdDRvD8f86!5qAy)9kym=lQ`g6AGGH25fUkwjLxZ!(R@4WYDbQ zbf{%idSq#JnRRy6-HtI@vz%9TdQe(Suo|PxJ?b(SH&)FK^JryqmczWnXa8XtBa}zJ zy>%R$q*CSD3Fo!?OczQWr>wHw5qiW6m()p|`WY_Fc=gmlbLFmbaU+ERpq{Pn@$>+c|`cHT1a-{0Z0U|D@py_cndMTsHh!$QnzU zS9XZLf2hTKGhBrK5O`sxG^pygn`0{xpS$w=nSMM5@QoZ80b(@hQIL<*>*%Ts7$Z~k z+FX|?gc&8HT?k2)fLitW+tKzC_J{A=H>YDmVv9Uo*M(MIi=aMpsTD85{aTZ~$#Qv> zP!kO~I0zL`T1i1Dd_K^RJKAbIi&XwP%r!N4s36xlHpIq4-OI*eWT~WeEf_Bj!4JAf zAr#v+0yJK;WxN0u%Xm!j`c^&=qL_r6xsnreV)EOH#6!kAKEq^>e(1yMB+1L2=M{=@ zxK=%&&@es;0nyu#Ad!QRXJvzO6JpYM{SabziiHORdPE3GYF%NLsdC3e%%}hoAt;8H zo1xqK$+>tcG3aciaMVTnGv3wco z4ggr&s?AQ?tf%mxzb~vTEgS6fAuY@aw84p@*0yV+dx9e&ZTa~o^uB{9^pCvt&R?iJ zXQ|wo>44PmB09H{PEQVG@jBYHmFA7Mh(%edXB=Jsq))DZvE2{g!7M3@P|F9^Nn}pvCUglO}i89+NA;I9m2wC!_FPX|~>wU{p z+EOPnLVCYb0bxe|#p$}vkkB@iW8q^FZfU_7xTxwjFxfhBFbP+nB6j&3T^&&%V$%ugJj9GFbiY}t082!5Mv$K;#O9k|-qmH2^$zlJ-z;UgLwBnV% z|IHi_EI4pv`B9PM1E($waGZ?;^hT45y$xX8UYdh+D*s*gJkKYXyNRp={YhOr>w5o1=#hKL#W`$N5=8$ zt)kAMfqS(+Q7%vkTs?4zn_UrhQfx>>yqF{Tp4QmV-Xa*|mFUhktenoW<4{1w`?V99oIVt-&y3`Q#8QQ| zUhHwvu(d{~z_(3Pfc>s~qxa@zf%%N8dz9uG1bV4cM51rdw=9Cv1~uVtk29o6bOKj& z@#umIMlBmGr~|c0q=lg|fIILyXsIW)?O5v9LsJ)J;SJ>{m#{v{yLM$tkP)x9NC3%h zJ<0poZ_7|Q=_#FWHgz^g`nS2s0mpJ>J4&3Ze<&~ur=2^BW{*XA-xbQ1?-<{w@n2=i#3w?M#oI z83522NCU$nl#se?U6AI4s(F3b(v{i>pCc~8`;~eDP_p7d*}!c}XHSz(kV-&ps%Ga8 z814Nr6-WR+4C@tX&WF@&uNbo#P{WJI+?lQeKzsqEaDK-Z5Z^f|2*bAm#fCKw02nl! z)FQ3HBvR`O49W2I?$;C#afk~B5b&fqgoCv%s51)d5NHDIgvlyIPK^On2Mekvq1aFW zfb?1bPYC^Hx*F-?oDRl*r>HLbmJE;V33VgdO#DcpA`e2rI?yz8ZMHHDx>MPI`vincfef{rE+4Ia8T~g6&S$}7SX4v9r(w8AHC}&~9t6ZwCQNdOU1SNz;EpKm>iw;A(57VOjS?*Ukw{`UVPWl(A%J!s>Sjv4jsyS-4L|KDm{c zs(E$oNq7%pOT3?yMj;Rc3&$ciFhK<5Eq+$XW{FlA>|=kX{E$m0Bh)C8m&B6!4YqR> zkkKYJTO-0a$dgrxwihD1YFd^@2TJulWi7nC4f#6co#khgf^WC$U|tE<9P!%5aK*p9i!>G zG^Z+{C00#T*rm|(b?gCMh|VR)9T#iT(Nam9SlEgLW3nye7bWyT!_5NH5pYkF2KX7n zHTwr1S~A8O1?!V)74m{@O3VuQ?z=M_;~`S)HMA8}yFzFaOpZ*tLA)|m^h2WgL?I)( zAS^s<(KJB&cGeV$`_yfQTWIq5WvWt^Zzr~wns1vKm51^X*)*u(9g_Rz>++)OSelh( z?J1*V0zHy{_wB$QW)BuByN572CFFVU@9nTZpJx5Y)K1R(TK~&$eV|1`GxYQ|bxQP? z~d00L_>y%i7RqFWtWu<+2s28%M8fMlGj;= zQ%VQW3jyQ<(_|RcJpMYF>?V-+NM;Mr74WX2K+6^t_IGaylSPGT82)}qQjf&K1RSD8 zen^>b5C{3tAz<~+3hbrx)ibhai;?9cl4>qBG7ib+NO?3eKnkwjD}APL%D5f82sSEF z1yt5%UW^mHQw`2m0(9`=EgC^Agng4(@v{aEAjXa>TP4T_q&RI8EJ5f}{@3jem;|HA zUuz|?K{Fsz_F&H`a%`XOfCqmVpuKZ*Jo(-7{Fm=RgCnLu&`mb z4V{$ImOdJ?puBXK^d`Oty}OC1@!hLUhFC+}4}C4M(Qyht`+Ts#W}}QZu_W7s+iq>6 z)=}6HR_K)k!%Rvpufo^kx5{2HKxS#{M1cp=rH~la;4@Sg#cl+KH_c#at|LClaT`hk zf|DREm(Jffj}#1g#DF18h~Qcc?vd4{i5UT~f`jD}J*~Xy{L2Y~i+a8{!WPg;$Kdjo zvKc-D@5Bm^-8l`(7M{ZHm2V9lzlCUJ+M{j zDoS&3kx(N4*>TmE0khBt=_9nweYTo1JQ}xr(DGMR6#Xg16b-VBxup@djy_}7vSL%) zAu0E@l^)~J7c56Nt9sX0RtxMFo52Anw|j}Th$>O97h!`?Yt7^53=2r>7@3WnSDOvo ze&owoOqk0lrxYE&`SR|I;=m4xmo%OJ4Q<{1%ZcOOO~Qn)t!;LnW`A=fdM(i6$%v0@ zFh^D9eC2mJtQiw3^YFdMyOZK`b-jeU*3W+Jk@)rN&{2$ejB!V4_ww}4O?4jWVg35d zxZbUTH6k*2mII8sx!_=m@e)($lR0Vea9_hKbyc8mSYBmK%jo;fT=X>devfkuQB7>s zw!$#}wW|3G=ySV7UDS!AK`?h{ztB+7G1bL=GI;(1lu%zC|&sZOtk{0&LhmnY*>xy(7tb35X)95XKIa z*8{RZ1S2Gxov6;NqSN0B$`va&%*K&i)~Q}s(&Y~>3D~0ylWjaguX=I`DO{aWIH^wA zQWRy7oT;&+6Vd!X4`3shu2BMA65*&9o!AAl^hb;eOBbMsjZGjK6J}*7a$%KMCX(I4 z6LAD_EMz9CVaLz?$u~7T(FIu%DF~G}4;sz6DVFL{yLBxY5uAZ6#BBPR>P<<-fMEeX z=4`4fwVb6ZLdTT3+Ljgyfy~Vlq8X4+(u0V#B@v>;>6in?ursGte_zL@Sx3p`g447v zng%U3a{!3~8;?!k!ggHtXq*V_%vuSRlgI}-4XYROU`jSPRt6k0>s#&A+wS4tQ9DI2 zU$6XfrS!ccm$7m}60kX_E{Q?uKFrk7API{?01KILA5fZs$7j-P zp}Ps}V#UH~gDOmE=P`0?C6}OPTFWHkKTN>I|Iu>jhg_jPsH4OEG1l(@Xh%Q2GPK zm_BOhkNOrYtmr_N-3^4V)S*;3u<{RV4``7Gne1N}HQ+QcRh{?fj#u{f2`&Y~CE$`N zlOnnL2Nvv0EEII3M$G}#)S|3!?GX} zbxYC(ul*tmNI$@I(-77<&Cs^^V_FJ<@Trus5QVAJ=Q4~m7#@RU1ozbLn*kde+!HINuof%E*fDLu2YZqM-5vNNGK7znO zeoA0nc?1Hid03m-D)>O)sH*u%nTl%Q>O>cKMagKp!AXNM0mH^`k!%2|*GMo|S*c)` z5JEKi2su&r@Me;7{2x?RO*ea^>Zww7N$XWQ7Zz9Q2hMcL2_o5oXjpd);kbuOXi=Xl z+#3lfx&R{}>y@yl$wec{_h6#c&~@r1Hc^ER9+~V0Oje^<%RNptOp1)bL>_YPLb*=@ zQR+*4l)+ue58#)5VXybMxppJJ)JD&xYe2}d)%2p%>|F0FU--mp0Bt5wZ+_UA-b4vN zQYasZq{lPCD@A4vt%cka69A@3&sg=tE=k|BO2qc`9cWby8oG{19KuTdv_`lJbQwne zwxMpFXa05XEhyrmq33W;HF;%Y!Gd&N9@WY;cg>cjH{kqu2p zx**3N;!L|VsWCxm+DX#sYSS$il5{0LiIZIqU3OQkN^5I3)fY1wGzt3npo8I?oqlu+J5O{2c3bmS7E=U@j z4B$nFrw5c36B#*GGaeGsMTbRjj5k1I!Aj7Go4_iC)QgWz@9TKy@-cF+{KUVSxG>*O zY@VTeXM-!lUNds%GFmnoevb< zRKwMLh)rg2?I_wU85GskoSk*DXO_fA%rUKCF%|*O)oli=ez@b3KjGtPQLySd@qARr zSMd4vhZw+!2N~eaP<|Op_Qk2d2u7@3_)r<^>~v}xw?>k7ck6X{EX7}i8{;iTF-Mc% zsI7Cl&(@5N*)nr2RBOKno#V=rZenD)!_02h&4-pAug#}7(m|GmnR5lb>^U&guM1_V z<}q~BOL9X?q}eS^OsUVeFU*HrXKC1bX%V84EOud)cR7@ttH{$TQJO3*oA&p~Hf425 zdHjUSw4t#uW5`0iZ-jDA!hVRV&pJjZ3$c=Iq+JfwixwSQLJR1eD)Ef;hJAj4C$nA-#a_%Y=YGuWFbblI!VO+UoaD|9O-yMdzhIJ znH5`8CBs$ZO!7GeguZjqGfZ4ZW3v}#_$KItVpJzoj-I^c-Z-l!n*_u}gB_eygFJ{n zdefi|Vz~@A<5nL|qD!+JKEzrK^9SNI!oI?_Ud3xbbYjP3=NMQtZi8JKj(2#bUN>o^ z&OH#flC|k=cqHD1L)$ab|Fk`qYLDrSjGp7nS*X1x2$%%`7fOIK&Q+=-?ARzCredw2 zN)`5|IwpE#tM_9O+1OMjYI5d3!el?3tw!umk?+X#SWXE3-AB&#%XP-nE0@#6d21$m=vja_f!5q1R)pz}XeF4gS0a@$kI$4NOG zNkG**RVSJ4cY*3?f)RKZlw_=@N2F+0Y+HoT5UI1$v_NJ$ER){Mp}Dtn$H!nRv@T&y z4<#g&wk6W{BA3#d6v%cV-8_b^F{G~#s0j9rj(ZTyQJ>SD(aFXz#ad0tuf%DC zO%bBBsmIn(3MpLG4}jEhL((yDvGgjN;4#LhzU4pxo30~h#7pe`%sBo*1i#(Xf}5>< z;ft1?(_XCaswo1ZN{k;byr%x`4J06Q!IX=a zEJgiobhm;PjnrVF!x#99cTjqhrEdqL7!%VaPa=N%v#vQ|=1NS1q&)*sDZjyJkb3)E44tCPxeT1ic=8|?+}0;%@6>lu z8>M6ACRM0wD<^oP^bgI_y6~(57%&aURaL~XV#0tjND5?TaY?Dqs4n(leR#8@`de}jqsOa?Zpg=J8ty}e0uEM@2NmmfPznJ&*IqEcQ9W$oIbvX>)m+%T9jp(PtR_aRHjI3xp0%*F9mP zEt{#o!9;x~_wR|9->8_q#2VbhOywHfFw^+{^$h<0y=`~(H@|NTI=KJ4@5A&zd>>&! z0!Ao$BZEIuX<-6}uT=8SRPB!(8RdGJCq1oX0Yjy49?|JHE6q=NsR zJpZ4{L(H6iSU2o{DH9xD@&w~o#-9`Y+1Z%>i9qy+zC>$e{v{86P2o3jqW^!K|IJrm z`sd~i2Rq%@tFZlLCvXsOa{hVF{*TJ=mjq>GXKUj0ci?~S*)TG&{+*bS@n1#w50EYX zB>X?xD@^~~v0-8R)BRxha#+|o=~(`f%>IOB;bi@nb@rbLO@G$!-z)Z?%QpYUW&Y~H zf8qXRm$CmP;rw6Vy1BX08G1OI7#rAr`DK5oaeoK?=c>)WftffM{|lIn?Z4iKOq}fh zS9Sd5@%_PUYUgNTW9Q^-=4j_)@ASWeGyf0u=06-g{teE^!u&7rKlDRpI@Ygog!5m} z|9_pa|DrZWB+iZoPY@R^ZR8(W|&%DJ$Qw%6IxG}KBC-txHc+~2Cdex)jf77+|d%l9+dX%&t8(QeiqhCmOURU8lZ2q3O zwBLj&E<@2Mv3vMHsHf4!tCQSKh5`(*ch+=cs&pjD-#LqE?#+TIV39J%2b{vjqG)+q zS@n=9N-5nrgg~3Sz(}#rJTbp{$F+L|*#%N;h5q~1S?~M1kEfhFj}$Ct0dqW89ScPi zpU!E-5YbKd;B_`ErX;ZwTpUnBJpN|#_-FUeU>=e_?x*jLsu4WdF}`!~)iidY{#y#$ zI$?y`At-C0d~85ehuN$+&_Gxg%5n67Iq|wqa|jdIWzj|~B~uhx9d%FLl~)9*&VCSrKEOEhNm&I+iX}MY&^x+f~KU|eAWezhVMQzn& z{7$YAl=s#^jQ4zdSh1vzGDj{X1%(NlCCD5d@g)I7im*@fYjqQU5|9B+vSX=|U@5d` z*yICO>??>%_*m2_#oY2e*5lb41oq%Ah0SpDmlR_6;j@TD!)3bAJt$Ndc+zFfl~6)t zz}x1cP(ADa&YtO+mKifH-K~)(BBX1>VP6A+UanhliRemHjkb2Ime3k17N;N=Vft+@ zvvLcT!FNlrK%PI;a7D^l8H#aOWC;;ZsrgAs27o+8K%xYqB5ZC~WagQ}S`sc`-Q8{A z6!9yWRHAd-Ne?-+E9T@|@7FC158IvXEMlsM@D0YVWiw3RejI&EVvkaw4ePMBlo&j; zzmSXK>s-kqVuKw05n|EzJvjOC_d~LU>={pLy4VZhQNjno5g>wZ!9fj%ztaS<&h4_x zjv&1M0s4_Z=~Ey89tbbMyceec6&{)Yf^e*HBs0{E{(7WDLW&h5AXg$&kvk!G$NL{I`u-tghAZsEt+o@RR+D%Mns0Vr&0^R-EIo- zfJf!vJ(OpF*92z?4zZp9*oAoha9`UgDZ2Xt@D9d3fGBZ&dz>c#UQsT{cZIlU(zCCt z-Twe@yBpv<+s$#xhz3`X>kpUm6%sF3L3% z;S~=u>033VFU{9SO=vBAC*|;#`*EES2y`eVPhcbn1(%oWkf}X3%(>lwHQamnyZb5J zd<>_xY#&?7&6;!L3=4ZB0UYu4q^COjG>uDV(>|?tX3Ry$i}5>OYILP-Nl0s?y_d4p z&o5u+RNN3Vg3%6!GelHJkAvb`G~L#HE^`3hf%}`5*AHrVZ`_V*@j;M;P9rxIM(*35 z65hm+UMs!}oU4yh3-;ur?aR?^sZq%vnsc`#+QbTqm}aNv1j+6biHaSbw;k?fI4!(_vvs60rxHn#!sLi;E!R9-Qu%)^xvqQk4^E=NpVMa;)} zbmxLV=ep2VNImDNC=?KC0iSL#RT`b1Um$kJa4%Jx%-*S&xcQdS&T07sqTVN5-B zJCRA?0xO=AkdOp#K%2<8`cDYBK}hz-q>y%|th$jIpK|CQ<*fOE@z{3B{@-9IAlU$b zUha(X1Td?b@`ttr1f%>{R~(TL>M%@Y>44^~UK>N|&_>~*Z5i

RQ3F^+00D&ZjSF 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 hNAFf(2@juLft!*ArMWT2 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 - - - - - - - - - - - -

-
-
-
-

- - Nick Graffis | - +1 (562) 879 - 2558 | - me@nickgraffis.space - -

- Long Beach, Calif. - - LinkedIn icon - Linkdin /nick-graffis-48162b48 - - - GitHub icon - GitHub @nickgraffis - - nickgraffis.space -
-

-
-

- - Highly dynamic and adaptive, combining creativity and critical thinking to solve complex problems. - Known amoung collegues for strong collaboration skills, leadership qualities and a keen eye for design. - -

-

- Software engineer with a stack that includes front end and back end, and multiple languages and frameworks. - Four years of experience in software development building tools quickly, efficently, without sacraficing quality and care. - Great problem solver that quickly can identify and methodically solve issues. -

-
-
-

Skills

-
-

Languages

-
-
-
-

JavaScript

-

-
-
-

TypeScript

-

-
-
-

PHP

-

-
-
-

CSS3

-

-
-
-

HTML5

-

-
-
-

Python

-

-
-
-

C

-

-
-
-
-

Tools

-
-
-
-

Node

-

-
-
-

Deno

-

-
-
-

MySQL

-

-
-
-

MongoDB

-

-
-
-

Heroku

-

-
-
-

Bulma

-

-
-
-

Bootstrap

-

-
-
-

TailwindCSS

-

-
-
-

GitHub

-

-
-
-

Express

-

-
-
-

Vue

-

-
-
-

React

-

-
- -
-

Education

-
-
-
- - - - - - B.A. California State University, Long Beach | 2015 -
-
-
-
- - - - Certificate, UC Irvine Coding Bootcamp | 2021 -
-
-
-
- - - - Certificate, Harvard CS50 X, W and AI | 2021 -
-
-
-
-
-
-
-

Projects

-
-
-
-
-
- - - -
-
-
-
-
- Babelbox - - January, 2021 -
-

Lead Project Engineer & Designer

-

babelbox.herokuapp.com

-
-
JavaScript
-
Node
-
MySQL
-
Heroku
-
TailwindCSS
-
CSS3
-
HTML5
-
Handlebars
-
Express
-
Web Sockets
-
-
    -
  • Uses web sockets and channels to display realtime updates to users within the same channel, or portal.
  • -
  • Stores data in MySQL database. Present it to users in a fun, well designed, ui.
  • -
-
-
- -
-
-
- - - -
-
-
-
-
- Youmoji - - January, 2021 -
-

Solo Developer

-

youmoji.app

-
-
JavaScript
-
GitHub
-
TailwindCSS
-
CSS3
-
HTML5
-
-
    -
  • I created a program to go though twemoji svg files and remove all unwanted paths.
  • -
  • The web app allows you to go through the different twemoji skins and put them ontop of each other, then download a png!
  • -
-
-
-
-
-
- - - -
-
-
-
-
- Weather App - - October, 2020 -
-

Solo Developer

-

https://nickgraffis.github.io/weather-app/

-
-
JavaScript
-
GitHub
-
TailwindCSS
-
CSS3
-
HTML5
-
-
    -
  • I created a sleek UI and thoughtful user interface.
  • -
  • All with 100% vanilla js, there a tons of programs to turn complicated weather data into readable information.
  • -
-
-
-
-
-

Projects Cont.

-
-
-
-
-
- - - -
-
-
-
-
- Water Polo Coach - - 2010 - present -
-
-
- Adjunct Assistant at Cypress/Orange Coast College - - 2017 - present -
-
- Head Coach at Edison High School - - 2014 - present -
-
- Youth Director at Vanguard Aquatics - - 2010 - present -
-
-

- Over the span of my eleven year career as a water polo coach, I have started a - non-profit corporation and helped build one of the best water polo clubs in the country. As - a teacher and coach I have created a community of athletes acheieving success at the highest level - in education, athletics, and personal growth. -

-
-
-
-
-
-
- - - + + + + + + + + + + {{basics.name}} - Résumé + + + {{> index}} + + + \ No newline at end of file diff --git a/main.js b/main.js new file mode 100644 index 0000000..dca9ae6 --- /dev/null +++ b/main.js @@ -0,0 +1 @@ +import 'virtual:windi.css' \ No newline at end of file diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 0000000..f0b5f38 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,21 @@ +# example netlify.toml +[build] + command = "npm run build" + functions = "netlify/functions" + publish = "dist" + + ## Uncomment to use this redirect for Single Page Applications like create-react-app. + ## Not needed for static site generators. + #[[redirects]] + # from = "/*" + # to = "/index.html" + # status = 200 + + ## (optional) Settings for Netlify Dev + ## https://github.com/netlify/cli/blob/main/docs/netlify-dev.md#project-detection + #[dev] + # command = "yarn start" # Command to start your dev server + # port = 3000 # Port that the dev server will be listening on + # publish = "dist" # Folder with the static content for _redirect file + + ## more info on configuring this file: https://www.netlify.com/docs/netlify-toml-reference/ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..23aa195 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3761 @@ +{ + "name": "resume", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "jsdom": "^16.5.3", + "puppeteer": "^9.1.1", + "vite": "^2.3.3", + "vite-plugin-handlebars": "^1.5.1" + }, + "devDependencies": { + "optimist": "^0.6.1", + "vite-plugin-windicss": "^0.15.10", + "windicss": "^3.0.9" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@types/node": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.6.0.tgz", + "integrity": "sha512-gCYSfQpy+LYhOFTKAeE8BkyGqaxmlFxe+n4DKM6DR0wzw/HISUE/hAmkC/KT8Sw5PCJblqg062b3z9gucv3k0A==", + "optional": true + }, + "node_modules/@types/yauzl": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", + "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@windicss/plugin-utils": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-0.15.10.tgz", + "integrity": "sha512-xhC/d2oqjN1XEjXzG1+8YLOXiktIq3kPXOH3Rv0XOGdmN27XV7eur5g/yXE0fQ8xGrrzOijUb3qAItTgCO1hFA==", + "dev": true, + "dependencies": { + "debug": "^4.3.2", + "fast-glob": "^3.2.5", + "magic-string": "^0.25.7", + "micromatch": "^4.0.4", + "pirates": "^4.0.1", + "sucrase": "^3.18.1", + "windicss": "^2.5.14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@windicss/plugin-utils/node_modules/windicss": { + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/windicss/-/windicss-2.5.14.tgz", + "integrity": "sha512-8Lm7U1M5AzJPbiaVSVz7qWdETRzlkv//5LBMICBBAojos1jo09lUGhNZ5rBzHeldB9JmqYMDOGgrrXHExu0EAg==", + "dev": true, + "bin": { + "windicss": "cli/index.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "node_modules/acorn": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "engines": { + "node": "*" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==" + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/devtools-protocol": { + "version": "0.0.869402", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.869402.tgz", + "integrity": "sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA==" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/esbuild": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.23.tgz", + "integrity": "sha512-iaiZZ9vUF5wJV8ob1tl+5aJTrwDczlvGP0JoMmnpC2B0ppiMCu8n8gmy5ZTGl5bcG081XBVn+U+jP+mPFm5T5Q==", + "bin": { + "esbuild": "bin/esbuild" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "node_modules/fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/handlebars/node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "node_modules/jsdom": { + "version": "16.5.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.3.tgz", + "integrity": "sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.1.0", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.9", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.4", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "dependencies": { + "mime-db": "1.47.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "dependencies": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "dependencies": { + "node-modules-regexp": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz", + "integrity": "sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==", + "dependencies": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/puppeteer": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-9.1.1.tgz", + "integrity": "sha512-W+nOulP2tYd/ZG99WuZC/I5ljjQQ7EUw/jQGcIb9eu8mDlZxNY2SgcJXTLG9h5gRvqA3uJOe4hZXYsd3EqioMw==", + "hasInstallScript": true, + "dependencies": { + "debug": "^4.1.0", + "devtools-protocol": "0.0.869402", + "extract-zip": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "pkg-dir": "^4.2.0", + "progress": "^2.0.1", + "proxy-from-env": "^1.1.0", + "rimraf": "^3.0.2", + "tar-fs": "^2.0.0", + "unbzip2-stream": "^1.3.3", + "ws": "^7.2.3" + }, + "engines": { + "node": ">=10.18.1" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dependencies": { + "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "dependencies": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.12.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.48.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.48.0.tgz", + "integrity": "sha512-wl9ZSSSsi5579oscSDYSzGn092tCS076YB+TQrzsGuSfYyJeep8eEWj0eaRjuC5McuMNmcnR8icBqiE/FWNB1A==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/sucrase": { + "version": "3.18.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.18.1.tgz", + "integrity": "sha512-TRyO38wwOPhLLlM8QLOG3TgMj0FKk+arlTrS9pRAanF8cAcHvgRPKIYWGO25mPSp/Rj87zMMTjFfkqIZGI6ZdA==", + "dev": true, + "dependencies": { + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/uglify-js": { + "version": "3.13.7", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.7.tgz", + "integrity": "sha512-1Psi2MmnZJbnEsgJJIlfnd7tFlJfitusmR7zDI8lXlFI0ACD4/Rm/xdrU8bh6zF0i74aiVoBtkRiFulkrmh3AA==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vite": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.3.3.tgz", + "integrity": "sha512-eO1iwRbn3/BfkNVMNJDeANAFCZ5NobYOFPu7IqfY7DcI7I9nFGjJIZid0EViTmLDGwwSUPmRAq3cRBbO3+DsMA==", + "dependencies": { + "esbuild": "^0.11.23", + "postcss": "^8.2.10", + "resolve": "^1.19.0", + "rollup": "^2.38.5" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": ">=12.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/vite-plugin-handlebars": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/vite-plugin-handlebars/-/vite-plugin-handlebars-1.5.1.tgz", + "integrity": "sha512-rmEeoeCvSSz2ovohDSgovdQ/bcVwEGKcPI0SunZeV+HPI4g8tALI0oMHRhzdAl51sadNniqaXnXjy+6ymFmQXQ==", + "dependencies": { + "handlebars": "^4.7.6" + } + }, + "node_modules/vite-plugin-windicss": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-0.15.10.tgz", + "integrity": "sha512-6thupz/vOt6XTIHZGRd8vVwjmC+8/FNgdhZGfyp2gnkPxC4SKUa4wZFpLBhirw+ApP8vdm9oVpe2liBZdQIwIg==", + "dev": true, + "dependencies": { + "@windicss/plugin-utils": "0.15.10", + "chalk": "^4.1.0", + "debug": "^4.3.2", + "windicss": "^2.5.14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.0.1" + } + }, + "node_modules/vite-plugin-windicss/node_modules/windicss": { + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/windicss/-/windicss-2.5.14.tgz", + "integrity": "sha512-8Lm7U1M5AzJPbiaVSVz7qWdETRzlkv//5LBMICBBAojos1jo09lUGhNZ5rBzHeldB9JmqYMDOGgrrXHExu0EAg==", + "dev": true, + "bin": { + "windicss": "cli/index.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz", + "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/windicss": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/windicss/-/windicss-3.0.9.tgz", + "integrity": "sha512-pv/SnYPfqYwz25672irDzNZpcEK/QlN9Dlhe2KUQXDjqd46wl/zLAi51BNB0pdfDZDbNjyvI1XgDXHk1oFF51A==", + "dev": true, + "bin": { + "windicss": "cli/index.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/ws": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", + "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + }, + "dependencies": { + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@types/node": { + "version": "15.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.6.0.tgz", + "integrity": "sha512-gCYSfQpy+LYhOFTKAeE8BkyGqaxmlFxe+n4DKM6DR0wzw/HISUE/hAmkC/KT8Sw5PCJblqg062b3z9gucv3k0A==", + "optional": true + }, + "@types/yauzl": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz", + "integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==", + "optional": true, + "requires": { + "@types/node": "*" + } + }, + "@windicss/plugin-utils": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-0.15.10.tgz", + "integrity": "sha512-xhC/d2oqjN1XEjXzG1+8YLOXiktIq3kPXOH3Rv0XOGdmN27XV7eur5g/yXE0fQ8xGrrzOijUb3qAItTgCO1hFA==", + "dev": true, + "requires": { + "debug": "^4.3.2", + "fast-glob": "^3.2.5", + "magic-string": "^0.25.7", + "micromatch": "^4.0.4", + "pirates": "^4.0.1", + "sucrase": "^3.18.1", + "windicss": "^2.5.14" + }, + "dependencies": { + "windicss": { + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/windicss/-/windicss-2.5.14.tgz", + "integrity": "sha512-8Lm7U1M5AzJPbiaVSVz7qWdETRzlkv//5LBMICBBAojos1jo09lUGhNZ5rBzHeldB9JmqYMDOGgrrXHExu0EAg==", + "dev": true + } + } + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "acorn": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", + "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==" + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + } + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "devtools-protocol": { + "version": "0.0.869402", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.869402.tgz", + "integrity": "sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "esbuild": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.23.tgz", + "integrity": "sha512-iaiZZ9vUF5wJV8ob1tl+5aJTrwDczlvGP0JoMmnpC2B0ppiMCu8n8gmy5ZTGl5bcG081XBVn+U+jP+mPFm5T5Q==" + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsdom": { + "version": "16.5.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.3.tgz", + "integrity": "sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==", + "requires": { + "abab": "^2.0.5", + "acorn": "^8.1.0", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.9", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.4", + "xml-name-validator": "^3.0.0" + } + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime-db": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" + }, + "mime-types": { + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "requires": { + "mime-db": "1.47.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "postcss": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz", + "integrity": "sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==", + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "puppeteer": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-9.1.1.tgz", + "integrity": "sha512-W+nOulP2tYd/ZG99WuZC/I5ljjQQ7EUw/jQGcIb9eu8mDlZxNY2SgcJXTLG9h5gRvqA3uJOe4hZXYsd3EqioMw==", + "requires": { + "debug": "^4.1.0", + "devtools-protocol": "0.0.869402", + "extract-zip": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "node-fetch": "^2.6.1", + "pkg-dir": "^4.2.0", + "progress": "^2.0.1", + "proxy-from-env": "^1.1.0", + "rimraf": "^3.0.2", + "tar-fs": "^2.0.0", + "unbzip2-stream": "^1.3.3", + "ws": "^7.2.3" + } + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.48.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.48.0.tgz", + "integrity": "sha512-wl9ZSSSsi5579oscSDYSzGn092tCS076YB+TQrzsGuSfYyJeep8eEWj0eaRjuC5McuMNmcnR8icBqiE/FWNB1A==", + "requires": { + "fsevents": "~2.3.1" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "sucrase": { + "version": "3.18.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.18.1.tgz", + "integrity": "sha512-TRyO38wwOPhLLlM8QLOG3TgMj0FKk+arlTrS9pRAanF8cAcHvgRPKIYWGO25mPSp/Rj87zMMTjFfkqIZGI6ZdA==", + "dev": true, + "requires": { + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + } + }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "requires": { + "punycode": "^2.1.1" + } + }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "uglify-js": { + "version": "3.13.7", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.7.tgz", + "integrity": "sha512-1Psi2MmnZJbnEsgJJIlfnd7tFlJfitusmR7zDI8lXlFI0ACD4/Rm/xdrU8bh6zF0i74aiVoBtkRiFulkrmh3AA==", + "optional": true + }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vite": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.3.3.tgz", + "integrity": "sha512-eO1iwRbn3/BfkNVMNJDeANAFCZ5NobYOFPu7IqfY7DcI7I9nFGjJIZid0EViTmLDGwwSUPmRAq3cRBbO3+DsMA==", + "requires": { + "esbuild": "^0.11.23", + "fsevents": "~2.3.1", + "postcss": "^8.2.10", + "resolve": "^1.19.0", + "rollup": "^2.38.5" + } + }, + "vite-plugin-handlebars": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/vite-plugin-handlebars/-/vite-plugin-handlebars-1.5.1.tgz", + "integrity": "sha512-rmEeoeCvSSz2ovohDSgovdQ/bcVwEGKcPI0SunZeV+HPI4g8tALI0oMHRhzdAl51sadNniqaXnXjy+6ymFmQXQ==", + "requires": { + "handlebars": "^4.7.6" + } + }, + "vite-plugin-windicss": { + "version": "0.15.10", + "resolved": "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-0.15.10.tgz", + "integrity": "sha512-6thupz/vOt6XTIHZGRd8vVwjmC+8/FNgdhZGfyp2gnkPxC4SKUa4wZFpLBhirw+ApP8vdm9oVpe2liBZdQIwIg==", + "dev": true, + "requires": { + "@windicss/plugin-utils": "0.15.10", + "chalk": "^4.1.0", + "debug": "^4.3.2", + "windicss": "^2.5.14" + }, + "dependencies": { + "windicss": { + "version": "2.5.14", + "resolved": "https://registry.npmjs.org/windicss/-/windicss-2.5.14.tgz", + "integrity": "sha512-8Lm7U1M5AzJPbiaVSVz7qWdETRzlkv//5LBMICBBAojos1jo09lUGhNZ5rBzHeldB9JmqYMDOGgrrXHExu0EAg==", + "dev": true + } + } + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz", + "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==", + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + } + }, + "windicss": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/windicss/-/windicss-3.0.9.tgz", + "integrity": "sha512-pv/SnYPfqYwz25672irDzNZpcEK/QlN9Dlhe2KUQXDjqd46wl/zLAi51BNB0pdfDZDbNjyvI1XgDXHk1oFF51A==", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", + "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", + "requires": {} + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..4e3e49a --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "resume", + "version": "1.0.0", + "description": "View it [here](https://nickgraffis.github.io/resume/)", + "main": "serve.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "dev": "vite", + "build": "vite build && node build.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/nickgraffis/resume.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/nickgraffis/resume/issues" + }, + "homepage": "https://github.com/nickgraffis/resume#readme", + "devDependencies": { + "optimist": "^0.6.1", + "vite-plugin-windicss": "^0.15.10", + "windicss": "^3.0.9" + }, + "dependencies": { + "jsdom": "^16.5.3", + "puppeteer": "^9.1.1", + "vite": "^2.3.3", + "vite-plugin-handlebars": "^1.5.1" + } +} diff --git a/resume.json b/resume.json new file mode 100644 index 0000000..628f6fe --- /dev/null +++ b/resume.json @@ -0,0 +1,278 @@ +{ + "basics": { + "name": "Nick Graffis", + "picture": "https://nickgraffis.me/nick.png", + "label": "Software Engineer", + "headline": "", + "summary": "I am a software engineer with a stack that includes frontend and backend, and multiple languages and frameworks. Four years of experience in software development building tools quickly, efficiently, without sacrificing quality and care. A great problem solver who can quickly identify and methodically solve issues. Highly dynamic and adaptive; combining creativity and critical thinking to solve complex problems. Known among colleagues for strong collaboration skills, leadership qualities and a keen understanding of design and user needs. \n\n As a self motivated software enthusiest, I have contributed to several major improvements to my company's platform, Model Match, and developed several personal and open source projects, as-well-as contributing to other open source projects.", + "website": "https://nickgraffis.me", + "projects_url": "https://nickgraffis.me/projects", + "username": "nickgraffis", + "email": "hi@nickgraffis.me", + "location": { + "city": "Long Beach, San Fransisco (Remote)", + "region": "California", + "countryCode": "USA" + }, + "profiles": [ + { + "network": "GitHub", + "username": "nickgraffis", + "url": "https://github.com/nickgraffis" + }, + { + "network": "LinkedIn", + "url": "https://www.linkedin.com/in/nickgraffis", + "username": "nickgraffis" + }, + { + "network": "Twitter", + "url": "https://twitter.com/nickgraffistwit", + "username": "nickgraffistwit" + }, + { + "network": "Instagram", + "username": "nicholasgraffis", + "url": "https://instagram.com/nicholasgraffis" + }, + { + "network": "Portfolio", + "username": "nickgraffis", + "url": "https://nickgraffis.me" + } + ] + }, + "skills": [ + { + "keywords": [ + "Typescript", + "Javascript", + "Vue", + "React", + "Svelte", + "Angular", + "RxJs" + ], + "level": "Senior", + "name": "Frontend" + }, + { + "keywords": [ + "Node", + "MongoDB", + "MySQL", + "Serverless", + "Nginx", + "Docker", + "AWS", + "FaunaDB", + "NoSQL" + ], + "level": "Senior", + "name": "Backend" + }, + { + "keywords": [ + "Firebase", + "AWS", + "Azure" + ], + "level": "Intermediate", + "name": "DevOps" + }, + { + "keywords": [ + "Python", + "C/C++", + "Go" + ], + "level": "Intermediate", + "name": "Languages" + }, + { + "keywords": [ + "Figma", + "Adobe Suite", + "CSS", + "GSAP" + ], + "level": "Intermediate", + "name": "Design" + } + ], + "projects": [ + { + "name": "HadenaJS", + "displayName": "i18n Ally", + "summary": "Library for manipulating colors, and an awesome web app to show it off.", + "website": "https://hadena.app", + "githubUrl": "https://github.com/", + "primaryLanguage": "TypeScript" + }, + { + "name": "LocalDB", + "displayName": "@vue/composition-api", + "summary": "Wrapper for quickly working with local storage in javascript.", + "githubUrl": "https://github.com/nickgraffis/localDB", + "primaryLanguage": "JavaScript" + }, + { + "name": "Youmoji", + "displayName": "VueUse", + "summary": "A fun tool to create and download your own emojis from twemoji svg paths.", + "website": "https://youmoji.app/", + "githubUrl": "https://github.com/", + "primaryLanguage": "JavaScript" + }, + { + "name": "Personal Profile", + "displayName": "wenyan-lang", + "summary": "My personal profile, a static site generated with Vite.", + "website": "https://nickgraffis.me", + "githubUrl": "https://github.com/nickgraffis/ng-space", + "primaryLanguage": "TypeScript" + }, + { + "name": "Babelbox", + "displayName": "Babelbox", + "summary": "A collection of fun games to play with your friends either in the same room, or across the globe.", + "githubUrl": "https://babelbox.herokuapp.com", + "githubUrl": "https://github.com", + "primaryLanguage": "JavaScript" + } + ], + "work": [ + { + "company": "Model Match, Inc.", + "position": "Full-stack Software Engineer", + "website": "https://www.modelmatch.com/", + "location": "San Clemente, CA", + "isCurrentRole": true, + "summary": "Improving user experience and data recall/collection using frontend and backend technoligies.", + "highlights": [ + "Developed an improved system for querieing people information, and enriching data with outside sources.", + "Improved indexing and querieing as a whole with ElasticSearch and Dynamo DB. " + ], + "startDate": "2021-03-29", + "start": { + "year": 2021, + "month": 3 + } + }, + { + "company": "Bavel Technoligies, Ltd.", + "position": "Co-Founder, Lead Software Engineer", + "website": "http://www.baveltech.com/", + "location": "Los Angeles, California", + "summary": "Worked on developing POS system in C#.NET and ASP.NET", + "isCurrentRole": true, + "startDate": "2020-12-01", + "start": { + "year": 2020, + "month": 12 + }, + "highlights": [ + "Built several open source projects that make the web more fun.", + "Built a contracted PWA application for sports tournaments and data collection." + ] + } + ], + "publications": [ + { + "name": "Binjiang Front-End Developer Salon, Hangzhou", + "summary": "Talked about the reactivity system and Composition API in Vue.js", + "publisher": "Bingjiang Front-End Union", + "website": "https://wemp.app/posts/5ec27920-8201-4ef2-9027-92b09b136fab", + "releaseDate": "2020-09-26", + "slides": "https://antfu.me/posts/binfe-2020-zh/", + "fullReleaseDate": { + "year": 2020, + "month": 9, + "day": 26 + } + } + ], + "education": [ + { + "institution": "University of California, Irvine", + "area": "Computer Science", + "studyType": "Coding Certificate", + "startDate": "2020-09-01", + "endDate": "2021-03-12", + "start": { + "year": 2020, + "month": 9 + }, + "end": { + "year": 2021, + "month": 3 + }, + "description": "", + "activities": "", + "gpa": "", + "courses": [] + }, + { + "institution": "Harvard/edX", + "area": "Computer Science", + "studyType": "CS50X Certificate", + "startDate": "2020-03-12", + "endDate": "2021-03-12", + "start": { + "year": 2020, + "month": 3 + }, + "end": { + "year": 2021, + "month": 3 + }, + "description": "Introductory course into computer science.", + "activities": "", + "gpa": "", + "courses": [] + }, + { + "institution": "California State University, Long Beach", + "area": "Journalism, Political Science", + "studyType": "Bachelor of Arts", + "startDate": "2010-09-01", + "endDate": "2014-06-15", + "start": { + "year": 2010, + "month": 9 + }, + "end": { + "year": 2014, + "month": 6 + }, + "description": "", + "activities": "", + "gpa": "", + "courses": [] + } + ], + "volunteer": [], + "awards": [ + { + "title": "Idea Maker Competition Masterpiece Award", + "summary": "", + "awarder": "Oriental Institute of Technology", + "date": "2018-10-01", + "fullDate": { + "year": 2018, + "month": 10 + } + } + ], + "languages": [ + { + "language": "English", + "fluency": "Native speaker" + }, { + "language": "French", + "fluency": "Fluent" + } + ], + "interests": [], + "references": [] + } \ No newline at end of file diff --git a/src/basics.hbs b/src/basics.hbs new file mode 100644 index 0000000..30ea39e --- /dev/null +++ b/src/basics.hbs @@ -0,0 +1,16 @@ +
+
+ {{basics.name}} +

{{basics.name}}

+
+

{{basics.label}}

+
+
+ {{basics.email}} + + + {{basics.phone}} + +

{{basics.location.city}}

+

{{basics.location.region}}, {{basics.location.countryCode}}

+{{> socials}} \ No newline at end of file diff --git a/src/basicscont.hbs b/src/basicscont.hbs new file mode 100644 index 0000000..07fbc82 --- /dev/null +++ b/src/basicscont.hbs @@ -0,0 +1 @@ +

{{breaklines basics.summary}}

\ No newline at end of file diff --git a/src/education.hbs b/src/education.hbs new file mode 100644 index 0000000..85d8600 --- /dev/null +++ b/src/education.hbs @@ -0,0 +1,19 @@ +
+
    + {{#each education}} +
  • +
    +

    + {{area}}, {{studyType}}, + {{institution}} +

    +

    + {{formatDate startDate}} - {{#if endDate}} {{formatDate endDate}} {{/if}} {{#unless endDate}} + present{{/unless}} +

    +
    +

    {{description}}

    +
  • + {{/each}} +
+
\ No newline at end of file diff --git a/src/github.hbs b/src/github.hbs new file mode 100644 index 0000000..23583a7 --- /dev/null +++ b/src/github.hbs @@ -0,0 +1 @@ + diff --git a/src/helpers/index.js b/src/helpers/index.js new file mode 100644 index 0000000..dde10f4 --- /dev/null +++ b/src/helpers/index.js @@ -0,0 +1,34 @@ +import Handlebars from 'handlebars' + +const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] +const day = (date) => { + let lastNumber = date % 10 + switch (lastNumber) { + case 1: + return date + 'st' + case 2: + return date + 'nd' + case 3: + return date + 'rd' + default: + return date + 'th' + break; + } +} + +export const helpers = { + ifEquals: (arg1, arg2) => (arg1 == arg2) ? true : false, + breaklines: (text) => { + text = Handlebars.Utils.escapeExpression(text); + text = text.replace(/(\r\n|\n|\r)/gm, '
'); + return new Handlebars.SafeString(text); + }, + formatDate: (string) =>{ + const date = new Date(string) + return `${months[date.getMonth()]} ${day(date.getDate())}, ${date.getFullYear()}` + }, + buildTime: (string) => { + const date = new Date(Date.now()) + return `${date.getMonth()}/${date.getDate()}/${date.getFullYear()}, ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}` + } + } \ No newline at end of file diff --git a/src/index.hbs b/src/index.hbs new file mode 100644 index 0000000..c724248 --- /dev/null +++ b/src/index.hbs @@ -0,0 +1,66 @@ +
+
+
+
+ {{> basics}} +
+
+
+
+
+

+ About +

+
+ {{> basicscont}} +
+
+
+

+ Projects +

+
+ {{> projects}} +
+
+
+

+ Work Experience +

+
+ {{> workexperience}} +
+
+
+

+ Eductaion +

+
+ {{> education}} +
+
+
+

+ Stacks +

+
+ {{> stacks}} +
+
+
+
+ + +
Last updated at {{buildTime ''}}
+
+
+
+
\ No newline at end of file diff --git a/src/link.hbs b/src/link.hbs new file mode 100644 index 0000000..b2d97bd --- /dev/null +++ b/src/link.hbs @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/projects.hbs b/src/projects.hbs new file mode 100644 index 0000000..848ac2a --- /dev/null +++ b/src/projects.hbs @@ -0,0 +1,18 @@ +
+ {{#each projects}} +
+
+

{{name}}

+ {{#if githubUrl}}{{> github}}{{/if}} + {{#if website}}{{> link}}{{/if}} +
+

{{summary}}

+
+

{{primaryLanguage}}

+
+
+ {{/each}} + + More Projects... + +
\ No newline at end of file diff --git a/src/socials.hbs b/src/socials.hbs new file mode 100644 index 0000000..16968da --- /dev/null +++ b/src/socials.hbs @@ -0,0 +1,21 @@ + \ No newline at end of file diff --git a/src/stacks.hbs b/src/stacks.hbs new file mode 100644 index 0000000..c9ea375 --- /dev/null +++ b/src/stacks.hbs @@ -0,0 +1,8 @@ +
    + {{#each skills}} +
  • + {{name}} + {{#each keywords}} {{this}}{{#if @last}}{{else}}, {{/if}}{{/each}} +
  • + {{/each}} +
\ No newline at end of file diff --git a/src/workexperience.hbs b/src/workexperience.hbs new file mode 100644 index 0000000..a07903a --- /dev/null +++ b/src/workexperience.hbs @@ -0,0 +1,20 @@ +
    + {{#each work}} +
  • +

    + {{company}} + {{position}} +

    +

    + {{formatDate startDate}} - + {{#if endDate}} {{formatDate endDate}} {{/if}} {{#unless endDate}} present {{/unless}} + | {{location}} +

    +
      + {{#each highlights}} +
    • {{this}}
    • + {{/each}} +
    +
  • + {{/each}} +
\ No newline at end of file diff --git a/vite-plugin-handlebars/CHANGELOG.md b/vite-plugin-handlebars/CHANGELOG.md new file mode 100644 index 0000000..57f33e6 --- /dev/null +++ b/vite-plugin-handlebars/CHANGELOG.md @@ -0,0 +1,95 @@ +# Changelog + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +### [1.5.1](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.5.0...v1.5.1) (2021-03-29) + +### Bug Fixes + +- normalize paths for Windows support ([af4d8d7](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/af4d8d7c4ae0854952f7956b860f854461d8f940)) + +## [1.5.0](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.4.2...v1.5.0) (2021-03-26) + +### Features + +- expose page path to `context` functions ([#42](https://github.com/alexlafroscia/vite-plugin-handlebars/issues/42)) ([0a4441f](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/0a4441f6ae53b81cb1c3f18dff5a0fcd6bae1455)) + +### [1.4.2](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.4.1...v1.4.2) (2021-03-26) + +### Bug Fixes + +- avoid disrupting HMR ([e7ab905](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/e7ab905d48db37b79e8eefbda6471a70e310f8ca)), closes [#38](https://github.com/alexlafroscia/vite-plugin-handlebars/issues/38) + +### [1.4.1](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.4.0...v1.4.1) (2021-03-21) + +### Bug Fixes + +- handle async functions in context ([8b5eef4](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/8b5eef4f068563cebafb4eefb07757c6c7a88ca8)) + +## [1.4.0](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.3.0...v1.4.0) (2021-03-21) + +### Features + +- reload page on partial change ([3976806](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/3976806caf6d4a68d00a6fa38b7b83a0150c979b)), closes [#2](https://github.com/alexlafroscia/vite-plugin-handlebars/issues/2) + +## [1.3.0](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.2.0...v1.3.0) (2021-03-20) + +### Features + +- support functions as context values ([9780f4b](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/9780f4b56dbc62d9bc0846fe43eef0298d3be611)) + +## [1.2.0](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.1.2...v1.2.0) (2021-03-19) + +### Features + +- add ability to process multiple partial folders ([#28](https://github.com/alexlafroscia/vite-plugin-handlebars/issues/28)) ([fbcb39f](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/fbcb39f4c14e2279f5dccc391f0fd00109752545)) +- support nested partial directories ([9e657b2](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/9e657b2fecc045eb0d1b49a3304cde585522aa05)) + +### Bug Fixes + +- only register html or hbs files as partials ([15c67b2](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/15c67b225543e99ac9553355a261dcbb269ffda6)) + +### [1.1.2](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.1.1...v1.1.2) (2021-02-20) + +### Bug Fixes + +- read root even if not explicitly provided ([9541b81](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/9541b819417f5a2ae05144ef5bb357b0b6dc9f37)) + +### [1.1.1](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.1.0...v1.1.1) (2021-02-20) + +### Bug Fixes + +- ensure files are built before publishing ([8a3ad6f](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/8a3ad6f9e5784b7ce16a694690103fb72a0e1a7e)) + +## [1.1.0](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.0.4...v1.1.0) (2021-02-20) + +### Features + +- add `resolve-from-root` helper ([f03f7c9](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/f03f7c992123d2cd07f979be6cfeec3cd682e317)) + +### [1.0.4](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.0.3...v1.0.4) (2021-02-03) + +### Bug Fixes + +- move `enforce` to hook definition ([f80ff40](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/f80ff4081e49ea530f6ab49d96394bccabc27991)), closes [/github.com/vitejs/vite/blob/41167277d7c14cbc53877480d0a322bcb1bedd1f/packages/vite/src/node/plugins/html.ts#L403](https://github.com/alexlafroscia//github.com/vitejs/vite/blob/41167277d7c14cbc53877480d0a322bcb1bedd1f/packages/vite/src/node/plugins/html.ts/issues/L403) + +### [1.0.3](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.0.1...v1.0.3) (2021-02-03) + +### [1.0.2](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.0.1...v1.0.2) (2021-02-03) + +### [1.0.1](https://github.com/alexlafroscia/vite-plugin-handlebars/compare/v1.0.0...v1.0.1) (2021-02-03) + +### Bug Fixes + +- avoid compressing output assets ([dc4ae91](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/dc4ae9120ca961c04c6fb11e637cb2676e89d3a2)) +- handle empty partials directory ([d22ef98](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/d22ef98e75a44739758422567fdbb5f57c55262b)), closes [#1](https://github.com/alexlafroscia/vite-plugin-handlebars/issues/1) + +## 1.0.0 (2021-02-03) + +### Features + +- support Handlebars context and basic partials ([2342f8e](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/2342f8e8106fcbea639fbd6e57661a9456ae70cb)) + +### Bug Fixes + +- define files to include in package ([d7eaa30](https://github.com/alexlafroscia/vite-plugin-handlebars/commit/d7eaa300c1ae49b2aad3f31d8c770c1676210195)) diff --git a/vite-plugin-handlebars/README.md b/vite-plugin-handlebars/README.md new file mode 100644 index 0000000..1a9a881 --- /dev/null +++ b/vite-plugin-handlebars/README.md @@ -0,0 +1,198 @@ +# `vite-plugin-handlebars` + +> Vite support for Handlebars + +## Why? + +I really like Vite as a simple static site bundler. It can handle bundling multiple HTML files, which is great, but lacks the ability out-of-the-box to share parts of those HTML files. + +While a JS framework like React or Vue could be used to solve this problem, this is heavy-handed for a simple site that could be completely pre-rendered without a JS run-time of any kind. + +Handlebars provides what we need to be able to stitch together multiple HTML files, interpolate variables, etc. + +## Installation + +Start by installing the package like you would any other + +``` +yarn add -D vite-plugin-handlebars +``` + +It can then be added to your Vite configuration as a plugin: + +```javascript +// vite.config.js +import handlebars from 'vite-plugin-handlebars'; + +export default { + plugins: [handlebars()], +}; +``` + +Configuring the plugin is covered later in this guide. + +### Requirements + +- This plugin is intended to work with Vite 2 +- This plugin requires Node 14 or higher (due to usage of `fs/promises`) + +## Configuration + +### Defining Context + +If you want to make use of [Handlebars Context](https://handlebarsjs.com/guide/#simple-expressions) to inject variables into your HTML file, you'll need to define their values in the `context` object passed to the `handlebars` plugin: + +```html + +

{{title}}

+``` + +```javascript +// vite.config.js +import handlebars from 'vite-plugin-handlebars'; + +export default { + plugins: [ + handlebars({ + context: { + title: 'Hello, world!', + }, + }), + ], +}; +``` + +This will result in `

Hello, world!

` in your output HTML file. + +You can also provide a (asynchronous) function, either as the `context` key or any of the keys within the object, which will be evaluated to create the value that will be made available inside your page. This function is called with an identifier parameter based on the HTML file path which makes it possible to provide unique data to each HTML page in a multipage application setup. + +```javascript +// vite.config.js +import handlebars from 'vite-plugin-handlebars'; + +const pageData = { + '/index.html': { + title: 'Main Page', + }, + '/nested/subpage.html': { + title: 'Sub Page', + }, +}; + +export default { + plugins: [ + handlebars({ + context(pagePath) { + return pageData[pagePath]; + }, + }), + ], +}; +``` + +### Partials + +If you want to make use of [partials](https://handlebarsjs.com/guide/partials.html#basic-partials) in your HTML files, you _must_ define the `partialDirectory` option for the `handlebars` plugin. + +```javascript +// vite.config.js +import { resolve } from 'path'; +import handlebars from 'vite-plugin-handlebars'; + +export default { + plugins: [ + handlebars({ + partialDirectory: resolve(__dirname, 'partials'), + }), + ], +}; +``` + +If you want to use multiple partial folders, an array can be submitted. + +Each file in these directories (`.html` or `.hbs`) will become registered as a partial. The name of the file is used to invoke it. So, with the above configuration and the following files: + +```html + +
My Website
+``` + +```html + +{{> header }} + +

The Main Page

+``` + +Your output website content would become: + +```html +
My Website
+ +

The Main Page

+``` + +Make sure to review the [quirks section](#quirks) for information on potentially-unexpected behavior. + +### Other Handlebars Options + +All other Handlebars configuration options can also be passed through. + +- [`compileOptions`](https://handlebarsjs.com/api-reference/compilation.html#pre-compilation) can be used to alter the compilation step +- [`runtimeOptions`](https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access) can be used to alter the rendering step + +Each of these can also be passed through to the `handlebars` plugin: + +```javascript +// vite.config.js +import handlebars from 'vite-plugin-handlebars'; + +export default { + plugins: [ + handlebars({ + compileOptions: { + // Example config option: avoid auto-indenting partials + preventIndent: true, + }, + runtimeOptions: { + // Example config option: define custom private @variables + data: { + foo: 'bar', + }, + }, + }), + ], +}; +``` + +### Disabling Browser Refresh on Partial Change + +By default, any time a partial changes, your browser window will be full reloaded. If you want to disable this behavior, you can set `reloadOnPartialChange` to `false`: + +```javascript +// vite.config.js +import handlebars from 'vite-plugin-handlebars'; + +export default { + plugins: [ + handlebars({ + reloadOnPartialChange: false, + }), + ], +}; +``` + +## Built-In Helpers + +### `resolve-from-root` + +You can resolve a file path relative to the Vite root using the `resolve-from-root` helper. This assists with injecting other files, like linking to a CSS file, within a partial. + +```hbs + + +``` + +## Quirks + +- Assets included in a partial using a relative path will _probably_ not work how you would first expect; the relative path is left alone, making it relative to the _output_ file, not the partial itself. It's recommended that you use the `resolve-from-root` helper to ensure paths are resolved from the project root, rather than relative to a particular file. diff --git a/vite-plugin-handlebars/dist/context.d.ts b/vite-plugin-handlebars/dist/context.d.ts new file mode 100644 index 0000000..93bd040 --- /dev/null +++ b/vite-plugin-handlebars/dist/context.d.ts @@ -0,0 +1,2 @@ +export declare type Context = Record | ((path: string) => Record) | ((path: string) => Promise>); +export declare function resolveContext(context: Context | undefined, pagePath: string): Promise | undefined>; diff --git a/vite-plugin-handlebars/dist/index.d.ts b/vite-plugin-handlebars/dist/index.d.ts new file mode 100644 index 0000000..0844558 --- /dev/null +++ b/vite-plugin-handlebars/dist/index.d.ts @@ -0,0 +1,15 @@ +import { compile, RuntimeOptions } from 'handlebars'; +import { Plugin as VitePlugin } from 'vite'; +import { Context } from './context'; +declare type CompileArguments = Parameters; +declare type CompileOptions = CompileArguments[1]; +export interface HandlebarsPluginConfig { + context?: Context; + reloadOnPartialChange?: boolean; + compileOptions?: CompileOptions; + runtimeOptions?: RuntimeOptions; + partialDirectory?: string | Array; + registerHelpers?: { [key: string]: any }; +} +export default function handlebars({ context, reloadOnPartialChange, compileOptions, runtimeOptions, partialDirectory, }?: HandlebarsPluginConfig): VitePlugin; +export {}; diff --git a/vite-plugin-handlebars/dist/index.js b/vite-plugin-handlebars/dist/index.js new file mode 100644 index 0000000..8df06af --- /dev/null +++ b/vite-plugin-handlebars/dist/index.js @@ -0,0 +1,396 @@ +var handlebars$1 = require('handlebars'); +var path = require('path'); +var vite = require('vite'); +var promises = require('fs/promises'); + +async function resolveContext(context, pagePath) { + if (typeof context === 'undefined') { + return context; + } + + if (typeof context === 'function') { + return resolveContext(await context(pagePath), pagePath); + } + + const output = {}; + + for (const key of Object.keys(context)) { + const value = context[key]; + + if (typeof value === 'function') { + output[key] = await value(pagePath); + } else { + output[key] = value; + } + } + + return output; +} + +function _asyncIterator(iterable) { + var method; + + if (typeof Symbol !== "undefined") { + if (Symbol.asyncIterator) { + method = iterable[Symbol.asyncIterator]; + if (method != null) return method.call(iterable); + } + + if (Symbol.iterator) { + method = iterable[Symbol.iterator]; + if (method != null) return method.call(iterable); + } + } + + throw new TypeError("Object is not async iterable"); +} + +function _AwaitValue(value) { + this.wrapped = value; +} + +function _AsyncGenerator(gen) { + var front, back; + + function send(key, arg) { + return new Promise(function (resolve, reject) { + var request = { + key: key, + arg: arg, + resolve: resolve, + reject: reject, + next: null + }; + + if (back) { + back = back.next = request; + } else { + front = back = request; + resume(key, arg); + } + }); + } + + function resume(key, arg) { + try { + var result = gen[key](arg); + var value = result.value; + var wrappedAwait = value instanceof _AwaitValue; + Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { + if (wrappedAwait) { + resume(key === "return" ? "return" : "next", arg); + return; + } + + settle(result.done ? "return" : "normal", arg); + }, function (err) { + resume("throw", err); + }); + } catch (err) { + settle("throw", err); + } + } + + function settle(type, value) { + switch (type) { + case "return": + front.resolve({ + value: value, + done: true + }); + break; + + case "throw": + front.reject(value); + break; + + default: + front.resolve({ + value: value, + done: false + }); + break; + } + + front = front.next; + + if (front) { + resume(front.key, front.arg); + } else { + back = null; + } + } + + this._invoke = send; + + if (typeof gen.return !== "function") { + this.return = undefined; + } +} + +if (typeof Symbol === "function" && Symbol.asyncIterator) { + _AsyncGenerator.prototype[Symbol.asyncIterator] = function () { + return this; + }; +} + +_AsyncGenerator.prototype.next = function (arg) { + return this._invoke("next", arg); +}; + +_AsyncGenerator.prototype.throw = function (arg) { + return this._invoke("throw", arg); +}; + +_AsyncGenerator.prototype.return = function (arg) { + return this._invoke("return", arg); +}; + +function _wrapAsyncGenerator(fn) { + return function () { + return new _AsyncGenerator(fn.apply(this, arguments)); + }; +} + +function _awaitAsyncGenerator(value) { + return new _AwaitValue(value); +} + +function _asyncGeneratorDelegate(inner, awaitWrap) { + var iter = {}, + waiting = false; + + function pump(key, value) { + waiting = true; + value = new Promise(function (resolve) { + resolve(inner[key](value)); + }); + return { + done: false, + value: awaitWrap(value) + }; + } + + if (typeof Symbol === "function" && Symbol.iterator) { + iter[Symbol.iterator] = function () { + return this; + }; + } + + iter.next = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("next", value); + }; + + if (typeof inner.throw === "function") { + iter.throw = function (value) { + if (waiting) { + waiting = false; + throw value; + } + + return pump("throw", value); + }; + } + + if (typeof inner.return === "function") { + iter.return = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("return", value); + }; + } + + return iter; +} + +const VALID_EXTENSIONS = new Set(['.html', '.hbs']); // Borrowed from https://gist.github.com/lovasoa/8691344 + +function walk(_x) { + return _walk.apply(this, arguments); +} +/** + * Registers each HTML file in a directory as Handlebars partial + */ + + +function _walk() { + _walk = _wrapAsyncGenerator(function* (dir) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + + var _iteratorError; + + try { + for (var _iterator = _asyncIterator(yield _awaitAsyncGenerator(promises.opendir(dir))), _step, _value; _step = yield _awaitAsyncGenerator(_iterator.next()), _iteratorNormalCompletion = _step.done, _value = yield _awaitAsyncGenerator(_step.value), !_iteratorNormalCompletion; _iteratorNormalCompletion = true) { + const d = _value; + const fullFileName = path.join(dir, d.name); + + if (d.isDirectory()) { + yield* _asyncGeneratorDelegate(_asyncIterator(walk(fullFileName)), _awaitAsyncGenerator); + } else if (d.isFile()) { + yield fullFileName; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + yield _awaitAsyncGenerator(_iterator.return()); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + }); + return _walk.apply(this, arguments); +} + +async function registerPartials(directoryPath, partialsSet) { + const pathArray = Array.isArray(directoryPath) ? directoryPath : [directoryPath]; + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + + var _iteratorError2; + + try { + for (var _iterator2 = _asyncIterator(pathArray), _step2, _value2; _step2 = await _iterator2.next(), _iteratorNormalCompletion2 = _step2.done, _value2 = await _step2.value, !_iteratorNormalCompletion2; _iteratorNormalCompletion2 = true) { + const path$1 = _value2; + + try { + const normalizedPath = vite.normalizePath(path$1); + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + + var _iteratorError3; + + try { + for (var _iterator3 = _asyncIterator(walk(path$1)), _step3, _value3; _step3 = await _iterator3.next(), _iteratorNormalCompletion3 = _step3.done, _value3 = await _step3.value, !_iteratorNormalCompletion3; _iteratorNormalCompletion3 = true) { + const fileName = _value3; + const normalizedFileName = vite.normalizePath(fileName); + const parsedPath = path.parse(normalizedFileName); + + if (VALID_EXTENSIONS.has(parsedPath.ext)) { + let partialName = parsedPath.name; + + if (parsedPath.dir !== normalizedPath) { + const prefix = parsedPath.dir.replace(`${normalizedPath}/`, ''); + partialName = `${prefix}/${parsedPath.name}`; + } + + const content = await promises.readFile(fileName); + partialsSet.add(fileName); + handlebars$1.registerPartial(partialName, content.toString()); + } + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3.return != null) { + await _iterator3.return(); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + } catch (e) { + // This error indicates the partial directory doesn't exist; ignore it + if (e.code !== 'ENOENT') { + throw e; + } + } + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return != null) { + await _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } +} + +function handlebars({ + context, + reloadOnPartialChange = true, + compileOptions, + runtimeOptions, + partialDirectory, + registerHelpers +} = {}) { + // Keep track of what partials are registered + const partialsSet = new Set(); + let root; + handlebars$1.registerHelper('resolve-from-root', function (path$1) { + return path.resolve(root, path$1); + }); + + const helpers = Object.keys(registerHelpers) + + if (helpers?.length) { + helpers.forEach((helper) => { + if (typeof registerHelpers[helper] === 'function') handlebars$1.registerHelper(helper, registerHelpers[helper]) + }) + } + + return { + name: 'handlebars', + + configResolved(config) { + root = config.root; + }, + + async handleHotUpdate({ + server, + file + }) { + if (reloadOnPartialChange && partialsSet.has(file)) { + server.ws.send({ + type: 'full-reload' + }); + return []; + } + }, + + transformIndexHtml: { + // Ensure Handlebars runs _before_ any bundling + enforce: 'pre', + + async transform(html, ctx) { + if (partialDirectory) { + await registerPartials(partialDirectory, partialsSet); + } + + const template = handlebars$1.compile(html, compileOptions); + const resolvedContext = await resolveContext(context, vite.normalizePath(ctx.path)); + const result = template(resolvedContext, runtimeOptions); + return result; + } + + } + }; +} + +module.exports = handlebars; +//# sourceMappingURL=index.js.map diff --git a/vite-plugin-handlebars/dist/index.js.map b/vite-plugin-handlebars/dist/index.js.map new file mode 100644 index 0000000..0c97b26 --- /dev/null +++ b/vite-plugin-handlebars/dist/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/context.ts","../src/partials.ts","../src/index.ts"],"sourcesContent":["export type Context =\n | Record\n | ((path: string) => Record)\n | ((path: string) => Promise>);\n\nexport async function resolveContext(\n context: Context | undefined,\n pagePath: string\n): Promise | undefined> {\n if (typeof context === 'undefined') {\n return context;\n }\n\n if (typeof context === 'function') {\n return resolveContext(await context(pagePath), pagePath);\n }\n\n const output: Record = {};\n\n for (const key of Object.keys(context)) {\n const value = context[key];\n\n if (typeof value === 'function') {\n output[key] = await value(pagePath);\n } else {\n output[key] = value;\n }\n }\n\n return output;\n}\n","import { registerPartial } from 'handlebars';\nimport { opendir, readFile } from 'fs/promises';\nimport { normalizePath } from 'vite';\nimport { join, parse } from 'path';\n\nconst VALID_EXTENSIONS = new Set(['.html', '.hbs']);\n\n// Borrowed from https://gist.github.com/lovasoa/8691344\nasync function* walk(dir: string): AsyncGenerator {\n for await (const d of await opendir(dir)) {\n const fullFileName = join(dir, d.name);\n\n if (d.isDirectory()) {\n yield* walk(fullFileName);\n } else if (d.isFile()) {\n yield fullFileName;\n }\n }\n}\n\n/**\n * Registers each HTML file in a directory as Handlebars partial\n */\nexport async function registerPartials(\n directoryPath: string | Array,\n partialsSet: Set\n): Promise {\n const pathArray: Array = Array.isArray(directoryPath) ? directoryPath : [directoryPath];\n\n for await (const path of pathArray) {\n try {\n const normalizedPath = normalizePath(path);\n\n for await (const fileName of walk(path)) {\n const normalizedFileName = normalizePath(fileName);\n const parsedPath = parse(normalizedFileName);\n\n if (VALID_EXTENSIONS.has(parsedPath.ext)) {\n let partialName = parsedPath.name;\n\n if (parsedPath.dir !== normalizedPath) {\n const prefix = parsedPath.dir.replace(`${normalizedPath}/`, '');\n partialName = `${prefix}/${parsedPath.name}`;\n }\n\n const content = await readFile(fileName);\n\n partialsSet.add(fileName);\n\n registerPartial(partialName, content.toString());\n }\n }\n } catch (e) {\n // This error indicates the partial directory doesn't exist; ignore it\n if (e.code !== 'ENOENT') {\n throw e;\n }\n }\n }\n}\n","import { compile, registerHelper, RuntimeOptions } from 'handlebars';\nimport { resolve } from 'path';\nimport { IndexHtmlTransformContext, Plugin as VitePlugin, normalizePath } from 'vite';\nimport { Context, resolveContext } from './context';\nimport { registerPartials } from './partials';\n\ntype CompileArguments = Parameters;\ntype CompileOptions = CompileArguments[1];\n\nexport interface HandlebarsPluginConfig {\n context?: Context;\n reloadOnPartialChange?: boolean;\n compileOptions?: CompileOptions;\n runtimeOptions?: RuntimeOptions;\n partialDirectory?: string | Array;\n}\n\nexport default function handlebars({\n context,\n reloadOnPartialChange = true,\n compileOptions,\n runtimeOptions,\n partialDirectory,\n}: HandlebarsPluginConfig = {}): VitePlugin {\n // Keep track of what partials are registered\n const partialsSet = new Set();\n\n let root: string;\n\n registerHelper('resolve-from-root', function (path) {\n return resolve(root, path);\n });\n\n return {\n name: 'handlebars',\n\n configResolved(config) {\n root = config.root;\n },\n\n async handleHotUpdate({ server, file }) {\n if (reloadOnPartialChange && partialsSet.has(file)) {\n server.ws.send({\n type: 'full-reload',\n });\n\n return [];\n }\n },\n\n transformIndexHtml: {\n // Ensure Handlebars runs _before_ any bundling\n enforce: 'pre',\n\n async transform(html: string, ctx: IndexHtmlTransformContext): Promise {\n if (partialDirectory) {\n await registerPartials(partialDirectory, partialsSet);\n }\n\n const template = compile(html, compileOptions);\n\n const resolvedContext = await resolveContext(context, normalizePath(ctx.path));\n const result = template(resolvedContext, runtimeOptions);\n\n return result;\n },\n },\n };\n}\n"],"names":["resolveContext","context","pagePath","output","key","Object","keys","value","VALID_EXTENSIONS","Set","walk","dir","opendir","d","fullFileName","join","name","isDirectory","isFile","registerPartials","directoryPath","partialsSet","pathArray","Array","isArray","path","normalizedPath","normalizePath","fileName","normalizedFileName","parsedPath","parse","has","ext","partialName","prefix","replace","content","readFile","add","registerPartial","toString","e","code","handlebars","reloadOnPartialChange","compileOptions","runtimeOptions","partialDirectory","root","registerHelper","resolve","configResolved","config","handleHotUpdate","server","file","ws","send","type","transformIndexHtml","enforce","transform","html","ctx","template","compile","resolvedContext","result"],"mappings":"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"} \ No newline at end of file diff --git a/vite-plugin-handlebars/dist/index.module.js b/vite-plugin-handlebars/dist/index.module.js new file mode 100644 index 0000000..2e4eaa4 --- /dev/null +++ b/vite-plugin-handlebars/dist/index.module.js @@ -0,0 +1,386 @@ +import { registerPartial, registerHelper, compile } from 'handlebars'; +import { parse, join, resolve } from 'path'; +import { normalizePath } from 'vite'; +import { readFile, opendir } from 'fs/promises'; + +async function resolveContext(context, pagePath) { + if (typeof context === 'undefined') { + return context; + } + + if (typeof context === 'function') { + return resolveContext(await context(pagePath), pagePath); + } + + const output = {}; + + for (const key of Object.keys(context)) { + const value = context[key]; + + if (typeof value === 'function') { + output[key] = await value(pagePath); + } else { + output[key] = value; + } + } + + return output; +} + +function _asyncIterator(iterable) { + var method; + + if (typeof Symbol !== "undefined") { + if (Symbol.asyncIterator) { + method = iterable[Symbol.asyncIterator]; + if (method != null) return method.call(iterable); + } + + if (Symbol.iterator) { + method = iterable[Symbol.iterator]; + if (method != null) return method.call(iterable); + } + } + + throw new TypeError("Object is not async iterable"); +} + +function _AwaitValue(value) { + this.wrapped = value; +} + +function _AsyncGenerator(gen) { + var front, back; + + function send(key, arg) { + return new Promise(function (resolve, reject) { + var request = { + key: key, + arg: arg, + resolve: resolve, + reject: reject, + next: null + }; + + if (back) { + back = back.next = request; + } else { + front = back = request; + resume(key, arg); + } + }); + } + + function resume(key, arg) { + try { + var result = gen[key](arg); + var value = result.value; + var wrappedAwait = value instanceof _AwaitValue; + Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { + if (wrappedAwait) { + resume(key === "return" ? "return" : "next", arg); + return; + } + + settle(result.done ? "return" : "normal", arg); + }, function (err) { + resume("throw", err); + }); + } catch (err) { + settle("throw", err); + } + } + + function settle(type, value) { + switch (type) { + case "return": + front.resolve({ + value: value, + done: true + }); + break; + + case "throw": + front.reject(value); + break; + + default: + front.resolve({ + value: value, + done: false + }); + break; + } + + front = front.next; + + if (front) { + resume(front.key, front.arg); + } else { + back = null; + } + } + + this._invoke = send; + + if (typeof gen.return !== "function") { + this.return = undefined; + } +} + +if (typeof Symbol === "function" && Symbol.asyncIterator) { + _AsyncGenerator.prototype[Symbol.asyncIterator] = function () { + return this; + }; +} + +_AsyncGenerator.prototype.next = function (arg) { + return this._invoke("next", arg); +}; + +_AsyncGenerator.prototype.throw = function (arg) { + return this._invoke("throw", arg); +}; + +_AsyncGenerator.prototype.return = function (arg) { + return this._invoke("return", arg); +}; + +function _wrapAsyncGenerator(fn) { + return function () { + return new _AsyncGenerator(fn.apply(this, arguments)); + }; +} + +function _awaitAsyncGenerator(value) { + return new _AwaitValue(value); +} + +function _asyncGeneratorDelegate(inner, awaitWrap) { + var iter = {}, + waiting = false; + + function pump(key, value) { + waiting = true; + value = new Promise(function (resolve) { + resolve(inner[key](value)); + }); + return { + done: false, + value: awaitWrap(value) + }; + } + + if (typeof Symbol === "function" && Symbol.iterator) { + iter[Symbol.iterator] = function () { + return this; + }; + } + + iter.next = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("next", value); + }; + + if (typeof inner.throw === "function") { + iter.throw = function (value) { + if (waiting) { + waiting = false; + throw value; + } + + return pump("throw", value); + }; + } + + if (typeof inner.return === "function") { + iter.return = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("return", value); + }; + } + + return iter; +} + +const VALID_EXTENSIONS = new Set(['.html', '.hbs']); // Borrowed from https://gist.github.com/lovasoa/8691344 + +function walk(_x) { + return _walk.apply(this, arguments); +} +/** + * Registers each HTML file in a directory as Handlebars partial + */ + + +function _walk() { + _walk = _wrapAsyncGenerator(function* (dir) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + + var _iteratorError; + + try { + for (var _iterator = _asyncIterator(yield _awaitAsyncGenerator(opendir(dir))), _step, _value; _step = yield _awaitAsyncGenerator(_iterator.next()), _iteratorNormalCompletion = _step.done, _value = yield _awaitAsyncGenerator(_step.value), !_iteratorNormalCompletion; _iteratorNormalCompletion = true) { + const d = _value; + const fullFileName = join(dir, d.name); + + if (d.isDirectory()) { + yield* _asyncGeneratorDelegate(_asyncIterator(walk(fullFileName)), _awaitAsyncGenerator); + } else if (d.isFile()) { + yield fullFileName; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return != null) { + yield _awaitAsyncGenerator(_iterator.return()); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + }); + return _walk.apply(this, arguments); +} + +async function registerPartials(directoryPath, partialsSet) { + const pathArray = Array.isArray(directoryPath) ? directoryPath : [directoryPath]; + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + + var _iteratorError2; + + try { + for (var _iterator2 = _asyncIterator(pathArray), _step2, _value2; _step2 = await _iterator2.next(), _iteratorNormalCompletion2 = _step2.done, _value2 = await _step2.value, !_iteratorNormalCompletion2; _iteratorNormalCompletion2 = true) { + const path = _value2; + + try { + const normalizedPath = normalizePath(path); + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + + var _iteratorError3; + + try { + for (var _iterator3 = _asyncIterator(walk(path)), _step3, _value3; _step3 = await _iterator3.next(), _iteratorNormalCompletion3 = _step3.done, _value3 = await _step3.value, !_iteratorNormalCompletion3; _iteratorNormalCompletion3 = true) { + const fileName = _value3; + const normalizedFileName = normalizePath(fileName); + const parsedPath = parse(normalizedFileName); + + if (VALID_EXTENSIONS.has(parsedPath.ext)) { + let partialName = parsedPath.name; + + if (parsedPath.dir !== normalizedPath) { + const prefix = parsedPath.dir.replace(`${normalizedPath}/`, ''); + partialName = `${prefix}/${parsedPath.name}`; + } + + const content = await readFile(fileName); + partialsSet.add(fileName); + registerPartial(partialName, content.toString()); + } + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3.return != null) { + await _iterator3.return(); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + } catch (e) { + // This error indicates the partial directory doesn't exist; ignore it + if (e.code !== 'ENOENT') { + throw e; + } + } + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return != null) { + await _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } +} + +function handlebars({ + context, + reloadOnPartialChange = true, + compileOptions, + runtimeOptions, + partialDirectory +} = {}) { + // Keep track of what partials are registered + const partialsSet = new Set(); + let root; + registerHelper('resolve-from-root', function (path) { + return resolve(root, path); + }); + return { + name: 'handlebars', + + configResolved(config) { + root = config.root; + }, + + async handleHotUpdate({ + server, + file + }) { + if (reloadOnPartialChange && partialsSet.has(file)) { + server.ws.send({ + type: 'full-reload' + }); + return []; + } + }, + + transformIndexHtml: { + // Ensure Handlebars runs _before_ any bundling + enforce: 'pre', + + async transform(html, ctx) { + if (partialDirectory) { + await registerPartials(partialDirectory, partialsSet); + } + + const template = compile(html, compileOptions); + const resolvedContext = await resolveContext(context, normalizePath(ctx.path)); + const result = template(resolvedContext, runtimeOptions); + return result; + } + + } + }; +} + +export default handlebars; +//# sourceMappingURL=index.module.js.map diff --git a/vite-plugin-handlebars/dist/index.module.js.map b/vite-plugin-handlebars/dist/index.module.js.map new file mode 100644 index 0000000..bf83178 --- /dev/null +++ b/vite-plugin-handlebars/dist/index.module.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.module.js","sources":["../src/context.ts","../src/partials.ts","../src/index.ts"],"sourcesContent":["export type Context =\n | Record\n | ((path: string) => Record)\n | ((path: string) => Promise>);\n\nexport async function resolveContext(\n context: Context | undefined,\n pagePath: string\n): Promise | undefined> {\n if (typeof context === 'undefined') {\n return context;\n }\n\n if (typeof context === 'function') {\n return resolveContext(await context(pagePath), pagePath);\n }\n\n const output: Record = {};\n\n for (const key of Object.keys(context)) {\n const value = context[key];\n\n if (typeof value === 'function') {\n output[key] = await value(pagePath);\n } else {\n output[key] = value;\n }\n }\n\n return output;\n}\n","import { registerPartial } from 'handlebars';\nimport { opendir, readFile } from 'fs/promises';\nimport { normalizePath } from 'vite';\nimport { join, parse } from 'path';\n\nconst VALID_EXTENSIONS = new Set(['.html', '.hbs']);\n\n// Borrowed from https://gist.github.com/lovasoa/8691344\nasync function* walk(dir: string): AsyncGenerator {\n for await (const d of await opendir(dir)) {\n const fullFileName = join(dir, d.name);\n\n if (d.isDirectory()) {\n yield* walk(fullFileName);\n } else if (d.isFile()) {\n yield fullFileName;\n }\n }\n}\n\n/**\n * Registers each HTML file in a directory as Handlebars partial\n */\nexport async function registerPartials(\n directoryPath: string | Array,\n partialsSet: Set\n): Promise {\n const pathArray: Array = Array.isArray(directoryPath) ? directoryPath : [directoryPath];\n\n for await (const path of pathArray) {\n try {\n const normalizedPath = normalizePath(path);\n\n for await (const fileName of walk(path)) {\n const normalizedFileName = normalizePath(fileName);\n const parsedPath = parse(normalizedFileName);\n\n if (VALID_EXTENSIONS.has(parsedPath.ext)) {\n let partialName = parsedPath.name;\n\n if (parsedPath.dir !== normalizedPath) {\n const prefix = parsedPath.dir.replace(`${normalizedPath}/`, '');\n partialName = `${prefix}/${parsedPath.name}`;\n }\n\n const content = await readFile(fileName);\n\n partialsSet.add(fileName);\n\n registerPartial(partialName, content.toString());\n }\n }\n } catch (e) {\n // This error indicates the partial directory doesn't exist; ignore it\n if (e.code !== 'ENOENT') {\n throw e;\n }\n }\n }\n}\n","import { compile, registerHelper, RuntimeOptions } from 'handlebars';\nimport { resolve } from 'path';\nimport { IndexHtmlTransformContext, Plugin as VitePlugin, normalizePath } from 'vite';\nimport { Context, resolveContext } from './context';\nimport { registerPartials } from './partials';\n\ntype CompileArguments = Parameters;\ntype CompileOptions = CompileArguments[1];\n\nexport interface HandlebarsPluginConfig {\n context?: Context;\n reloadOnPartialChange?: boolean;\n compileOptions?: CompileOptions;\n runtimeOptions?: RuntimeOptions;\n partialDirectory?: string | Array;\n}\n\nexport default function handlebars({\n context,\n reloadOnPartialChange = true,\n compileOptions,\n runtimeOptions,\n partialDirectory,\n}: HandlebarsPluginConfig = {}): VitePlugin {\n // Keep track of what partials are registered\n const partialsSet = new Set();\n\n let root: string;\n\n registerHelper('resolve-from-root', function (path) {\n return resolve(root, path);\n });\n\n return {\n name: 'handlebars',\n\n configResolved(config) {\n root = config.root;\n },\n\n async handleHotUpdate({ server, file }) {\n if (reloadOnPartialChange && partialsSet.has(file)) {\n server.ws.send({\n type: 'full-reload',\n });\n\n return [];\n }\n },\n\n transformIndexHtml: {\n // Ensure Handlebars runs _before_ any bundling\n enforce: 'pre',\n\n async transform(html: string, ctx: IndexHtmlTransformContext): Promise {\n if (partialDirectory) {\n await registerPartials(partialDirectory, partialsSet);\n }\n\n const template = compile(html, compileOptions);\n\n const resolvedContext = await resolveContext(context, normalizePath(ctx.path));\n const result = template(resolvedContext, runtimeOptions);\n\n return result;\n },\n },\n };\n}\n"],"names":["resolveContext","context","pagePath","output","key","Object","keys","value","VALID_EXTENSIONS","Set","walk","dir","opendir","d","fullFileName","join","name","isDirectory","isFile","registerPartials","directoryPath","partialsSet","pathArray","Array","isArray","path","normalizedPath","normalizePath","fileName","normalizedFileName","parsedPath","parse","has","ext","partialName","prefix","replace","content","readFile","add","registerPartial","toString","e","code","handlebars","reloadOnPartialChange","compileOptions","runtimeOptions","partialDirectory","root","registerHelper","resolve","configResolved","config","handleHotUpdate","server","file","ws","send","type","transformIndexHtml","enforce","transform","html","ctx","template","compile","resolvedContext","result"],"mappings":"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"} \ No newline at end of file diff --git a/vite-plugin-handlebars/dist/partials.d.ts b/vite-plugin-handlebars/dist/partials.d.ts new file mode 100644 index 0000000..59d7f38 --- /dev/null +++ b/vite-plugin-handlebars/dist/partials.d.ts @@ -0,0 +1,4 @@ +/** + * Registers each HTML file in a directory as Handlebars partial + */ +export declare function registerPartials(directoryPath: string | Array, partialsSet: Set): Promise; diff --git a/vite-plugin-handlebars/package.json b/vite-plugin-handlebars/package.json new file mode 100644 index 0000000..1239f9e --- /dev/null +++ b/vite-plugin-handlebars/package.json @@ -0,0 +1,99 @@ +{ + "_from": "vite-plugin-handlebars", + "_id": "vite-plugin-handlebars@1.5.1", + "_inBundle": false, + "_integrity": "sha512-rmEeoeCvSSz2ovohDSgovdQ/bcVwEGKcPI0SunZeV+HPI4g8tALI0oMHRhzdAl51sadNniqaXnXjy+6ymFmQXQ==", + "_location": "/vite-plugin-handlebars", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "vite-plugin-handlebars", + "name": "vite-plugin-handlebars", + "escapedName": "vite-plugin-handlebars", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/vite-plugin-handlebars/-/vite-plugin-handlebars-1.5.1.tgz", + "_shasum": "141e73dfb1a98d77e7118e82eb6c4a9762f7c237", + "_spec": "vite-plugin-handlebars", + "_where": "/Users/nickgraffis/Sites/resume", + "author": { + "name": "Alex LaFroscia", + "email": "alex@lafroscia.com" + }, + "bugs": { + "url": "https://github.com/alexlafroscia/vite-plugin-handlebars/issues" + }, + "bundleDependencies": false, + "dependencies": { + "handlebars": "^4.7.6" + }, + "deprecated": false, + "description": "Vite plugin for Handlebars support in HTML", + "devDependencies": { + "@movable/eslint-config": "^0.6.9", + "@movable/eslint-config-typescript": "^0.2.1", + "@movable/prettier-config": "^0.3.6", + "@tsconfig/node14": "^1.0.0", + "@types/jest": "^26.0.20", + "file-fixture-factory": "^1.0.1", + "husky": "^6.0.0", + "jest": "^26.6.3", + "lint-staged": "^10.5.3", + "microbundle": "^0.13.0", + "standard-version": "^9.1.0", + "ts-jest": "^26.5.0", + "typescript": "^4.1.3", + "vite": "^2.0.0" + }, + "files": [ + "dist" + ], + "homepage": "https://github.com/alexlafroscia/vite-plugin-handlebars#readme", + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "license": "MIT", + "lint-staged": { + "*.{js,ts}": "eslint --fix", + "*.{json,md,yml}": "prettier --write" + }, + "main": "dist/index.js", + "module": "dist/index.module.js", + "name": "vite-plugin-handlebars", + "peerDependencies": { + "vite": "^2.0.0" + }, + "private": false, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/alexlafroscia/vite-plugin-handlebars.git" + }, + "scripts": { + "build": "microbundle -f es,cjs --target node --no-compress", + "lint": "eslint .", + "prepare": "husky install", + "prepublishOnly": "yarn build", + "release": "standard-version", + "test": "jest" + }, + "source": "src/index.ts", + "standard-version": { + "scripts": { + "postchangelog": "prettier --write CHANGELOG.md" + } + }, + "version": "1.5.1", + "volta": { + "node": "14.15.4", + "yarn": "1.22.10" + } +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..523d05a --- /dev/null +++ b/vite.config.js @@ -0,0 +1,25 @@ +import fs from 'fs'; +import { resolve } from 'path'; +import { helpers } from './src/helpers'; +import WindiCSS from 'vite-plugin-windicss'; +import handlebars from './vite-plugin-handlebars'; + +const loadResume = () => { + return JSON.parse(fs.readFileSync('./resume.json', 'utf-8')) +} + +export default { + plugins: [ + handlebars({ + partialDirectory: resolve(__dirname, 'src'), + context: { + ...loadResume(), + meta: { + description: 'Nick Graffis is a full stack software engineer specializing in front end technoligies around typescript and javascript, as-well-as serverside technolgies and languages, like node, python, goland, c/c++.' + } + }, + registerHelpers: helpers + }), + WindiCSS(), + ], +}; \ No newline at end of file diff --git a/windi.config.js b/windi.config.js new file mode 100644 index 0000000..027221f --- /dev/null +++ b/windi.config.js @@ -0,0 +1,16 @@ +export default { + extract: { + include: [ + './src/**.*', + './index.html' + ] + }, + theme: { + extends: { + screens: { + print: { raw: 'print' }, + }, + }, + }, + darkMode: 'class', +} \ No newline at end of file