From 1fb4c71b2b5ecfd7c07828755cef12fca307ac1a Mon Sep 17 00:00:00 2001 From: juls0730 <62722391+juls0730@users.noreply.github.com> Date: Wed, 11 Sep 2024 00:57:33 -0500 Subject: [PATCH] better dev runner, bug fixes, design changes, and more --- README.md | 18 +++++ main.go | 15 ++-- middleware/route.go | 6 ++ routes/files.go | 128 +++++++++++++++++++++++++++++++--- server.go | 16 +++++ server_dev.go | 69 ++++++++++++++++++ ui/assets/css/main.css | 9 ++- ui/bun.lockb | Bin 296106 -> 290727 bytes ui/components/Breadcrumbs.vue | 2 +- ui/components/Checkbox.vue | 2 +- ui/components/FileNav.vue | 79 ++++++++++----------- ui/nuxt.config.ts | 6 +- ui/pages/home/[...name].vue | 104 +++++++++++++++++++++++---- ui/tailwind.config.js | 4 ++ 14 files changed, 377 insertions(+), 81 deletions(-) create mode 100644 server.go create mode 100644 server_dev.go diff --git a/README.md b/README.md index e08729a..bab2ec1 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,21 @@ - bun - go + +## Getting started + +To run filething, run + +```BASH +go generate +go build -tags netgo -ldflags=-s +DB_HOST=localhost:5432 DB_NAME=filething DB_USER=postgres STORAGE_PATH=data ./filething +``` + +### Contributing + +To run filething in dev mode with a hot reloading Ui server and auto rebuilding backend server, run + +```BASH +DB_HOST=localhost:5432 DB_NAME=filething DB_USER=postgres STORAGE_PATH=data CompileDaemon --build="go build -tags netgo,dev -ldflags=-s" --command=./filething --exclude-dir=data/ --graceful-kill +``` diff --git a/main.go b/main.go index 5bb1a98..5da7ade 100644 --- a/main.go +++ b/main.go @@ -1,5 +1,5 @@ -//go:generate bun --cwd=./ui install -//go:generate bun --bun --cwd=./ui run generate +//go:generate sh -c "NODE_ENV=production bun --cwd=./ui install" +//go:generate sh -c "NODE_ENV=production bun --bun --cwd=./ui run generate" package main import ( @@ -22,7 +22,10 @@ import ( "github.com/uptrace/bun/driver/pgdriver" ) +var initUi func(e *echo.Echo) + func main() { + dbHost := os.Getenv("DB_HOST") dbName := os.Getenv("DB_NAME") dbUser := os.Getenv("DB_USER") @@ -77,7 +80,7 @@ func main() { api.POST("/files/upload*", routes.UploadFile) api.GET("/files/get/*", routes.GetFiles) - api.GET("/files/download/*", routes.GetFile) + api.GET("/files/download*", routes.GetFile) api.POST("/files/delete*", routes.DeleteFiles) } @@ -85,11 +88,13 @@ func main() { // this isnt explicitly required, but it provides a better experience than doing this same thing clientside e.Use(middleware.AuthCheckMiddleware) - e.GET("/*", echo.StaticDirectoryHandler(ui.DistDirFS, false)) + initUi(e) e.HTTPErrorHandler = customHTTPErrorHandler - e.Logger.Fatal(e.Start(":1323")) + if err := e.Start(":1323"); err != nil && err != http.ErrServerClosed { + fmt.Println("Error starting HTTP server:", err) + } } func customHTTPErrorHandler(err error, c echo.Context) { diff --git a/middleware/route.go b/middleware/route.go index ffcfe6b..ec1483c 100644 --- a/middleware/route.go +++ b/middleware/route.go @@ -20,6 +20,12 @@ var authenticatedPages = []string{ func AuthCheckMiddleware(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { path := c.Request().URL.Path + + // bypass auth checks for static and dev resources + if strings.HasPrefix(path, "/_nuxt/") || strings.HasSuffix(path, ".js") || strings.HasSuffix(path, ".css") { + return next(c) + } + _, cookieErr := c.Cookie("sessionToken") authenticated := cookieErr == nil diff --git a/routes/files.go b/routes/files.go index 7961e50..64c98c5 100644 --- a/routes/files.go +++ b/routes/files.go @@ -1,10 +1,13 @@ package routes import ( + "archive/zip" + "bytes" "filething/models" "fmt" "io" "net/http" + "net/url" "os" "path/filepath" "strings" @@ -78,11 +81,6 @@ func UploadFile(c echo.Context) error { return err } - if err != nil { - fmt.Println(err) - return err - } - filepath := filepath.Join(basePath, part.FileName()) if _, err = os.Stat(filepath); err == nil { @@ -152,14 +150,11 @@ func UploadFile(c echo.Context) error { func calculateStorageUsage(basePath string) (int64, error) { var totalSize int64 - - // Read the directory entries, err := os.ReadDir(basePath) if err != nil { return 0, err } - // Iterate over directory entries for _, entry := range entries { if entry.IsDir() { // Recursively calculate size of directories @@ -226,9 +221,122 @@ func GetFile(c echo.Context) error { user := c.Get("user").(*models.User) fullPath := strings.Trim(c.Param("*"), "/") - basePath := fmt.Sprintf("%s/%s/%s", os.Getenv("STORAGE_PATH"), user.ID, fullPath) - return c.File(basePath) + fileNamesParam := c.QueryParam("filenames") + var fileNames []string + if fileNamesParam != "" { + fileNames = strings.Split(fileNamesParam, ",") + } + + if fullPath == "" && len(fileNames) == 0 { + return c.JSON(http.StatusBadRequest, map[string]string{"message": "A file is required"}) + } + + basePath := fmt.Sprintf("%s/%s", os.Getenv("STORAGE_PATH"), user.ID) + if fullPath != "" { + basePath = filepath.Join(basePath, fullPath) + } + + fileInfo, err := os.Stat(basePath) + if err != nil { + return c.JSON(http.StatusNotFound, map[string]string{"message": "No file found!"}) + } + + var buf bytes.Buffer + if fileInfo.IsDir() { + c.Response().Header().Set(echo.HeaderContentType, "application/zip") + + if len(fileNames) != 0 { + err := zipFiles(&buf, filepath.Join(basePath, fullPath), fileNames) + if err != nil { + fmt.Println(err) + return err + } + + _, err = buf.WriteTo(c.Response().Writer) + return err + } + + err := zipFiles(&buf, basePath, []string{""}) + if err != nil { + fmt.Println(err) + return err + } + + _, err = buf.WriteTo(c.Response().Writer) + return err + } else { + return c.File(basePath) + } +} + +func zipFiles(buf *bytes.Buffer, basePath string, files []string) error { + zipWriter := zip.NewWriter(buf) + defer zipWriter.Close() + + for _, filePath := range files { + unescapedFilePath, err := url.PathUnescape(filePath) + if err != nil { + return err + } + err = processFile(zipWriter, basePath, unescapedFilePath) + if err != nil { + return err + } + } + + return nil +} + +func processFile(zipWriter *zip.Writer, basePath string, filePath string) error { + fullFilePath := filepath.Join(basePath, filePath) + + fileInfo, err := os.Stat(fullFilePath) + if err != nil { + return err + } + + header, err := zip.FileInfoHeader(fileInfo) + if err != nil { + return err + } + + header.Method = zip.Deflate + + header.Name = filepath.ToSlash(filePath) + + if fileInfo.IsDir() { + header.Name += "/" + } + + headerWriter, err := zipWriter.CreateHeader(header) + if err != nil { + return err + } + + if fileInfo.IsDir() { + files, err := os.ReadDir(fullFilePath) + if err != nil { + return err + } + + for _, file := range files { + err := processFile(zipWriter, basePath, filepath.Join(filePath, file.Name())) + if err != nil { + return err + } + } + return nil + } + + file, err := os.Open(fullFilePath) + if err != nil { + return err + } + defer file.Close() + + _, err = io.Copy(headerWriter, file) + return err } type DeleteRequest struct { diff --git a/server.go b/server.go new file mode 100644 index 0000000..37c3bde --- /dev/null +++ b/server.go @@ -0,0 +1,16 @@ +//go:build !dev +// +build !dev + +package main + +import ( + "filething/ui" + + "github.com/labstack/echo/v4" +) + +func init() { + initUi = func(e *echo.Echo) { + e.GET("/*", echo.StaticDirectoryHandler(ui.DistDirFS, false)) + } +} diff --git a/server_dev.go b/server_dev.go new file mode 100644 index 0000000..41d5118 --- /dev/null +++ b/server_dev.go @@ -0,0 +1,69 @@ +//go:build dev +// +build dev + +package main + +import ( + "context" + "fmt" + "net/url" + "os" + "os/exec" + "os/signal" + "syscall" + + "github.com/labstack/echo/v4" + echoMiddleware "github.com/labstack/echo/v4/middleware" +) + +func init() { + initUi = func(e *echo.Echo) { + shutdown := make(chan os.Signal, 1) + signal.Notify(shutdown, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT) + go func() { + cmd := exec.Command("bun", "--cwd=ui", "run", "dev") + cmd.Stderr = os.Stderr + + // use a preocess group since otherwise the node processes spawned by bun wont die + cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} + + err := cmd.Start() + if err != nil { + if err := syscall.Kill(-cmd.Process.Pid, syscall.SIGTERM); err != nil { + fmt.Println("Error sending SIGTERM to Nuxt dev server group:", err) + } + + fmt.Println("Error starting Nuxt dev server:", err) + return + } + + go func() { + <-shutdown + + if err := syscall.Kill(-cmd.Process.Pid, syscall.SIGTERM); err != nil { + fmt.Println("Error sending SIGTERM to Nuxt dev server group:", err) + } + }() + + if err := cmd.Wait(); err != nil { + fmt.Println("Error waiting for Nuxt dev server to exit:", err) + } + + fmt.Println("Nuxt dev server stopped") + + if err := e.Shutdown(context.Background()); err != nil { + fmt.Println("Error shutting down HTTP server:", err) + } + }() + + target := "localhost:3000" + e.Group("/*").Use(echoMiddleware.ProxyWithConfig(echoMiddleware.ProxyConfig{ + Balancer: echoMiddleware.NewRoundRobinBalancer([]*echoMiddleware.ProxyTarget{ + {URL: &url.URL{ + Scheme: "http", + Host: target, + }}, + }), + })) + } +} diff --git a/ui/assets/css/main.css b/ui/assets/css/main.css index 9d8d55b..40f1639 100644 --- a/ui/assets/css/main.css +++ b/ui/assets/css/main.css @@ -13,9 +13,12 @@ --highlight-low: 11 18 22; --highlight-med: 32 37 38; --highlight-high: 49 55 58; - --color-foam: 86 148 159; + --color-foam: 32 159 181; --color-love: 220 100 130; --color-pine: 40 105 131; + --color-accent: 136 57 239; + --color-accent-20: #dac9f1; + --nav-height: 48px; } @@ -31,9 +34,11 @@ --highlight-low: 244 237 232; --highlight-med: 223 218 217; --highlight-high: 206 202 205; - --color-foam: 156 207 216; + --color-foam: 145 215 227; --color-love: 235 111 146; --color-pine: 49 116 143; + --color-accent: 154 87 237; + --color-accent-20: #342c3f; color-scheme: dark; } diff --git a/ui/bun.lockb b/ui/bun.lockb index c5debe2d42e198719536203f5f5f89a5e7d39dae..e3c7ef795e231dc3c10eeba7feb987a3d8960f8a 100755 GIT binary patch delta 49617 zcmeFacU%-%+b!B%&`PVQ7{Q!H6eOsCXq$7yoD~%XBuFwlfH|j9w^^y=ztNM&9q6^M3C=zkAO8XZq)2J5c{M%G5dYH8U?>aWEVvAKBe*1Zy5tBjGiWRQYT#n< zoxnxG8$9%M^TBMP%MJAS{Tk}w9l;z52{Jsok=`l0z$Tz>!=tA zpQ9tFiJq`0eD-d8$>o~reslQj?E%rQfx}{=0@9%~T}X69_<-Qhz`O7{n)(F=gbu>! zsgHrK+A8I8bim~^VUHGSUpu$B0)ekI!I z*$nsa35RP~j`*x+#Na^94~}*n8Xby}+E$PE74bRef-nO3i3;c+Jj}~rWBAlo&1bF< zm(WfRj|mtY&^I*D5E$JzHaN7u!8$^$L&-WMts}-dG@G>7hprrI@z#-K9kSLTZymbU zsUWAokD+ND)7Bwq9oyD9Vja5HIbt32*12OH`_`e`FFHCrAUwj*qnlpA7Cj9HM>NDf zFz2FkFAjkI=&9)Fz-TOFbr6sX0ntMSMzE#Y_SWZnV=!CzHkcjQHzFdmZ$NZl|A?^I znBdUpR2jack3OPiNJhS{LxTchntP~=a=68PM0uRk6;KSPOkOb8f+1sMOsWm$%qb2oWiX(jVKBjq?s~)< zU}khk`u!q8Bcf3FYWPK<&jIHLj{>uzZ$k8T=qtlpftlV*`bEL4fCnPO){5?i*(oNth@Na@EfOjLD z1${>9eBfWftVnL;&XF*2sQPm*OI)!Lx|;{g9x_QkIJ!o)zQHkuu_N^cv`$IKQMzxP zni<3O5%C2&>s<#wc>U*pG8jsOH-XV}@iV|B!4Z=E!6n$E)nF7yfFrmV`0HrB%O6QT z1!hBSmOKy45ik*)8$1fkhQ45@S8RAd7*-BUk8yg>1w_ZV4#I_);IkbHjo0<#h;KHi z_v}5py_~4`-Ox#TR^eb?%iw^h=)l;h(CEN$3@L+Q_+&j^IG9BS2D%Oij*5=yC;f?2 z^zi7IfS6d!$Kg}dklc;S+(GsZh<-^Ha}dm$a8>0M9GI@&%3UJv%M88cu=R4sHUvjR z1@;e)He{bATX?3P`)kQ}!OZ3YI1jjgV0a`?ItStBg}({RVuNC01`k6o?L@J>s{XNq zLvbjGvM!QxF+)#O(?`hv<&9nL>$ME=*45FvY+ILU>vC*eRjsRI|A-jZ!BG)|gPN$G zc`FogU#t)1oM1M{9WdM1ZHXF{w?bUurTX=sgUt3xgU|LEBK^e5dicm?dOP=v>gVd^ zX)t6g(z6MT=&v2%CM^G76{C-e4lDHj3XTqliV7HRXbK;zLtOm8(1^b5*n&Un?Q8NRT>GAV{IaRH@=zrbat-G(?8olEB?u)g{8?C}| zTLD+hB_KK`Dli~ym?3DbuJ-_=rty8N1+bomcJLW5AD9&=f^-bGR`5GohJHZw@NjGZ zhNOvlKA+d?yVGyr0tmmJgqAK3!()S

@ulLjViNkh=FqwPwBwIYKw-7aFih4arxb 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 VsC9`|)HP@LAWdsFRk5tue*uwepLPHM delta 52808 zcmeFacU%k@B99_(?1vMdDf1#bCq4sfA`&uhM4D z`@NBEwiM1hZ1OA8d)W0#fo+GKJQMlA&Z+xv?>oF~RpLimg`Y=rx|ivF?zZ0IC`v?J ze5_kQWaO~8Ad9jRKZ__zf>Ea^1;G*U$!p*j0tdp+11^pX9KiOHgCb%>Vnc#rzUt;& zbS^g=u?irxmqAP27M!1{V`5@QLM)ZFh@aO$!#S!knAEk zdT3Z!T%@AJG*XmOh~FLj1Gs_o%YmKX+ki`h@0t{)BKQEfEI1KdS}`jLV_{T)&>LJH z>EGQXV65OSZY-}*omjV|BuV|sAtJzYES00=Xx}6Mf+zOpD z1i}Ou9J!Cd?6vD)M*Lh`gKf_w8^vp%qsl^X7sU=FLu;M z%W*J^2n-8}3qjVK{j_XGxO+yxRcazWt2{I^$l`~@xDAg9QhKdC zFfb&(wqm3F)LA`b=WH(2RSS;|hzuAI7Ni8l42TN}8>mu|SD8|$#Qj#{iv5djfH zm6yG>3f}6cD2}LT+x}X^?gr;m23nS}pcpJm7Z8Cx5HoD>P_|TNfHu{yf!V@g1GE+$ zFm!0xfPk2wfkVUNVnf1W20&-H8}i^_DkB*ca2p;R5c{~c+SL~rdp4Qje-fA@FC3hg)4#h6cz__kY*#hV|x7dKeF^AzZ|2>jdfgMqHf~|}gFicxtYJh7&H-KHi)#J4c zZw*(JYVhsgJA)s`X$5~qDTUxa0JCEGPzrl~=Sa0lUX!`a7|k_-x!2T@en?EcIs-yt zm91m72DMJnmS)YjPSvuA&k^F9pw+(-vd<6y%Q!_T2fhVHPbTaKmjN%AoB&3Cm_wkT4e5im!@PB4ewFJLzOIXkUlBLc#)k|;`x$y!ea#KgJ{ z!G+X;&vs}&MbnQWzEM%fI@IdnAo|}-#J4IkBJS4jf)A2Nt&VB=WAgOk6~gYLAC{v?E6nzw3lGks0rGO zSK>HF%QiH|&2kX|(Sx-bL<|fG3{jMBbG4?$Hf=d6g$#`j8W<9z3{bT$=mySI)@AYk z-5~&z$hxjt*Hi1VX$Qq&`!zbs1Fgb>#>s|?iH!~l z2#;3|Cu{mHFt2<-odDKT*$CeremIyFh(kJtTPxU8`T;Q`BCx|K*MHLT>AF$d&wRjK zJ=`~;r7OXh4ucu~lAuMbEd92dHGS@8^R<1oqIrR5Y~}sMG?ET32#0Ayob;D)|1#c_*|l6!Y#wV ztT;ko^NiiAMO=ssxi(^E4hdQ9ke2uCoPnwnJSo zD|+@h9;0hZTK|?haDPc}LrnN0bJOUKu6MRlt z9*;s0cOHBP_=7`Y-FVKgb3&`paIih}{nE$26~jBQNr=y;2@G)yi5N6gakta_J*Tu9 zMn(?}kBp5`B2Qb=n-hkFVd+P~;Q@m~0B7kGdS|Kcuft&=^n>6c9)xeNJgIM7t zWXz@*9z#!2tT$(~pgTby!jnr#OzgdL+6K7?>YTEjHDq?K0(%t3V%%m%9{FYv`ltqY^!+e3G_qSfQmWvvT?ptC`ht6KVw zGTjpRXgG613z=|GSU_xS&_JcWOi&Wcu`nPcI+AnT9=>H)$nHt>|^qw;t|d;sT>_NLI{uwW>#kLp#mm}#dv~yYnX1K(sZ)x#Dloj>m!PrJTHadg zd^cFvdW-+Id&TW+I!4v|^TmWmZ+9+w-L>oHtOq~8P8r^YX=DzJoi2^ouMZX_tkrJG-Q~g-V-?3Er z%nApM<#+egExp;|!-~jZ-D{PaF}nRJbxP^71+M0+A5o}i8{hN4jjP$VSnmw=f}=}; z27{7g)XIHB(+YXL>(_Sf>1`RM58Al&z5cp-`;{f8zW#0WE?x1X<5+pXDt(>(KeF2XX}+|j{LEl{=QwpLYZ+Nh~sHH}!Bls0He8#Tqt!&pM6D9y9I ze*fa_gx4}VtfF2~>RUbaNsR((eBGMcTxwp>S+Wf?Td>cM zMniQivw0rI>zYy&)bHSpg4OH9v7iqbT@gi-Khlq zyzCMTIxHb|)$lrA#(J=7A&p*5spp{&c2+~%m<&rHdaB{Iz4Vuz)n{!?#$1)LbRw2P z&1&jlYyi*GlE%H8hcOynU3mFa_nIEY40ui8DQZ-0^oxtU3sF-tJ?-E$uw=qyli+pK zGO6ofyecE28qGZPc2!i@_9ml86-8-WLsM5pX{Ne$ z^D<7RWyy~P--6fLn!CZdDz9f_EiZlFs%mIQlTn4htJbM0wLFYRv%Rc(9!9%rio$-% zrDoOeF#5nVSu)BpdFraE$$lo|E@<_j*|J{7m+)k3H1sf5a??Bm!wiGr)luDAdKs6{ zvgE^SIq#;rb~YJV4y$3Ox;OVQsPNibt|b!|8_|-9u|f?+X{>o@sX%xvPAhzg4AWbx zauXgaYintIr<$6Vn{8@HfLBX(tLbIjN(-^HG!NjluzGqAch$9<$vDDYE5t^1H+dLS z;59@Pt(q_4HLz5(GIC)%w4+ywO5~on)E^KRo5XV!$M4unwD914OS1tH>gpb9>z8u6a~{K zp`e=L?_t~tPcCzqr(939sf?VBE#PteFRErGdD_9z+6POV;VHasmdqRZX_tU2$5J*1 z9IRyX0v>%=-* zw6nIBYl}`Fcvujz{_>g@!ecsgI97)<@Yv#5o1;8+UDVJ>lfFwAH968`nAycL{~CH3 zFT-NfYh$E*S4F{4K;5!hco>JkD+ysk_kXy}a<6*SvqbO)G z>HX19QBXm6*cgm~{V^EeVM?L(kHgbiACu2eG{CZdVSDw3#Q}uDfQh#bUQP97Q!nEy zSf0?a-=oi+2WZn1V-=fl9J~eyL!V=GZidI0mfhU=Sb8>=m|lU_bXn~@?clHqNQNx; z{^enWeuu|QP}!B9b_1;glx0W3V~}=|SwB#HHriyo4^bPnoDzkCtWh{JS_i4gV@$>g z5HTOPX(E?P@X+kMP88=h$l7jfjp^`AmTB`FELIWAO+ybu<-wLYjIA{Yme$T(Yj(qH zf>_!%{wF*%uFSbtaE=wxxDlQ#6-!?35Jd^gju`{bKifME57#7fsS&CueY3q8@Q{%V zdk62YE9o#KJC~N2sqip8858Aw`YR0A?1!T3APm!|froJ-JPak7XC^%E+(?I9YJ_KB zExZ}<8fJ%`g!fmvN)g%Rp#(m2(8977dD_9zE{}t;>d>57n&DwJh^mZpr*oWi!cmZ>1D_p!`+P55Ln&RjqY9!X|OQy5^^he2&1NmsyyWzeu(9ci6zWPWtd78;Ma-`NfwrUpkjpOjJ zsdE>^>X3Jowu@+I_HOXJELV`#*h3#ST75R%WL!B~6YVX@pTXnef+ZT6bseJ}?y!5K zWoN_F8lOk&L+~1EF|qG_gV)5;OpV7{tHWtF8Xoi0Hix6|ILNf>6gF$aQClc_!ef}F zc@0VMw4>;KSR5&s{Fr#P6SQX6j`!j4*w-O_WXX-#;_K)9$vTXuJ>11L%sWM!I6B17 zi&ah=vxA^oA{sZr;wZ&#T-`(eWQyv#z+|jARTHtqVTtGquO^~k-L31PUp!R}tz**P zo~pVElip>T8Vc$?O-&XiW6CsZRo%OK+QHFsW+qjpTjvIja{7SjYVtypVLQae>dP8l z#y?>F)lao%SR=CmLg8s)95099HP$NJ+0$;Oby1I6?`aFC8IM!OvDq@0s-5syf6E9n zJc5UoL98EUWsg=b4}JStYVs13F#%#VYh>dFcub16N3CzoQbU)TjCp5UqhOR9JmKNq z0~^42SgaY^$>gCwGh20CX3|%fqlPXs83)hNt^wyt%#3aDIOer`wWsj7Y@mKPJ(ioR zhAuZ5gXSuVw5OEko=0L9UP{{9LIPcrdsc%vF#d;!E4NI%8+XwEna5}SZxts zn?-ZsaV^xgybO4C;9=ZhEzCP#n@N~qn9W__am|G{($fwOBVuBrNl(IK-{ORE)zfZ) zR)0m!8tSQApt`Oy8KR-#9&VMF;UFyBrNPQ8td@VawIj*i3j@N8u@#q4^3+MbMq|U~xL&z>9;-#T9CDvdL(_(z;SISCjN|S?>Nv!K-JP zWht=OZ5Yn;JPgm_p`9^Snk8D=9`{l+VR0=*6)WD{4@VaEjyaA8Z$K5KLq5RK^(#R5q-OM-&9y<$7 z-Ne%l4zJ9}8!_WccrD=JIyZRQtVobdP1|Flj`PB9tJNYT>M#;7DMik)TF`~r{N zhTBBUp~uqGIwb{-QoZl#viw7c?A(&`x+-e`huIw9AgqC8*{GEeMN9 zcPz2+v=+t^t54pbhVC@!A8k;RL17!!XP`S9Ro7i6Lz7L`p|Sv$9IY5C7vX7jV;>dR ztc78#^Yt)xlb&`KUIR~Cj#$Ol@VK(!0P%~b-4?Bjw3W&q9_I}@69r6%$B0;RaGbgZ zj~%UDXPFeOaBaBsfya*4S#E#k!(%Q8LoO%bF&Aui%W(LWVYp=p^0eK`a~>Xi8h65C z=9Ue^n0uQxI8Z4c4`VxcT9a}!nhcNaro}uCk5gN#u;+H|4gi}d2Kz|qX~&X%@Yq^- zf<4W{_*r_|H1phH?Lw}!Q{mOgF5v_`R$pt$k1`CGh7zjnw5}Ii7q;(IT@RRyA0e`W zS_02qTGpr_62!vO+9?Vxvk#tZQ49gwR5kRV$>^J^MJcAbV;IgzRi7O+>CdIAu4yKR zw!5`wzXk>W35ESpJBh5{ttO|L^twIjvow>@drx-9H1yDq+M|XZG8uP5WJ!ve;^$%f z22b`#O;5YM+9IGWKU3jpV~P{&IK1vimY)MaAGJ??cGzURyAS7Qh+5A#-*0U?G^>8x zel_`s$#4uJp2K2;&i$*_BZ!R2=nLx5+6T2^lUT=6N zt;kg##>Ma$)ACHocn=E1qrY-Psbqw z9v4+iHS~T)w#UZJcSNg_mWv4VZ+GVX`f z6nZ|(`m3DKCX99y?+uTgtTpvGc-l(M<~%0Dv}vcD)Y54yLmha{EOpOPJ?-GIIV`1i`Ko`eYB@79Ianp z!D3HZjxa{QOWKB@jkaa*IK8y9@iTagsr6>f%i3L%tHO{=!$;um>*WKNIYe{rn=rV>2Fx5v;nlQs z(+60MpyNNz&@uI{YopZi)Y3Qx9&^W1RNq5?;JWI1+hlwXk^QYTw(||`@?;_K*hr`< zD)$5)D~`SQ9*%Zenl$|X-c2?6j>%}arL7RSO04>w;rSqnWk?w3!D9j}W;mZ@z-taK zzZx~&)9$vGtG3Vv!eedFpcs8BJnh+7IxR~E%sl@cEsZwP{o%<@z*EG<46_^`ufl4e z<+ajNcUOIuY0|5ARoD9_RfZf4Ha09R{*aXHur4fEGoe#JOxGR|9Js9|(*_<7L z72*GJ^YhK@HTr2GGm|DjVihKV8EdlSDRl55 zGs#cV|2t;-*$8JFEt2taGNr{*&%s(7P+%u412fKY8IeqLh4lXuGs;RCk4!UB`ea_f zYN_-49FFk!=}>-N7$+bU2j2zr^M8!Z{|gH&go9W&@p8BV781wWY2cd3(EppHNOjVamShYr8#t=P&4WTrJp z&Lwp+_1w}Yb4AE2{hUm_pw!9qi-B{4OG*7-nB$)UYhG4H$jQ_z$Z%&Fo|73~1v)F} zD#LTKJ@h(K&&iBm7rJHs(cp*7wW~gul9$xUoGzWE|G$te<^S)<7}fpz3bVz!;X=xQ z7d0F|$RqgU-t_&bE zLsjbYrJj>13H)G&i^1%&7PR968{d&P3lh>k8GL$U!?G#m{Gpr2Q#om?da!{YzO8pS^&%z zDI)b^U{<)eWJjr&0OOxhiay7G8G8T5+>GkUi1lSSnQMF->62-;mwryBSSh^DSa{r*CXlwPnh{Vt|K#e z{2!PRpU7}>F4gUAarMF50+z$WYZ;Q0c?kO?bux4KEdBopGyR`3J(;7kkgYa&Xjne~ z=UH~%|D<4EQDIqeGB2)}^mDRh{VN zWTvYreKITHA$>B_drIBhND7T*g#W}G_bp^RG7D-YxwX{EETE0#wlciE3@0<6E?~5n zS?Lag3H)UQGMloO^#6_--WTDFGC;;7GoL`|{~a@Ypo|w}iHH8z42`+UN684$V9tV3 zU|#7MsgDKoL#Cb}dA!tfG7Fploy@PW^U8mc@hq%5d?;?2gEOEqV2%tWGj|ot%UvM# zoXpy-kotdOmcCNPBhycmKGsh1KA`Ahn&$WSmpf5%K0 zBg4teH%{}-7K0TSCL{bEvw#sYoXq$m!OUp1)XDV6O8>vd=zm7!Xq*UU#*<_QIhp!o z89qgZ=VY!gGiCTJ8BXSvtKeeb_0r!c!^xIItv$GnhV zWq3|z3#LJ5K8GY92A77f(D-{+7e6TR&m%ar%|DOe{&@uVe}6>x&m*{h9>G~2y>a#Y z=MmgLkKq1!1owB3;&^EJ=MmihhDUMQQ&-v($gN8oG$Ul$Z*cyNPD2~nc&m*{h9>M+d2=4#y zkKjsiiTE!c!HN2Xbg_*OchlYPSToOs=rSuS7oB0;KWFUe{YADu9W&kIRM}tJJ}%(> zYV%3&>VB_6lhZ#oe&Ri=X|eo486_VzJnFJ<=D1BEE5yq}I!E)Zw~77BHmvggQL5Lx zDOb<*9oc8{jmW}3Zq_Gzb$hL!>Dy+`*Mq?)9dCPGd0}&>;O477FP<+w@MGqfgw}Jz zsys-I!ji62zUBW0=JQ1B$9CW8#`iDVf3flCn9H~|w0hGzRT73KzN@t=|Lm@xmW&-- zHt(>??q|!{Iu!|8@uk|D7LiYr8})O4liO5y`I-6cj#avoA(jlgPkkVI$VhnXCVLCop2g^NxMWd#VEx^6vVf>`yUG&(tdLaO0T`UZYkt zU0L$psb)E=Cm(29YG`|9^`AxdPnx^#)>faZB^(}(8Cb=6(u?SwTkaClwaZWaAmI|g?sH>TDi%A-D}mP(!-;cyVsli$Pn$?wYHac$Nh1= zOD{W^qxJZd*7~vi>0-Axy)N1`yH;r7fEJUsY^hRhdG{}Esy-@StK5Pc38j09;peN& zt~}N$D!OZ_ny+JB|ESQg%8n}A@6OHLq)nH-U5eD&^|gpDLEresFK@P*lUg>bT;%5k zgNt}ytQ6v}Kj8n_f8o93_Fq%W*8OcuiQA=8Pv>eB_B5f7_v-3RO4g}%(|OVfr-0c5 zx7E7$Ozba?t4!>$>iwZW$EIZpISr}2ebIp}%UVq-;!(EcvVa@uuJf)JjL+)xT~}}Q zx%tW0UO$-HDQ@wtu~E9lHGgTi?dz@F!z#JuxJt`^n8?etowu}DjRj{X-QBrwdXeu> z2Ro&IE0P#>-n1<%#HH-QjVIpR4?Q~XW8`J0eQorwjJqoKF4^weDfPD@@0+v@{<6K) z=$c1GxT7wz@xInab~#_{jF$v%EB4XFe?cej?H8NH)!mWUVPDkzDRq~woqHYC*5m9W3R8?hC5DIUJvO!F=lST&~Ek} z&L%E7yyoXW{3;r}8-Gpc-q>%`?rJ@+TpG5*(Y?)BV?_VW&7Ae@QTE|6$e@yMWZc_co&CgGF{#@_FuN~4)u3FHj z>7}ZbHZI&gJ^jGqxMoN8@2%Ug#pIj2)|Sy7v^US+()-to#(T>*w3*iHVXdcEe$8|8 z^|D%R3+<|V{)Ao8adjG}Jd2O`e9&oS`$ju`ci1>M&zt?ubyDV@s}1%zgyb3YGDnlQ zw2msU?Tmu+Psh)7eAQ*o_4lidy&l<)Oio)juAz5Oy^o>(`_1u{wib6-xNMzM;`-ED zvtp)h>hMQ>kLj19hgbi-iPw)0FFTLj_0?4uuWS4ydB@a>TPAGXI^#%YbKh!z>`l(A z-@G$E>FCz4Q`-2vJKgz2f%*+X)86Fj^Y!-5hn*s>Ib2@b#=iTmNt-@=`eXUGF1vPA z)44b_Rwp_v+jg$dNtd{4ZFhbj_eV%zY$^TwN7wT{UGVJFwJrn7)LQ>z%8XxE727a9 zxcZMFdFSrR|82rAVPi_QGSxjkw_|ZpssYAlp84jnbqfEKQ8c7*%g0JmnJPDWRjn}i zVaw;ohtxY*!)J=8KIKJFGl%oO$5%F=Gi%1+bL)$)7}#Y&+~NWc9^RPI;pZHU6_>NI z^7x0eiY?phe8~x~y7%b+r@c?lZu8cC$kozrd!K8KosT6SzqTvBz~RqMpN2cFQ`*-~ zc{k(1#?Fgw6in_B6!gd3Q+0QUv#g$e#;(z&g38{g`#Sni*!;#nf4Tj~gVL{0IQzKN z3S6;i(T>$O^A9_GaqFBOQ}0cC?^k_rXuJDI&yM?Z>(4Ldot>D!qHm7s4bNGl$KQ;$?f@flRxhvrwwmc* z;yo)>cj|X=nJKz#*tx3w<)M@rUr+a7nycp@zw$h%g3Za9` zyKg$%z31R>zYlBhShzJr^>Tl>T+3_FtOM==W&ffX6rQ+Ke83yHS~X z$%gCYo5ja(@jEvobV^{_+}{^g`2M}<`b^h}M;n}Mb%MXdY^~m?oYf2VtGo2z-LQx& zpV|+NecGt*=$2oD{>&PcFlOwS{UPIPZ*jTrzdZ50hf|BT=X68XJ?~YZZ|}2%$CqvP ztVWT7_dZU4_etDF_1YSLA745rKS)TiKwO!JX=DzLScz0 z*9^iF3KN?_SSHdbENlg#ZgU7L#JJ`VTKPhFNFhz7T#9iM|km+d(k2hOkliwbpglZ4&EA zn+2rqx-FsyDMh4^whCig&^8f3+AemJc8G%QKs!YUX_rVNr3$C^pxq*hv`3sI?G@!Z zfcA+Ir2QhD^sA`S5p+O|BOMgiNom5}4|GUOB^?%-q$8q!C(uzbhjdIlB^?(&oq3_% zd7+(A=aV7}g6@>??E*S25=m#oC(>Er*A;Y5tS6lpx^AEgq6aBmq>wHOV|UOc5kR^u zc9X7%g8rbZB7}5Jq>(a&QxDK}5kz}#0b)DkxsfJs`LWg6@L9u)mHsb z)fv4|)l6|6y7)-JyEla2#MIsplKMkMsIZ$Ai*0}*3?0AlL3l!8Vi1I{ zBAvp*5D0Y#LHI7l4T8`r6v9IYdYw+x8m#LkK2n)K7>bQf+^3Q>1WNN@C!fnRJsMPAOeIwinWT!MehjFRm_u?FPf3-9Pb|nqEFx7A zStM8C8waW?5=qs>Cz6}+8wRQ_){|-o-EdG%(SzhJQa~bp6fVDLJTAYs2#AN^G8)2B z3Ux)n5fCyc#EpR9A<`&J83UoxNC@>s)JO=PV!^$fA%+p=$z!HX<3o zPJqx^1WbV7G8w{A3SC9PA0cE=i2D&jcacV6$`lBdCPL^Tq9#J{oC@IzgLvk4UGm@Fxg$Cqw8b#!ZIMY8r%x6as|%6bK(F%%1`wP-Id_nhv4)R0u(0&Qu8g zGa$U9Fj)Bf1i@}5gtb3G2oYHnQYmzu24RRuoCYCy76ij|2;stSIt0hr5Oz=)Ds(d- z;1uCtUiRaIpyr+TPR(r8Z%n5NbK?KR;2L|#^!vBzvu9q;^z-+{cKR&wRib~Z{iSZ2 zcg=ULcc|*U4H<@IuY&j2TKaWEj-8&jrPhyap;6JBCcLhfua$TAF3!(Fw>6%4?(ygO zt*`8>T4nLqsh2wycFSDXv1*c&mUOw1)q1zMnW!1OGpMILwt;^0K>k`(4 zWVI;2VnKSREtwm4Zq2>KyV01_nN8~)@9>)_H5Uh*rO(4d11`55Ry(%!vfA&i=QX<=^!5IbR54;tSi+DY z6}Nd*PCa(4U#pnyH4mA}@5`*O8`Q1Y@ud#wqb4P;E+WRLXofiCs~aKGW}zU@c_^sT zYzU)7)NBY(C|sd1MwFWaVc~oT6X!rMi*yRD7C@*w7s5C(ZZ3q66dqETAly|5NkZq) z_QHwjTY4=1GBV+r!>MZPzbT<@uC}uOvFnC2HM-oq)Nk#8-PPLPobfR0WTmMa?vHv^ zAm&reA%=WUGWDTh@1I4SuUa`rqf8W;%+`M)vb}XB>}>nIB|7iC60~lP>-J+YS89$p zbE0(9*m<>_3Y7g)*Qx7+3OyXxReQ4dZN`=diR%}13169StjCMNzx>)(fB2whj%+83 zIrEUM-6B-~-8@u(s_>Z)A(g_~`4FawEC{;k!gm2^hDapM6rV`5gr5M-7VAlKgl-{d zuINEhMG9%2FfIbk7XhRNVmC>Mf{Q^5MF?q;NFyy4PD?;bL=q0Y+MJ{2L1MX=)qc3VUre4qGylHXZudrn zy}aKc|KzQAp4I-rIc;+OB{$}8x{=;)ewm$PCeNC(;o6?OuJ(&#DlHyXr*>L|&sWiI zHAYSI6=;xkV$KRS*%~$(gm&w57W6TF#iVV&H@vjucCdHDOGkQt*j}pcqpq(+r44zm z+U<&*a<0{Ya%&zBU3lbuRLKQHBX*ac-N^g?r`E}JKGvyRpkbQ>V&fVVw00#5`bA`| zL_xu8QBc=J2pdIWA_T{uAsALc*ev{3K{!ES2Za=&TMZ$89fY9O5VnaF3NA?yimrjM zLj*$2H-oN<0Ma$Fo0K66ZUJ2vA*353jdW8urGRdUDAH|ll5|Iu+X}iX zMv(4_bW*0MvJG@!j3fOfu9F@J_wAsEVk+s8$Rs@$^>=`th&iOE;wkBw@YxA^E*6nq zh%6G$pSwV>L?Y>T@rm?W_@#of#Cp;jq1z35D|(Rr5Gka0!ng;Gk?|`UBYY1U@4KD2&+$;j1`FVPP5sxBU>lixK-Fv^oUgHUzy+ zFI<1cS@9#48NWiY(Tf{Yk`6=hJ^;m_7e5_<;(r9nODehbqQOBZc1NM$`6kYsdhv`( zDwTF=Q1a--;xs71$Dn+L0`fhC!X1yp+IR>;e({OI2?~7h0}2ePbiEz4xyAd zNnzm`2yQ2^0+iu@$;prH3bo;5acbzm4Wkd0FVeH<2Bl@i8U?nGE_(dwWdE-hB3q9u zHD&p7Q=d{U6^52<@T><3$J?&qAmnK2bP9q0c!8?qdBp2=SL7IGl%2Tl6>&!R0c9{S@j7;{^yA z6v8h+@DRHxOt}J~R62zEA|xGx=T!)2DR>E|ix8er7;_PVw>U{*;WY?ummo9}BQ8N` zl>y;41s_r6GK7y5W?Y8QR9vT!bRB~C6$s76)GHADZ$NlSp{1yQ6@uMO2+OWQ@D)!f zq*7>i4MH2S=o*CJTM)idXeWF#AUNKJurUKd2l0u*2?~9#L+}&puS1Bx1Hs`2gwCSJ z4G1oGA?&BnRTytV$e<8@6GC^fo5GZP5K7&G&_jgWg5a5n4c$ARjXrh3nWS&Yxf7di zJ@s(At6k@|i~R#z1|BW4H`&oO!Y!iss7@aQEAq(C$8jA!5;e2*Hmbe5DXB ze1C)B_yoen-yjSXpD3K5(B}b!D6#$lg!rcr93Dc55j`G4aCrt{KZQ79d;}qbLii&H z!^Lh2Q=UU8^%%kk5%L&<=L-mDDU1?MPar&@Fy;w_G2$eJg)bqvJ%wNvBc4KN^$Lgg zrZby=S-sie$;OzpHDjA*{5F4dzOcGWx_z~IKe_hodbw@8z79)j-fwdApvXt1>Wylg z?~0e5{fA<2E_z>FH@#N zqe-=6bM+yn0KY4@28NP#1MMG^c{<*!=2>It@LhR!JTtUcSO1dzm@R zSwHLaka)+)F=~z9XCJybVC};{ZvOn>YUjiTe{4uTQKC(`Gx1$E?*3k=-1GP;w;X5m zEx+W~5!dhA)vD=KtN)T5)x$CMIj%bCcU*N+(!xo(;>+K=d8+frOV>&r-2BDAN%@C| z=awzL>dV8oM|yegbyNq&&K+{N$<@`bZnSneGBV}V#ACVhD=mh2pLt&Lc#do*=Dg~W zg=@WUzkKY>Ty1x+Y83I>{??WrlLw5qKYu48^I7BX!+Rx;e$eu6*_BQycWU)9KFasw zk}YS%lMw$0HDgXMc-;T9xu0nF8jp5wL>{|zYJa%bncNYMju)Hst&*^<*Q=7Z<_~E% z;7gmh++nGWP9>&2Ja;U9@w||Yj~cm;7@fap<0hlVZp^bNkFn}hz6QejXm@hX>bZ>F za@@<|)Vcj}Yi3?5TH`{BPWLhLP^}%cU+RasnGZOv8eO$g%}HKP^KQrGp1d`!@{6c_ z^Bd+e?z4%G*>S(i8)t*~it34FFEEIvil;BooT*tDRqb9vz_Ixygy1)r-ftZnJiMIc z7^~iWaco`XyfwS^PHcEEZrQR1H&cHNwj0~*=rX^wBQdpY-KJgbP zwmIG5cGs#7K96!-0M6g9kgelelw~tL{7o;1B6O%A>dH{7Qzz>S190I{s)AGA0bTq z0|Jib6k2_PQ1=}KoX+1t_(kkm@zCd_K zVZHGA2qBfi+K&)$B&HDj6++if5O5^^1i|qe1jASZD)b;&%u*S5s(Zt9O`RSC3=${Be3TDcy%~ zaj4e8Pck6>d>sTFsww#Ag3w$K;kcNihhUc*!aE8lg^vw{R0?ZtAeJ-9Hnqg z6tsgdB`<_HI|$cB8U!4$os6KHB8qfNoFv^AigBd-;yUR! z;hq=tKuje)+?APEA7c~+O6yPHbu2N zE06FUw1h}-fn6yj@D$XNWOfO?T`@CWew7D-?04&5#d}m|*QOHsJ37N4Z~UPmrWj&L z;ZU@N_7@9lfJ^Th=dS;t>DE7{`g1${^&z3lr*C8_AhM?3PV_IUFJd^+US^~ftzX_r zOe&|puSZE^-Sw^YjP8KH&}sS0pLqgUf8y@(~i`j-q3%@(g}=o=W;&cWYh`qwKo9GcDgqLtoSs@A`}-cDXvgpI!UD)Fk0 z{+J=pT3OdJmWvg)@F!yow>B^(d&>UMM$1ba63%VhmCsXuRcB}Y3vS||r{13#J46hP zjOD?5{|;1^b*Rd#K4@sNo4I7w(eGW*5JeB#$2Q%hwQ2cd+TW3?2`=_my~{R2>7$Rc zq0$}o>%`?o`Xc)Cr*=JSq}S`R2aFCcUdzk&ZE4BO-um~j4$a=xzNvoA%w1@|KXhzG zfBOP=w3TDcL-8eD-_ZQ+yY^v)BM`)%-Q7Ztr zXxC#_c%GujUk!1S7dc*Pd_RWu3%q?4|5^JC_xFirF zG1D`EYD-XM*)cEojrmX<5W%)7l4KVnpR0OJ0!DlA~rl|y2z6}cI8)B$A17!ey zQl(ZIb~8EPxv4Uq3*aNWbC1-jFrL)-rWwRD^RM4#e_?l@jL3>~K|~Ie{Zgw&8!0$W zeuc&^!Q!u2zOD|wBIDt8amp!FhW&q4YBgXd$qHVRT1{v{{IWMQ%8;Tv>|!z^Usb~^ z;Vdg5wHs2a4bA!@mzz?<=Atx|{eDYob)gl6&9TE*+%OpLz_Yxv1f<;KG@ z&5T`7*~DD%c_~E`Y`!dlpI6ZEk8eU$`pUk0E#ozY_LhP8WJ%2jHs89(E_@@kCa`~$ zWiUR?rocqY8+%~-Fybn@q32nI4K1!_>wAxbp zBsE`XrKR?nU$$l;tpUDphkeLb39(Ds0L5YR!>=kaUR&TA0@;V(rG|5WvK+8{5XK}p z0w@OocA*{`({f>c2ZJqcBejkwU*UT=*yMZ_5hHT7?kF{b)H*@yBx{`u8vZGr0bW&O zun_`-y8yFfJO`P!D>VMvJzFiG)Vjg;fM#YB<%h^xcL!DgyrP28@Q;7{LmA0HeE2RT zR*yh|(GQ24+q@?%8*Ndq5^|AK;q8^@88W zp9jnb761!@MF2NvZpKT2Wx#S^C6EZL0#*ZSfVIHS05|C*fZy|<4a@=N8WeFYLx0;L zHwxlD!OhoRq+Q46%eQOn1NH;_>V7J)8`uNv1@-~^0lpP792g2j1N?u!N66+e@Dz9f z@Kpd?0KQXTIIfMGcMHV3jW9cC_COvWFOUx?V8G&A5Jn-OFi-?21{4Pz0VkjYP!^~F zR0Jvm+_|d&u0U0w8o-VFH7?=}@D6wnd;mTHUjV*5;{}ij1fo)2s9Zz67;sPD&D;t0 zM^uu(N!AA(zNCNLY|UOpF?2P^;<0ZV}8 zKq9aTSOcsBl58-GHo({fqyXE2RA3Ll&Hh*50B{_*g-VPE-vAE=bCVAR!hwpwXy{{r zQa0k-O}(?3OW+ScX`l>n9N_y?HiNeSjbZx$O@O8Vx6tMQU(#>@I0(E%Jihbu4frj< z7eY({rU5g6alm-M1T+E~1Kf6-uy>on;C|a2XaVqj7-N7@0N<%G9Eb<_!j5nt0vHT* z06GGGKqsIx&=qJ0)Bx%NdO!hmz#~+e+c4kBasoIF?64hzg9MCSKq|nO(yRlx5A($} zgMnZm6c_@814DsGpcqgba0HwHZoegg9{|1|>MIK4ublJkSA0`emgsX^U((DSxdFgk zxCzi4@C8}}{J!5);5qODcnM@8i~GQDzyshRz=txAfhWLI;2H27cmeR&YF`1r1FwO? z7@b7`zJTn44gS7;I*f||w|gE9xtouHZx%jx^i>OXL0o<%obQ~>1FRJ<@1xp0z4ARe z8^PRm+X1bCG&JoiXzzhP0KSccZy;HLqWO+hKK7dneJHd@APR^EdINm`Zr7HL3pL;- z#Pb5r0>1;?!ntK*i#A*Ka8E?857+>mIy{1vg;5SD4^#ju0=WB}KJ8^CSg z4scggxrg5AjyV2651=Q|3+N5>0r~>{fc`)LFaQVy1_D9AAYd>M41@rozz`q|2nTp` z$eTgl{6zuL0Pp1*06G9~OEoL+(efS80Db_E0G)w0!0+h#55Q#f)^fy&0mlMH)ZHG) z1LTHp0H!1UHh^z}S_#YmW&%7a%m&5+qX8Gd8K?~O1NyUf0$}jvX0CuAGA)gol>vT( z{SdeZ@bt~o_Hls61zW%d;EQ740zHv74i)(Xdjaf)z#?EN!1rq<0OJ5ppaI|oEJpfe zX8hnWU<@!8NC0?yXaHsd69C@w@fL3~z`M1nz+kjYE+7I0J^?4A@XyGUcXhmDn*h#- zcx7SphKn~?yrJUlMMZ$OC8Yp!Ui|2S#Ju6Si026?VC}RUK8K?yW0zFXw_JA|$ zSQ&5u`1Z!D0MFU-TFiUckah*~UI`omn5KtqIL@nx+y&sdw;Nz>WoyOeLgSS+1iXRO zNW2DE3vdkgfW|zS;W}tP13b1SfmLuMR$_ie8*N0H41KviJo9m9I0v1tSLL1p$ug*s zkL5WCyO7EF_=$rZmH(GG)X$R##D&=j{=Po3SIb5vNhfA4z6XWq<*aSBNu&8HTlq{9H(>}R%swQJdp z699H$XdwG?U>?8@R)MYn zM;1Gp9nQ<13+@T@17-vLfmy&zU780WJ$`fK@;uuu=)s){I}^tOwQsNkB5N8L(E4 z(}fvU1wH|90bczZfUWlmcnLfQo&gVmOyC}HR|LG)S1z~%<~d*|Pz0Dkxq=9OuCHi& z1ipCkOkc+>lp(+!fcKEMfSbS#;5v{2Tm!BGSA_3#9F^|Fd;t6guyY>))E)y*fhWKV zfY+D>yas-kp#L8D19%5~06qerfv*57T?t^LegUlQ@f|ih47yp#i)qsXP9Crh;83s! z+X2m>8^E@J4WI|uNV&ne0RI0Aea2x$$n^7r^8pT$v2ZDcfiehVXB2`x4_r{!LF<`t zINtykUL1iOv#d3HjaTUi%^j!-)Bw0mxdGLHssQ)iDu9bfd7=064ux48U{5sxLSP32 z9f85XARq`B2m}HHfc`)~ps#R$iFLj^%x*wepbO9$=mhuy9e_4KYk(VU9e_pEmCXH( zrwL!6zSLTPn*mLLrhpev6lofOc>ovEPc6%_}pe4`_Hsi1z7>}@~u`=WO@~=YtU7$76zcb_Vs;w=cW%5@+eg3UrYkJ0G zMVZc8DTW1bR5DXWs4KEw=?lC4d*0Syrnlx#jq!Yi`|o&G6ah0FU_)DrEC+i8v`Byx zB!++;4a5Vk@LhmBz;O7(fH)u)hypl7tL8{!4|@bq4qzJQLpwo-C!V9>P#6V_1j^-z zz{o5J5tXq3p9YKpMu{xcy$4;&ZWmwyg69ETh-ZSiPFSaFQTWVe24LMyro-m!i~yK^8vLICre|7) ztpMggn+41U<^n3vANqV9{+O&k3_9dB2v`lQ0uq6hzzSeFungcan|JPufknVVKmcqD zw!wPX>wxJZJWF4}{4-283A-ikmaoLQUU~iN@m+?`03;`ex;H@Ta zIeF{J+tu-i$J<*L-wj*?_zdkQuBo43un(*aQUv}-fQ|YAu&#seVBZFYAns8xH=-W_ z-U_hMhr+%AP6ycdWYrD$f-pX5tqA-H zn_;}EqHYW3V+h`3e24!P_y+LCo;O{*2R8zCKyF|bqB0#dGM|rSaSSmqFTjUh)<_Pp z3ju5;-qscX@&mjnuLq4bpVgEA905MNDGKm`oAm_6aIOb@p7Rui^LY-R>y!ly(D|g| zImb{b7)A&cWT5pC2Dv;?4&c3~D^N*t6>w#M_ofW12CyJ6pgjuX(>&f=bJF7~l}@nj zz<%J4fICnVXpi!h1weZ^J^-KYP^%B-o0hC7=3vLXU0Ja*B zSKhE2O1%-7XbH3cngUG#b94M?1~3u(kj>i;{&Qr|7TgAC4Y0|4!L0x$q~8I|tKzY$ zE9~w7ABP11{ehkUE7}jtR_P1w1@r-W1NHfTTOJ4)0EdHzi%bOUaDdOkLVis_I*F&%P*_!d+H0@9_c|9Jv&5tRt5JBC*eGczOrM529c4PVf#vRNRy{`sUiBQB zW`jN#Wflr=J>2H^bCfzuzSJ_230!KPxt<0{DW%xatnJvYp{|fK# zp|InPLE-b{IJ7HKa`DXD&viUsL*W?4N?pP8Wt2-Od1zlieIDf;&;REr{umh_N#aqI z33&dT-?8uks4oJ;opAdL)MHRzRoe&!@^2d&qJ0;o3gsrs4U{`5{ZVeA+*aE=IFpV4 zGLf^T+fSsE)c2|6)WU#QykHvO{1Dvzc>GGgqCt|zSMRT9N){dcLvk_lV?K%_Kz5}a zKPqTYc)$WG1_c_LmOqS$*#6VKjWrY+j6I6AgZ1_e^SxzhQaK zmBOzvQ0Ka$85R5~O;lfXW0AqOaxT}jq0Oy{nt?lpTSUGE3Tyw4@o8*kPQM!#%3sue zIlBU?#eJyCDS8c3_40rDU|v2yiqQYlxHF$iUDPh<>~pD16SH@o2-BeRuqL9h`JqPO z?~D|UT*6r|F}DV2uCf>2wly-^I*Ptp)yn4i&Z6rJ z=~rFEo09AR-Fz@`>jPnmb?;(|;(|JUEJpdaqxsnU&CwWW-O+p$M`M6uxBt+|`h-~6 zYw_cMI@(`Rf1mM?mv``TL%n2ZFUBOn994fxHS10uqIJ(@?XA13Wr((xM|lQbhBtR~ z6P}Xd4}+vlUR2yf1WV;!RNX`vq|;tzkEUXuMl!df8#=uBq#Zdn6XSKK+bc_ITyEL0 zxEn>)k|xri_ttwOX1Ak)X2K->*1_!DT;T8Lj2+ExErd}c8T1tDF5Gml>gB!9)b^*U zA5$7VG=sM*c%ks?dh#|2Hz`z4MT~q4$hug#r|rINGjMRl8A~q{^pwfS6g@ovQZnhO zR!b=UrZ)}cy1fsrYbjPxU@OtYtX4!Q$A`_>Z}Rq>7(aU zVr)u6Tw*E?D??2)wmX(QW=a>j(n_?@C8*-u(+2KHb{=@lSrh54@5bg!^P`TQ2%V9h zq6w9>5`N@}Cv$Xw%4PB7C@v*IsVm>l7@}?{br#g`O{$L zoec!5;oWCNl(|-Y$%0s>Qr3N#8DDMJ`hta0;!mr>31g*r$2#j0JJlpU$!L zyFfTYy4#Z{KH(L{SPSBjN-4Lg?$_p9DbPZ(H&Syi@HRIpyzQOZ`f75%Tx&rXRLWS_ zr*-PLaDHT=1Q{s-ytc^00jbJJPL$65M8{sbv68PF35to1&Svq z1+#P`GShx-YoUl<^e*$Z?1dXA5WQ-LjZa>9YMcep9h7FEG)oWBe3fy@WTCv-i*B%H zDJo)N@=C9p3kTG*Al3wtV|ySxkVWN1SovDhKOF)(&yqAoW&PTC_oKe;g+UkC9~%=8 zEu_1VVb#@1>H@|>Qe{YU`qNg(lCJeHoPg?^{&bt0KMf##2Xv7XojS48+p*Ixq#S*A zDZED=RRE&Mj)64BN4U`F4x*WKa3Ey>{-OqPM+dQ@@z_C1|HqwP{WU7M;569f73oU@ zI*K^yhe5QbqZp5fO92D0{QWwK!IF0f&Fv)mO5H=KqLUaZWrmQu9=6O5QI>zt3FpRT zEQm+wkA#EZ|7;3DsgF@^kK1zTOv59tOo1V=ZZ?EaB6v9{K18kiG*rI0m>!H98F916 zvA#fZ0LO4Hgwi2KY!6d3j=1>1Gkvn-2q4s;sLD|FaiJESF>ojs&{^p~j=JxLD<{_U zqt3UT8@T+gs)7#iR~)&Wu@9j>))~7@_7LjhEmlZDL#fIe5}YFFu{Ug?*wtV?micn9 zM93)hfkCV;Oc`M{n8*|?>Zjn;voP{!xCJ;ly8SSUn)~tgKbjK!(95LJikENyFm~x}m;WgO z(gzL-==9N441{q$5RTCF?2lhwy>!AYL-kO|Dg?z9l((EVhBY;2G*l^A?OR9V?|Q)d zF%Y1&;g6XzJk)&FV!e(g%$U-cz=? zyq!gQt4K-$!e|77rT6&yNp|q4xIl}HP*B`Jao@eqrS1F6sw|X=k#vN4XR3(%TYp?M z=yClc7U|1C;TRgft=&iM#&p|d;Vq4%x<+Vr7Ko-m=yoo;`;F6Modxl2Bn1LttR1EF z-*MG|fg1uBY_%X-fZ_q(TM5G>Pu(q#v`~6S(Ywq$5(u`8erAd7Z^LbIFsz9PlR-hg z#q`yr5z#r_<5yTHIZ*7{LJV6Mzjb3pK+rekh&u5tg( z3n~ILawCfRc0s@h9z(^w5ghZo2tVEaG3vR?_wwL18-DKsI1WJUNQ<`H}MXHDzBukRIi(p*vLb?mSN}_5kq5oq&a2O5s!(nvRc&ha(I;j{>-Cq^Kx=Z5~ zwLi&!C9l`8`wkH9r})33wwna+9uoj|Qy|z?Sv9pH^B*s3h}P=-o(QBhc5@66ehh+j zYPt#jN83;%MD9s93)&*RW!mtSHsf4L?R03%$6l-jRc4L0FT~85L}z-z$TfXpuA0b0 zvHZ^qT8%z`vsTyMuvX0oYkE=I-t=8>5h^vALOuFm1g)pgus$!qoygn=Cu?o8;>F*b ztSU^7XxSPXchMXCa3F7!Oh5M#krA0_8}vT@3xVV{I`hyF)2qi9+*FVTY?kXl;WheO zaNdtT_gYO8HXE}jT4Rmv$+u!Tq6}#9!P0}DJ>J8MZukd{v z2_c(2oVa<3MP7TTA6(pIk)-+WfpCJn9(d}%7F1ck=MPKXfu_k&B3*|m>t4N9>bw&a^)TuM3ZGIbGG}tD&@=BjYZ~E= zBXWr*e>`w#HARietNp>b)+|nzW;0M_I^DQy)5ll!o-)PP2hKP=gYpN$WMeaE^FS;) zoE;x??LL!&-hkcxW>Weah=Tz$$u$`7-fnnIEbAa1cvq| z(hf$v*kYoD!I_v+Bu@B{kU-F zqo9>CLcRpd%O(>L()-!8VhARDcQ&0xtvd-0R{X)-i@(3(5XjjLcwZO2kKeUyvu>z( zppouno9%~*P>s6a4D{}s2n#=C)8;qfG0(HfX*gW%l^iM^jt+D==99z41&y>ihl=0A zi;X!{HWJHKZ5ub@lK^ilr+QsKb7bMlJ&0z!dt;9+Kt7)-gO(rZ@}+%lsf5Xwea>ce zE>*Lvl3cPIg-%NrQ_?7mqHHm(ABE1{mQdhm(6d8mjO9AGn?<3qS#Ot zWw%rr@3qFhKK6C;`YGdOziqsfZZK~E|K9XHR{uKgV`yc^=AFTO*9!rq?OW^KlzqOb#?KsJar z!9`RQjkP(lNb#mar@n~2Gr_wTe1=yF{B3*@RgFXcQ&oh=s3r+3i@jRN2>D7itBBmk zqW>Hq?9t0epI>xQQ)-O?g1032doU=xB^_+vJ)l{@8*4z}vo55cFQP>7N@_2X*BV+k zR*W}xS)+1X_?Q0};motzSewyOVy zYzR4IB!R*=s?BvTKYRY#B|mv0&uqsIX z3`WXK*9;%98S(hZjEUvL-`gN*YT*r^pO7(XJ`pFaK4`PMjT`Y%c~SjhTS?OiZ+OvK z$u@OWLgP3f`26N$|I_#FgPakHL-B?~P#27Z9d2;v@^y_XK5~YxMujIcL~*b`6Er)L zJo;V-h25GzsHm#wej1>z3C*g?px@STLQq{3Dnj}+loFt{6!Rg?pNL7Dw3!a5bv51_ zw{2D=O#kfD2d*>1Opw4U6MdLL;T@ns#G4y8wrq4urpS}_(Pruq2U&srDJc%Jk#x+C z!(P^G8~!Q?#&;W~#>2aNZ&U1% z;n(Tj#K3OHRYl;t5!|I#x1m68 zDLvsjcsuD6;PnODDI-Cwu;!_}?P0KocF?(0NceOI1y4dcuhT9%I|=6LwoCDb2^Tt- z-J927s@$jSp94T)ugKe!gc@3E@~bufgv-@> zvx}GJ#Be5pdxeY+kj`@vzUXpk^Wg*SLE+mwtT12~B~BJ@&j0qj)V;J~vT#?vKDyHR z$w-!NHPge%7~iaYilfw-+~dS|VJi+IWWs~Hp)0rj6p$n$?K|#QR{5;`v@uB-jNf3> z;9KQohi-{ZE^iEg2Dm1&SqVrdPzoJQy?sZQz7AQ4U!d7M+D{HsU{&Ok+fG3aBJ-eP zfiH@Ceb@WW(^0Yv**y`T@~1$r=7*GZ>RZ-w*$!#LAM$NfcDjy-s0y-l{y;Q9Z$rL! zH4d8|_bX)hBG|(cL5IjGS@g9J0fJ|_zrop62S=ld6RWOE@`i7-Ajabj%rIQ;tS^8sIe z5n3UjsfCg@H5Q8-KW#Ps@nFu^zmz#@J_VNJ$xHg7W@-2>MZi1A zw6HpKC{4Iz$=$!alb48s$}gwNBDW? zq~dO-fRH1jsB0X_UfLeeziBg zBsgM`{^xgmT?zs#2gePCMGtJ<$MnXSBWi$oJh1yBab;R*wh3WTqb)C1^`F6I!A2PjX1C5Fm|KnsF$(i_{iGF+*eDQ4dK`94;sAdz+rn`q)23NjFmv}v9A9C z|F@iT^{r%OWtaZ_3*~GO9*{j@^~S4Ssxe^ldY5SHJh&?V)f1nh?DfuB{Ra%;uP8pa zz5t>4mz%WmGWDMi4;^}ycFc#LjlN11^I?FASLqqoN!Q4*0Mk3^x}wF#&3QXY-+wO2|KN%*F_z*Y#}ZqvWGqsAmo~aU`WjtfNq;|d^o2Y5NhN&aha{C9sXB`g+!v}3Ud&8o~$XJkXV>B@;8 zs}tffzX7jUxX^Pn75cM z*kld5GNa$FsKZw1smwn!JF8I9^ph5{S}N40J~cUMN(<6Ju>c88{3>ruBd_|`w^zBmf=WVgDUeSGcuz8UX~jZ2jO z`M?f4uUEFYqFI()rkqOFUD@ln^P($nK7qM8;J{%vk^C7Wc+Y(dG%6)hNQ@xwBuD7uxJgpLB~F(krd|6}NTDbU4kW z>v>|Xqd}iKAw3XVd*_si(aEvnC?;P7)k&S6gnv3QIWCE&e1{F~p|e&?u1ka$Qjh^l zL2%Hz~GL%;e-{Q?xDVvt*&}r@I?la+Ger>ftpLZVO<@im)i_Y)BQ@*X%fu61xj^@*wL~jkg zjQE)Ae<(8SDKuX=(A_U<#?@$vX!Dn*Jj@IX^Plf{=zn=vm5&pkMGDwF{@$!ZVTFI= zz}W1_XBoaKSlHwNTAK3k<>swnT3hpy-C}>e7SV|*ah)(p(L7U=Crye@92c9Ml8QO& z#3V{NE=G1p18H1rr>V(tfn(z)Pl}CC=`7dymmlLMCq}1E2FLV-SpGejx%#-M-+<0u z5&qQUlBiDyj*Et7w~OL?L2vtO-KgnR5l`C=!SpSz2v76TtHMr0J^E=~XysMmN$zWe zgZYbVFe-U%7ftE4D&<*ydCC~&>-5!f`9S(E)QNTYpCfqtmbCO3K^qI0LtFP=LY$!7)p0@GZZ z@*y2^9N>}iR2Kj zbyAvr!nFok8m4WiG*iQ2vl^U>Eb^mpZM5)*Y_B13_c24X*J#O5?F@|{&DtwknY|;l RRrN$yy}{fdMq60-e*rO { - {{ crumb.name }} diff --git a/ui/components/Checkbox.vue b/ui/components/Checkbox.vue index 9df3f03..ed7fccd 100644 --- a/ui/components/Checkbox.vue +++ b/ui/components/Checkbox.vue @@ -1,6 +1,6 @@