From 4c3d86ded7e979b2d4a489bcf94aeb26670a1d13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Zorro?= Date: Mon, 6 May 2024 16:21:59 -0500 Subject: [PATCH] style(standards): adhering to standards - Replaced commitizen for czg - Added some scopes to .czrc - Removed unused dependencies --- .czrc | 7 ++++ .husky/commit-msg | 8 +++- .husky/pre-commit | 9 +++++ .husky/prepare-commit-msg | 11 ++++-- .lintstagedrc.json | 4 ++ .vscode/extensions.json | 5 ++- .vscode/settings.json | 1 + architecture/workspace.json | 36 ++++++++++-------- biome.json | 7 +++- bun.lockb | Bin 132080 -> 111392 bytes commitlint.config.js => commitlint.config.cjs | 0 package.json | 17 ++------- 12 files changed, 70 insertions(+), 35 deletions(-) create mode 100644 .czrc mode change 100644 => 100755 .husky/commit-msg create mode 100755 .husky/pre-commit create mode 100644 .lintstagedrc.json rename commitlint.config.js => commitlint.config.cjs (100%) diff --git a/.czrc b/.czrc new file mode 100644 index 0000000..4014f14 --- /dev/null +++ b/.czrc @@ -0,0 +1,7 @@ +{ + "$schema": "https://cdn.jsdelivr.net/gh/Zhengqbbb/cz-git@1.9.1/docs/public/schema/cz-git.json", + "scopes": ["deps-dev", "deps", "generators", "templates", "scripts"], + "useEmoji": false, + "allowCustomIssuePrefix": false, + "emptyScopesAlias": "none" +} diff --git a/.husky/commit-msg b/.husky/commit-msg old mode 100644 new mode 100755 index 46ef74f..25ffc9b --- a/.husky/commit-msg +++ b/.husky/commit-msg @@ -1,3 +1,9 @@ -#!/usr/bin/env sh +#!/bin/bash + +# If explicitly disabled, skip the hook +if [ "$(git config --get custom.hooks.commit-msg)" == "false" ]; then + echo "commit-msg: hook disabled by user" + exit 0 +fi bun commitlint --edit "$1" diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..8dce703 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,9 @@ +#!/bin/bash + +# If explicitly disabled, skip the hook +if [ "$(git config --get custom.hooks.pre-commit)" == "false" ]; then + echo "pre-commit: hook disabled by user" + exit 0 +fi + +bun lint-staged diff --git a/.husky/prepare-commit-msg b/.husky/prepare-commit-msg index 0a90237..e079b0e 100755 --- a/.husky/prepare-commit-msg +++ b/.husky/prepare-commit-msg @@ -1,5 +1,4 @@ -#!/usr/bin/env sh - +#!/bin/bash # $2 contains the source of the commit message. # It can be message, template, merge, squash, or commit (for git commit --amend) if [ "$2" = "commit" ]; then @@ -22,4 +21,10 @@ if [ -n "$GIT_SEQUENCE_EDITOR" ]; then exit 0 fi -exec < /dev/tty && bun cz --hook || true \ No newline at end of file +# If explicitly disabled, skip the hook +if [ "$(git config --get custom.hooks.prepare-commit-msg)" == "false" ]; then + echo "prepare-commit-msg: hook disabled by user" + exit 0 +fi + +exec < /dev/tty && bun czg --hook || true diff --git a/.lintstagedrc.json b/.lintstagedrc.json new file mode 100644 index 0000000..ca87f94 --- /dev/null +++ b/.lintstagedrc.json @@ -0,0 +1,4 @@ +{ + "*.{json,ts,js,cjs,mjs,mts,css}": ["bun biome ci"], + "*.{ts,mjs}": ["bun test:ci"] +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 6a8f3cf..ef33625 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -2,6 +2,7 @@ "recommendations": [ "github.vscode-github-actions", "gruntfuggly.todo-tree", - "biomejs.biome" + "biomejs.biome", + "streetsidesoftware.code-spell-checker" ] -} \ No newline at end of file +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 861943b..4d7bbbe 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,6 +3,7 @@ "files.associations": { "*.hbs": "structurizr" }, + "editor.defaultFormatter": "biomejs.biome", "editor.codeActionsOnSave": { "source.organizeImports.biome": "explicit" }, diff --git a/architecture/workspace.json b/architecture/workspace.json index e29e92f..03b6326 100644 --- a/architecture/workspace.json +++ b/architecture/workspace.json @@ -43,7 +43,8 @@ } ] }, "id" : 1, - "lastModifiedDate" : "2024-03-18T21:31:04Z", + "lastModifiedAgent" : "structurizr-javascript", + "lastModifiedDate" : "2024-05-06T21:18:50Z", "model" : { "people" : [ { "description" : "Architect", @@ -58,7 +59,7 @@ "destinationId" : "1", "id" : "7", "properties" : { - "structurizr.dsl.identifier" : "b1a0b14a-2558-4af2-b9b4-0ea6b607fe44" + "structurizr.dsl.identifier" : "eb7d1b40-9293-44b6-a662-e58bef5abb01" }, "sourceId" : "5", "tags" : "Relationship", @@ -68,7 +69,7 @@ "destinationId" : "4", "id" : "10", "properties" : { - "structurizr.dsl.identifier" : "4ca9d221-462b-40f8-84e6-2961c3e5c406" + "structurizr.dsl.identifier" : "94feb38d-3dba-45c2-a126-fa48c808d4a4" }, "sourceId" : "5", "tags" : "Relationship", @@ -107,7 +108,7 @@ "destinationId" : "1", "id" : "9", "properties" : { - "structurizr.dsl.identifier" : "d339a508-1f97-408d-9e66-8dabde1d921e" + "structurizr.dsl.identifier" : "d27441a0-7130-4660-8d26-1941098681ba" }, "sourceId" : "2", "tags" : "Relationship", @@ -128,7 +129,7 @@ "destinationId" : "2", "id" : "12", "properties" : { - "structurizr.dsl.identifier" : "03b46530-59f2-453b-9253-0182428b2c36" + "structurizr.dsl.identifier" : "91e8dc86-99b5-4971-a292-1ac802de1251" }, "sourceId" : "4", "tags" : "Relationship", @@ -150,7 +151,7 @@ "destinationId" : "1", "id" : "6", "properties" : { - "structurizr.dsl.identifier" : "439e5c1c-3864-46bf-b162-faf67019a54f" + "structurizr.dsl.identifier" : "0ddcc401-1df0-4a9d-b323-201d82f759f2" }, "sourceId" : "3", "tags" : "Relationship", @@ -160,7 +161,7 @@ "destinationId" : "2", "id" : "8", "properties" : { - "structurizr.dsl.identifier" : "83bbcae7-3353-4780-85b3-9a368459c5f3" + "structurizr.dsl.identifier" : "556dbc0b-610f-484b-8a8a-60802709d6eb" }, "sourceId" : "3", "tags" : "Relationship", @@ -176,14 +177,15 @@ "views" : { "configuration" : { "branding" : { }, - "lastSavedView" : "Container-001", + "lastSavedView" : "Scaffoldizr", + "metadataSymbols" : "SquareBrackets", "styles" : { }, "terminology" : { }, "themes" : [ "https://structurizr.test.zemoga-client.com/share/1/theme" ] }, "containerViews" : [ { "automaticLayout" : { - "applied" : false, + "applied" : true, "edgeSeparation" : 0, "implementation" : "Graphviz", "nodeSeparation" : 300, @@ -192,18 +194,22 @@ "vertices" : false }, "description" : "Command Line Interface (binary). Author: Formula.monks ", + "dimensions" : { + "height" : 841, + "width" : 2300 + }, "elements" : [ { "id" : "2", - "x" : 0, - "y" : 0 + "x" : 1649, + "y" : 249 }, { "id" : "4", - "x" : 0, - "y" : 0 + "x" : 899, + "y" : 249 }, { "id" : "5", - "x" : 0, - "y" : 0 + "x" : 199, + "y" : 199 } ], "externalSoftwareSystemBoundariesVisible" : false, "generatedKey" : true, diff --git a/biome.json b/biome.json index cb75730..317691a 100644 --- a/biome.json +++ b/biome.json @@ -1,5 +1,5 @@ { - "$schema": "https://biomejs.dev/schemas/1.4.0/schema.json", + "$schema": "https://biomejs.dev/schemas/1.7.3/schema.json", "organizeImports": { "enabled": true }, @@ -26,5 +26,10 @@ "noUndeclaredVariables": "error" } } + }, + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true } } diff --git a/bun.lockb b/bun.lockb index bfa31ec49c0ffd71fce4c2e8b15aa98abae58b16..0cf01b52508202bbde2e9c2a0e5a5ad262700d55 100755 GIT binary patch delta 19346 zcmeHvcUV=3v1nsCg|k1w}xLEhdntZ`4GiE_I0| zN{TURqOp-!V(h(_2#OJn##mxW)RPSmd;iGR-FEJ-yWe?_OaAa?SV->sVczHW;)%dZ(l(WsX4YYCB1C0H2jT3rOi%pd_8B)26(PH7q=jj->ii^hHHcW_D^)Ub-aR z22Z{6N9K@%Qde}PcC|stqEnzWCv?kAP0N?AqCM3cx*h{h^|GTT->#20S?8aC){~^d zqFgxE6%F@6P#5$LD7g+sW{=5|q{})#4wa-}4k%4j4mr_b**U4C;2?}c&RTX;{5g;7NWD6izAX2y3W56YHHD`XV@94l*_P3em94P1D?nHZ_VM&mEeY zLW)#iK$@V5henO)e0jMImmfoW^59-wkpB?xoJtM0XZXv8GIjqt%KZ5i<&Fo8=!q!ZfFtkW*9{;r;Sf+|yiJLu2i<1c2x=GQcD>AdB|2)I9Prs4w_`LqRyH=yHH0d4i4z z#G-&!f>QevptKJMgVJi`rHve&mW$|2%gfFjohJ1QmZXM|_W&i!V?iB2cVWERWQkd~ zXlO=OYCu7b6pN4~i^4+rCOfY}V}4`Y$E`H|#wBG^088pPXg(Txl0GA7nCzjFO_-)n zQf_X>P%Lda>S^Boprr4}q?~~4(xY%q5UO`H^bFJW%n8WM zPD#p714RnWm(E0J`j16ekV6JUYN3<`o+i2uoTXj<&}Oe`|XDoju|DaQ|wrwd(~+YPAJLsw!#-O6w^)Xm-}u+qLSbs##bxJTE{^ zUAWifB<1F%HAMvtVCkgMP*76nFeuqIJR?5?rbxy>(>iPNN9`mDndW)F4qY@mgF%t8 zi@bFnw>0W5?M8b~389`ee6%Vk$ju0#+geUR*0_}H)U?jsw2q;mWJx1Xa$qGoA~h8? z(Jdcf)f{~kl-g|pr3qJnQqs5?r`4YarBFPi(=9|Pk*?AO-SmNW_0TNof;F#&dJakx zM}tzRVL$vS`J%&4!H@L;DL?pi07 zAFC7WI(5;RMB9W~-)<|M|G2Wg3Ij)eq+1I{Dj$&v2-i ze8uAizvi@t?cv4F78b(G@R`fqTrBKE-XEV1yx7H}^pPbA(O+cZB`#)VCb$G}Hryx3 ztXu^LzZBW2oS%&(y#h|=mCk0C#mihRY&~~#vnV%F6RNhOF`C*+5;kB_b?U`3c^O)i zLWUqlU$kI0yuZ7JS$Hu%$M7}fG=g)EdW_KcEmSLf~xVw31NA)+|0^WaM&xP zn}=CpiX}655LPp+!78t8KB8gh4982K+8(Ne(kdaCzb^HV1 zXhfOXo8+33)RH%75T!(;ggu9zB_3wBgco~Tl*^E5^HsW;Stxh&u_!r+U9EqKrvY6tLr`zzw-cjsbUfjr{ zTm&Dh>4!PJxtpKGlz@HGM%8jAO5`gOCyjRSGCvEe$=w=TSZCh9u|=7Itw<}&cv3^N z;)qO%T|_$gm`&5b^`n_gmr#o10~6Zv;wBblQe8=Etgq0`Oh7BA?V0Z2p2xfL4mj#($4i1E?DQ%{4KN?%3vCcAkUY?h zFK~%biXkLp5Rr(mTi_^mp+Dj?+Fgipco|> zsp|O*N+!4jbUK-0mIXVhp^ z4*#jn+a7R+Y63=_i z(UAMV(Pq*n@bJ}!)NC3Ej?}b4B8=eu!wZ$YkVHXJlNOQ5+|8^eGkmV(#b%5As1YwW z$0)7+jE*JFX8W<=0?~;{xFw-u3qI4?PT2%$S9M}!Sw+T^60NctK=S&=d_jDSe7`X- zkH=y+F_a?Ha=~fwO6qR|7mI$H!b(%k3F?MXI)Q7CI&Hb$0jIfyM%fLHJSp)c#NRV; zWGI%|!)!OmU#sKZEh3cpVDt#^Fq`T%!>xfYZW3i0h*C0N+#*WZh7xsVywVSbG}op< zQuZ;+vCX-Aml$OZgxUi5bTTXD;5w?am6*+nR|~^eNf{A#V6<(44XP{yM=HZOjP*kc zKA>xi(xjzfW0J)zC%5F~5FUk)%u!91l>k1VTa1zuAW3~7#Ij?aXW)jYgCXN8MOcvD z8s}n`?*?-BzA;LhAR`v2LlHRLwQ$h^aO8IE6=$=o1atR<7-bBWY$$|k7E&s}k*n0K zDZ7R6@`M<9PzZNVj8Q%gk)+p9hcIhyHa!D}oq+p=6>cFDwKbZmbLw_8?FAR1wt9wA zxZ0cYLs+Zl-h^Vqz>$?UYN+o6M`|L=v@n}YC?exy$5~LK5!8811>ic<$fnIGbyer6 zjfa0~QB57E6F4#+mLXeB28V{=D0aREN9zY$Iz-rk>8w^!7F!49EzGlD9LRA zN8K<%bF)&@Y^)fDG<5d7Opt$xGJ$nDzja*%>H z+}#?(HuL^gi}DyDMvGWawO}?9!31!)RUoUl!%%XVmPb;+X&TXjEd)pI)9Q|bqgd5~ zMv2xe#F)rb!@;GYPRqAt;3(VFQ*R3iFarW`bXzC|M}F4==LtBP0USIX0+%7eifWNT zN-{Xa4?Wz$A9KKU0f$lGt8?JUSL!32;spaJVZc}35q4n6ahfV0=$!gIWjYTIk%_pf z-%cAqQ{xqI)JHRI3OHS1ic^eCb++nm`~(~ZAr5s{z|pq1c9tdic#7kf}U@5(*au?}Ed0dWfC@ zN8_o%B71b^3#>6p92`rkYIk!Ej+$Wg;P=DeUIhpL!JDtbl{B>GBo2;Jx@OclaC8sU zT+<8{dL6dVC=}_IfCmw*&=PQc!KpDI|Js$i_lQyYcYD61o@Uc@a1m;{-Hj3rtKH1% zy<#LxvMmK11qE_}#jJb=uDd!c)ja^Gtp;ts5!R|80McBnj5>`NukP+ap zj+$=D6L1)ZEX3~Yg3&dbDx=KG`!6`y^j%fX)DRkXRrmKWln`|Kc;AB?1djX{Vb@c0 zrnXH!1V^^uTS$~yzSfhw508<}y?A*f_Ai1(+d`zqr{Gf2QVZgm@sb1=(FCxw4>(PI zM1uT5JRdM3#~~xP#1u%suW+DBzJ%T9sphcFO>Rw0YrTO8pl_sjqo}QMM*+Iy@=KZ zu;0}VNNZ{b>~Zy~N)<@35^8;{PT?x`A}RwNG*+d=BS_TtSQz!{tj|v?r3P6HBK$NHyOQ>E%sU4P0y{b}D04t(i&#B+b0`N3&0zd;L0ur|$??UEE z{ZuX>yCIJoZ&zpnHyEe}qyf}^s7{B0Qhlb*j|8RbKT+zR1#r!a+YQicdjPtsQkrkSDphHr zWDDl7E+9($ahQ`ZG%LB1#HW z0yM#8on8T@t16}XA62PFX~63`UzO6tH*|SbO8svkORCo`d{V=ob$VN;cR=YPN{amo zP`mp&eE>=qQIbCdZ1|HmnikUVj{&->Qd0AoD*ext`ZEkkqslt9(Wxy7aS^4WN#}`D zu^NM8X#o1+AqfU>p7<8)&5j#ev3)p&yf7v8eKu8>;C>0OA@kUc<2mENFK^(uY*UsCFqi1sw) zzw~}pDJ95cT@LCC_D_QUgSX*_i?sYY9NkF0Ouc(mN}`c^eYQ?Vf!aYnjw=5@D7qHX z3vv|{Aua%2RVhWvf8V2qdVl#JeALkA{~vqQX#D({Lv_6NEJ7|%0BCs=N&e5H#y^i5 z2!p?R^^{&#txSb5B|EBg#r}Q`Xt@PN%JGI-hkqkw>hz z=l8+A&)c0zmML@w?#WZ?NZmzq2yVOTJ6wT{qfu(^)H<%j3@`^54Mi-eqNi z*V&!OmzUb}g56eD%(sK<_mw?wyvNEG@=<#dx!u?H{4}`5+-Gkh{|emXy;k}W?S@32 zzR8|ffGgq6_9b%H&GvlyJ}di(mx0>{E_%O}eZr^iPvm2_*z*mT{Zr1$61o3Yd!ANi zWuNgc!JP%?RBpx3f|AN%-#5?<+~>T`IoP)inw_)Ct0lhUTmruaw()tZ{H4Tm&nNKt z-$FOA>m=@5k-)odhjJBGd4t4Hfc*_@*afRxD)F~3B=F@s?D-Y2UrRjn`vl%^C%pQ- zRo*P|OJMDG!L1jq@>Yq@zL>zj0(&3qHi@^dOyKFe;n+&6yj|k=z`E{%XD?ahof7}> zQUc!x)^yn_@0NJ)%L#n!Uf2qDuf*ja61e|982f`&-Y@aBV9$bex?+_NN<8^W0-v%U z=7K#e@w!(Nc*FtNd(|o*g}q>}fo=SwRXz@Te}ugUVK3N|u=g75Jp_BNS=niR_aK%O zT;D_1?%&aELceV1Z@9e9$tmEiY7@inX1gwO{mt9q=DhGO4}N%k^o93aybISQ4$nS) zDeKVM($ao5DYHJizGz^*&l?Rbn3E!cinjh-$QK`W<$Z5ic)@JELb9N-2Xw#whb@Y`_OF&KW^Dp$gAu&&2p_#LZ!8HV41)4=Wqdj*Ey zh0{*J@Vi#|M;H#)|0E2*XO(|~;rHM)u&2S^fZ@NuX{TWLFIM>$R`w@2?KI}yVP&`Z zXFIS7z}fG#vb((hPHciR_IxY2U%0Xho8UWpJ`!PnpI0I%e*@R)fR#PuvkqVroW+uZ zd&JwpoBhhL;s>ql4_*Sx?8*^4KUw7`h@I<*4zP2tTiG+tj$jv@gPljLGGl!05!iVi zb{@6LHjF19g`Hq`gEcW;_ZaM~fSt#za&^Xcfc3usJC9psh4I|uuoLWQur(R?Jpntv z$Nu`o%ItZwU$GZ1Vt@T=Wwm)3xNG2UL5Dg#@&?STwC9U&SXn*(6S%II?0NT_R_4Tu zZ^BG)(f6(R!T!|yF!M6{fpg=L4`AjG==Z=XdobQ+J=XIIeDJ`^8t`@xv7X>Qd1z$~ z`CV}7R}o*oS(y(n`7M$8@<;e=#N!_&GC%$qJ{xoPdm?MX`{T1I{}P}6>y$q{sx{bx zV8r*=qRjf*?+(%9OTn;A{I1;ayc41wW3SmSgQzB&n4IyYUVQ1yJZ8Jrx6jdk-Sh^e z4yv^DqCM-yv`>L@AN)+%R(Zuoo1l+iCaj5n^ICOij!6K%`xPzo!!J?2)IF9_PZ8(H z?A*Q$(z;V0<97+4LRM4lL(`mn-q^Ic6@GQ>rNMeJKE&CT+Bh7I*2coGLkAAeQMh) zjB3|Yt-Py;=;6fL$k9E;G$%F)!_`-ZyXk~(bK~)@<+&B}#VTj!Xi|RxwRF2PTOU!Q ztNy~HV{?($pG6lweWqRTg!Bl&J&1lmPQ47C+_X`b{SHcP==oR)d zMD6I+LQ7rtM3>QP1^SAPt5AB1Piknq%^@kho+25&5NJRJxcWP4Ll5xt zbeXr_&J+B50C~t)Z`T0j>AH;Gui?M?lb9}`BP?FMQP=Ma93Cbso z*S~?fuqlKm0n#)`@9d84FM_L z5;z6WT;a6-)Gz=zqYLR}BFO@YM}ZWG&}B$cYG)caQkMmzOnph#Mwf-4OfSJ{vM5~^ zs>^5$;{|1n9P%5k)FAOqD)SZl2C>+I^fE3N$OH0$0$?;S1{e!awAKeGLMb9$0E$A| zDzvZYwJ?3L-w3P))&c8*vA}pyGMKppMw6Gxt1U$3VCK=A zHXCg&+DsHJ6ba72tC+11&=+V1kVUlew5YU*!2m5BEfnnw3VGVBC6ah$2=lF53uW5) z)d9*p5)(rQGp|C*9@~I#f$hMT0A-JV1MdKoG^PSYz*|6npfm6)&%5?fCcaYeg)Dn&ro0>FbEh73;~jW9zai^7Z49vfoOmNlXAon;3#km zpj@#AbTv>LWu*8*^(QTr5L^QG1G|Blz(gPe7!C{uQh-z-9_S790D1zQfLOp6xDO1+ zz$1VRpf_LvPC$MfutE7M=w;vnFp1W<7YgOTdEhi~4fqMT4U7SH0MmeefEl1HNg2}{ zSc&o9@BuJeY)^q>-$n5~U^>tR=nAw0hM`*wK)I3<>J7*a0Ed7jz*69SU>2|d z5Wsw324IXy^~84rP6CwHZh=++-vg+7Rn1|Gz))k#U8jIE0HvazL8-GLJB#vn03~Fj zTn3&nllC62{4h1MIFa2n3AHE3(#lRPeU!?!$%O||CSQ?3N9DidI@t3gJkA z+EKo!RfrFYgNp!l$_5}(Up*RpCHOkP4*>0hO91VOpMYz?kHB@{25=LgdjQ=Jo}x@+ z(1eeHyTBdbHbCJ-+n|s%`31NKJOu6ow06G&Bzpin0)7L22c7^`+tD*DO-K_VJ4g&5 z3!Z_{<|Vlav<5&KkbW#_qdQhf^9Sy`qO5 zOP%n}a6f9LseB1FG||n}0evgle%lc>5l}c7QOQJHHoiXDipsZ`vn^D7MHFT;H;jpa zoo&(NMU|I0OjSwZHs(YNmII?YZP;rpPEGATo%d{ zku(=gHS2Zdy)cq-^tJEFn||Z79s6UB@W4cl7ty(_yFQHdI7Pep#MR{GdF$UnH$C=diOPKF(p3CG zJy@$HlZvWJrD`Q^&@V1xv@oEHscST*a#K zhz~FEJy>kLkO}BUnU8k*lT5ZI$G2noi*ap5!0S-SIBPzDEjriv;gTFQ2-j5li&PMT z)CHZ&#Ovsa%|s($Gp?qAjAOvk+utnT*Ex3&25PNYU>x{uH`vm}cICp`FYEAUm1Rma z6R;TCEEM-e6O6cbV@<^2|7=&1U~j-37{&7qr-Gjq%NFV|7Lsu>uMbD}32 zh8gFFKbiNzO_TSKc4$Cr0?!*KjL-Dw{OOJND_f%m)>BQoSd6YLUzEOq)whZp#1#qC zo7k99V&t0$5C^dtB-l7ve8wR%tFDu^8^#C?jHEG)v&ZY+9MRD2Ms^-*LIPWhrSGwb zaN`haPUMnPulp_9q}Hj)sa<3B3x83j?anjbf3YPCHI%lnb9*)x4%3-yxN-7z!|@-V z>=|+`Tn|m0g&20WEZk7c~|$ zr?XIxPcgqe;wj}|^{;H~v!A?ZA&ZLX%m=Je>l68AqZA9#9v2H4B75*1DxDaj4jZ@gi`>iul44gL;%l`LWwFcp_ z7zMY1qK}4;E*SUpwFcSMUR;*)YCXXoe+Pp zN0Q_Ey=b8?NNlKBG?NYW+yxtJV~hb!w}-zqv(E{%pum7_vBAP?7RLB{>mRogOK0Jp zKWP^3`5F@{+k}Zz=q6)J*v$rg6fW8lmCYh&HthWil_=-I6iuZT;^=JV<7pi64*E3a z+pCk4-+*4wikc0G6ty@8G7fpaeskF2DRpo7YU_#6kpkL?SZZM$|NiLU{BcW$pUA+S zHUfbf5=y2aE98IjIH76bPX7chF(S8A2AcuvD3k#rhEb|&gPmuvrgI$_5Jx+~H$BDRfl@GE`#efaz2XY>qCI|qF&ox}&o0pZ38 z`5U#o-Di`4{_^m{;M2GF zVI(~%8|Up;PgxS!<*TcQ)f(JuRQD~6tQYt2|S*hxY#0DF?iJ14` zx6a)}zxP;NxN)N0Z_R7ldT+gY3@!E0G|tMub>T)@&y$g!S`8jIqybj(1x1XZ`3kF; zft@99v5Lo#dm6{|qiYPlc(vT*Z}fZ-rAE(Hal#v0D_lLOk0?Fx-FwyNw|e~>^q}W* z=xZG1|0t*a-qG*8OCHy2&c}%?+LkxtwC`6F-|8RR^41NSt+n=uXUwv!hj?=lW-(6v z-*zk$r^Xi1Ec#wB&i&`it9`9j=A;#;BQ7c#4NA>$7P z91maDe%q0IgI?5B?=8GOfK|qy7TCI~tHm=hV#$jZ^w$TR;ngdTT8;Rjk&XPKrh9LZ ziN2m`XyJhtn--+Gc9}DL=Zh9ay~R?rs1f@wJg(9;Q0(}Cbu65NVqNq&-QR!v!o=@l z!y0M#A#2+5PN|>Iz1IP}g8HSq=bYHz`%UTP`j@|6XZmSR!+WYV^Vr{E;+SC>`2o~s zVDeW}I{sdK@uhk;Ml4^#f;~z)Xx%17gdJjI9i9f$YgAm_*D~?T5;jLHUCJ7l9$m`L zH!|VxlBA6lA*IZ#HbxE#2*PIo-Tp&LZ(U?-ZEC206a#;lB0Ed466PUZyM)Yi;s@qi z>TrtHlSR;879`r9VH3oly{uR1S7+F2CN^$G%Ny5OaH-!FHm+8!Ec`u-*!*!hX?a0o zMEpkPDPqsD>SFs{d@pQJ&PE8+N_6oIC5RvhqGA9+QAv`6fB_SjbJ|`VGh)tS#GJEh zj+k-Hn9~|oy-!Whv)=Xne)s$C_uo7Eoa*YX?yjz`u9-7u=vnwc`{h`jX%0>P%xjaq zA^Fj6Ym8|!}=!mW{$B?el{!R zEKMRY0#bT2DCI7bXc(*DEQ`LOBB^erE%uq2lN6tys!$k!r&X164`R8I(-* z7bx`!-SU!>3lu8IQ@O0`8|Xsijr7F)d*G?P6%yY7_B2!|ii&3-VT^(*6c~USf+y2q zkU0ag6$)*MpNB$dUd%wLqc2iJDLJ`Gq~LJKk+CkIBP5G&Baak)icFFpkdv1*ATK`m zE_lkX5b}!@#TOw+4Ih_iVSH95l8PDi#QfZ}q=LNUWW_}ARIwX8gBnc8i%(3(?41Em z`E@Z07^OG`l*%(P-+9hIoa1LF6P&LIf`6Ncn#zc)d2~zlBqNj6)3r9R&rhn_58A# z*iirGB0UL89W}KVJGKC&`U6ta60s~X@-)&{u@U(+fPM~Q$9qwaW-Ben7BPgbl9Q79})z61#x$#hWi>bj^v71M)6 zC+U-xon+rHS24Y+Gb^Dd86<<6$?2o$(oWPT zJ})n=PoY9F7v&s_V= zoW%HoWKf*f3lz2;Mg6B^R>&Z$!IP_u1y3FMM2Z~@lV~>bX=dd(CNDy9aUpD+?Ic!^ zeX%-t15|j}S@hK_pfvKM5-peLa*1|82Q&k_yDAh-K@+1y#gcLg>~r&SauFuT5Q_E4 zC)W#rJXz>)G}_fd!nPZmP_2HEK{s*cWdlr$5k2U~goy+Hl|i;pduT4ByQueRP+9^z zK@CA;rTn8k#5ETdC+ay96#5hu2OvQfwCyP>x)Opo;S>jD-V~J9m?kL6SM?Gte-YFO{4P)`Uj|C$YYU344y-;^dur9)RUXBgE~}h1i@JVU z_p#mE+!r0zo*VG&iiz8{=|gS@E*vmz_RZh7Mvi&lsC{zRl(I%^cV3ttsq)_TUl;*bXB*S4qzOex*i^~=yRUF-cGQ!{^T!5@91 zCqFlhX&-#}56!DMZ9AlY(PvBL-JX%ppXbKxeXcd{)-$`~ zlZVtYQeGMu9eFV#?)CA?x=WiMsJeUhqSnJ1?%A`})r=du$}MJCP3ym}geil&oE{f` zaK$ChJN<8YhMjosJlAw!Q;+M~o2z~9b+0UB)~5ZVg4`a>o3L_b-KWlnU%otMbgWHk zP+zBTMZ4T9b#MI9F1P4g=OOpf3a43>PG948*#F>+t>3)IpYL9`Z+C}3vZnmCxWnr< z$A|rvyGf_Ae~tEELm$1qk+$J__{HZRKdh=s_^TjsYV^nfqxw8>=+Mut`uxgkqpJPs zGCX;*m*QH#RZYK!HOg6R(E0hL+{b~n9=9at2_PgY^*&mCqab^JLe7E{Mx zH9(24At=>i@pU{@o4{d37HhEhCLSu4hC<;7PDkKEz=eTRvQk42ZaSM?*Ppw>D(d>H zYHKPK@PCr4BxT$P*J%80T6d~xN5{kIS%*4o_OJFhhoWo}0(~VW&Gl!WN z`*S5M#@JtV4wq6m5sE4(YgA*`jQv!3)f5VMWO70?D_D$)zt$b(IkPwuAEki~yJq62 z>WHr=hV>4M=EIv?LPxYEh+{1MmV`O2Zz4fdFp_{`HBW) z?7Ol|SdeD)5=cOsxG?8xTclS~zB9?xAwgS18&G9Q4v!3$7dW zq|!1_DB216WXebu)6ieF9C^6(5?w%b9UM6XM`lx67&22EKdtTv#oo-q#z!@SQbIA* zP@MtiC^lEeL+cy3j?BWyN7Vr#oQ5L0!+bWok-w6w%dR!@Q?*8vAqJ%*588CK{h-*=*Y)l{rE&O}8d1g>B+ljGez~F7ilk%$tRWszQ>e zCajZ&#^U@5tA@*EF-`nctB^}6aI~DE zCj9)qRHi9#R_5XmL@pT|=_2;96dX+woS}&)n{Dr}vbGS*Md<`^)Th|)0&vueSoRj2 zH#jkbIN)4KZY3IJD>!l+p-ic1DJ~y z3@#Pik8T%%69+(L_rQ_5q7n_PL}ONCRyH20vEWESv;xy^|G}YN6*yW|Vh?`SVw>W? zioubd8bUPO#!Os_R8NrSgS;9v%UmN?;Ua`KSAXs_i*fZ=n%l5Bu70X$8@Xz{p@-IT za4p&VdOj-uMzVDfU|Ft(4!iS6lVzINum*-YtfQfh?qo<%r<_8eK%{BVjGgsR=^&G0 z1i~Ih@L3YkVWq(yN|(m$T8y76t+8kv)G_u@Ee1#4gbIcps!DKF9kC65*UVP-LM#N; zU~oT-x&<8h9Snz4g~|?J0Kf@rP!$PI^vTj_53S+gTqz)EZ9xhFrmm0vSENEn9=a21 zFnvQ?8Wl#W$9g=oqqH)v35&JxQ338DN6r$rPq^K>(W8r=S=OA#EF&NQMd_a5z#l zB5}0)B~J8Du7x;Rnu71P0!Mx=oRL*S!Tqq(PH=%J(`KcuJvG6&vYQQjR8E+rSY*R( z5m%0a^95%pG*|BQeQ>TGs(0W>4Gh)TL+R$sOgs3gMnnAsWQq%4$3^U4i&=SlD1%(s zHHefVlZ+{v==ygNc$Zcb;$s+#Yv`l35UB(fXXm3*y2(>rYUQB{1}FKZg@$J)}y6`6E)!X=5Zhn6#J)qXHt zz+iarx{kpLMQ?EE9HHVIxK1L63*W#tEY{agH4!EwtBDoPAt~xd;nfTgkaWic8+s^X zLs+bzpXwMg`yf*^x&v%N1{5x|lEccth>;3Wn&Mmj%{V%ore?+ zO&sVoi4(j?%NViDQ}FPPNQo0g<{tx23~Z#>HgGgb4IvVkgo|q8Dgu)j1&+)io}j0J zqgI5zw2pvlBeY%<*L|Y5(lsv_64Dl$n+c9=Aja3r;K&Bz994%)!NRZ>#oqSd$ab9I z$iIW5Rz%4Y;6%fa!rE|Js)rt+Vh?bnB9y{~;!JSv!YTC+DIcb=^H6GcU~_`~RKXp@ zX2n%D7#!J79Nl(sq9c&QzLF%xZvoC&86+uuzfk6OWTqj0sy)c0Vb>K#svW6NAcBed zD}y50wGcn$*hpp?>ZjU?GPH;F1O4^Q;WvmJ#VUn(ZqgS{hkBMO9TbQ$nTGirIOgp9^9}(=tss72_+{X59xARW_(LT)XK*@#W`;511%()oV!^qyxF$ZT z`AE^K7rzGH21f=IC)*-c&9!dK{M|Mg6P6Afm?PZ9~8z=t-u& z3l4Dr9NEOSheCnSB5~>9)Fi?6L>aDTy*+i})J?e*oES84{iLjlV{>rX<_%$Q$U_G^ z53K@lNx}%PB84?h{X-k8Uh>4lw#tlN%(T0oRyu-I472F&qjeCeu0qN<9u6p^QjiK4 zQX7$q6jB-q2=79wBT|B#vLu0-#(5X%!$%3#0Aqj-b*cg04B!BBfR6tYO7$%PqSgSl z(@>%|xCw`(LV<*E5UmZk08{}}CRD)LT{zS!Ev^878f+!eKu|h}DuEzka1bRPvmnSL zC<{l3)IVLkN*SU6R+3Nw%S&yx6TP&)n- zrTRGl4J;3!gDAB#Kpqnk!ttMIbw~`CA4%mz zsez{eMpz zQaMrTu8zbLrE+75SErO^BIOe$_02#@{ra3DUC_r;5+F*+1`@TB@`+Lf8;Mt^l+{Se zCrTaIN<2|Y+R+DlmLNNsrYCzfY0?{Z9EaCAlzCgheD96_K&pOHxEh%}x?el=vu6s?|-Ru~NA@ zrScw9K2d77m&B`6%IYoUgF1s1GpKXhmiNcsPP776y~4?&V0Akl#mEu>5wL@7B);)zmnFg{3up%Om~R0sSR zPzpmcKxvhgfYRz&0!jx_a=%p^q5>t#q=Nqmr4Bbjo~mrZ2k~1Zek*0-P^YxqcO#z^ zH~>nPIV{N?E|L>!l#)mAL4wDne054$C-6b^q(uK91_x2{w6mbp;Uy_wol?73CAp#- zNRZ4;NsuUw=(fZYrQ{tc|E@&ufs(18QsMu5DxMYe(Ex!=rG8ZiR^UlvGl2T~Ke;M| zxFApUEdip|0JYOlpy=NQ2|Cm%IgblK75;y{I;8Q30CcER(l8XDsi3PuI*3yK|IMpI z6KeSTWg;;+i2v`^;eW3VHwoT=C`bMP{M%I_iBSH3uMWvV|GhdCL)3q-4#migaQ)w_ zLpo>S`0v%B`c)xWg!unn9g-z}aTU4gcFtvoBFoUpo0~)!)OkB>V#u!K0fyIG4|2Q} z-oCj<_ghvEo;DdiXADEPcBm)Jz%oR z%V@!hSw+_Z=DG#iXK z_wLbvJ00s?XkAfsHzn-QgXj+{25T-1>^0bC@SQ26+U$E(y{=$A(K9?QFAoMZv`thB;40Uf7m(bn@=-k;7SBsd3SQ{+GKw zw(H)gd3)#8V-#=u{qg=bRMZYwu5w9Z;SRww&NmnF-at7e(D9NQ+nQALv%g>(N3 zT2of2dv~XPs-7iXW6SK@OCE&WJ*Ob96pZ3i7|SJ0YavwrIqb~WGKbima$ua4SZRkSJ6 zJ#(nr&79q(&rny6i+Xu8u>au8PpT%K zPiqk{H{{R3ov*!~d1R&Q)7b;ASvPF5U{CAcJ$sqhR85?EvE;9r9lAKy8B})LphHW? zk5dP4Q3kTC#l}UyUmjmPb!+Px`T-{9xq)LNG^VBv=yIfgj6oN}ccKoQ7f4gQ5n($@co>9Bw_O!oe zTQ#8Fv=0?uPYmrDYSpgIrMD|Pg!kxTvSI%77q9hvCOK`{->Pz3lYqB9LJE|-pPuQ< zES4A-+3py0t4@NlrJJjh

wCl32s&AORa;`TUA#i{w1ybio=d1LMY{z3Gcf`?84 zXEc2yn~&-{Z0*g~dz#H$rKK^>Qcb(r>e`KKHr3pz_nLm6Ei(=^{MvW9ug@u~{TG5B z@2Flndt%pF2X{Q|)wue-b|woSXw5js@u6;Sc9tymh^?G<9&2sC^y$gDJ+r4|yoK^FlN1p9ItnR#%uVO-qK3G?~@2s5Y zeez7L4I^ySw3{!h2CC`#tchh>*yFWUeR3_*pNEz^ooTqL%gon4lMbgG4$?2LWw$S` zj2&-p(stQ1V@KvceBnCXNttPveJ=gotoy)^uO`)I_REZmMj!L&ld>{=sQ=SCqgR?e zTAX{@sm4xg?+re)57fH7$>q}J$-DoGt@UQy#jk;%=59arb$EKdPsI4`Tk=@^wmzTS z#Jh~*nWIEqyAg9k+;prORNVOb_K0`CW4lSC z$9C@zuXZ$!|M1zETkxod&XoDzE;b$KJdxdmcK5H^_Dftne$=x2$FHWc`1DSvYA#-7 zRC8ptPgNH?#FV92o4%g9=}`Z}!$+i@EV=DB;nIkaXL`90yN8l8I~FxRbc@f9}D;P~HzU1H*DzvzGCL-dFFEvg#(&q{L`XJTeIrA2V6*66Q% z*VTNX_btm4Yl@bSns2n5OwU370 zYrOAOOy-|eAdPTF0ZhT)zduuN*wheeGTEedVQv4jtR5*>0)2c2oUF4BO^wk~lj{VXIrq zYDUai)}s8+D4Pd6cV+#);K>1vcGeAE7bTc{eO}p?`>jjmfEwFFp2V+R8`EH(i3N*E!p@?t!h( zN>6vLmeXwh{=PXbtNPAQn6G7$?eCuNFz|D4PydWym#py*f_e?^GVJ#=?@qA!D~*fF z);u-{d3Q0reZ8lyDV}fU+~O+R_Yw7q40M{D_q zLFqT{do>L^SL4i&$k`^q{-b#Y-CX zFD@RYTfctHtlht@fAjIu%3lW+l&zyW`8k`D$eLAIc=9EJd zE%ok;HQ&TnVgkQ}h4K*zd;^Nb{I63QO&VP6?r0K@}kJ?>wuiChDjn9~ruCsW( z^IO8hIvLI}X`I^cO3sBo@vjbtJa4@CO6cRAn_JG=)cQ9o_66EC>h*euR{x!D+s7U1 zG=7?Mt&0|)hGcabc+26YY3`NWzm8XT*!euT$M84dnL({by=ZnMN_*+(1=HPfm+2MO zu`}2}H>~Ar3;EYOQc$z7$+B+kyC*wub)UFxWPr|X_o3_lX!0~EY~j-L7Y#1{_U6U7 zCu=H4oie#}^{n-(D<>Kn7u7mDrFqT}{|KL>yR64OE@>EY_vYQ|$5SV^ zOX%!%OICG{QeLjV^Y6ohdeD7yd1mGNX2Q&_ zeP9z27?8ZTcc%ya+q?^OuN%_8*4CiH$Gp7uT&T8NzK!P1A;pc~o^8H6KY#L~IUjd*J*KAJ7IoWop0Z=eq>J|> zwhj#1KEox!ZR@ZBM|+GU^us%9S7&RL6?nQ9M0`!=N3n^N8sF+gme4Z@Fme~)<#`+ zAKXFav^1K9Zqj8lmWJa`S1Q4M02jP0oIA=MFNB0MHhXzA>$XLgeF1lp zwOtX-bhhfUwJXB8Q_Sj6G}{Jl^r3L>3_AxdwH*B&4(HCX;fJG{@iz1a?gF#g9?gz{ z8@)Z8yTqK1M6-e0b=k9>;rMeGuU#154&8QF_Jz&4yvwtNU*z6tH@Qjg<90^5n)V!X zzqIS=H7B3HY#Ow0W{awf17B~Q$e68KaCq~U4(XTvY-$r#H1BrjF9+u|P%~Nun|>5# z+M&zd9Sv7rSFpfiQEc2!UAFXCxbmigy$0*KOP6&$9V zC^l=iF53e3PX$w+jAEgCbXoGraOHgk+X(i<9^E3%n_H{#a~u!&c08H5CZ%vBKce@i zz?N>#XFEk_O*HK=@9Gh!_IW|uZ`x=W4vLx{TW?9fOF6k2@%wcvTbe$cR+y`%?n8AC zRJMGTvv1Pl-nR8Tt!IvW+OYrOkG(hKeTZw2b;4D5g2%0`pRTkj8{lBldc5b#qCf2slFI~Rn-sqrR z;`Nl>#aHz#{e;x6`QXd3u4%k%4O;MJ=zD@x@^2DW(03^0Swh&o6q>Rde*< zB{`ex?D(AX*D%kqH{*`g%x<^Cp!f7H*KenvvUqkzW8YXc?W!180-xNE`6&tKp0N$! zwt=g=Fr0hA;updv59qSP;9fEPQuyRSUDmHOoO{FegF6PU(V}qf9qYRYK6yx&T>|$P zv%=c3I}DFl8P0uVkt^X$;I@GK%(zupb4SqMs&MWL+W^kvd6V#R;sDb>T`C$IgT8 zb`r~JeYmm)$40D=Vmg0dJ%QEbm~&Ya+Xi+lpbdZJ^E{F}sOt(cT z8)38{jX8E=TU3$!Y=m$=`0Zi7`4Qj0Gkg7>S={Z|qKysGE802->~4MO{$k@*%Boe< zKF@j;Ja%MyquhuKuX-PUFv#ec+lizN(+qV-tSWf(mL3(5Jym$dLh@G4sNKghGUh+n zzkI@I{b}uY4;qkM*`$7>gD&lQy8O22z`S15i<|Su29)h-{APRd%ugpfo$lG!Zb-xH z2fg(!udV;G&-|Tg4L89^_eUw4a%{qpC}lI)8>BhMypKk4_AKpGH2$t@KR#P9lhe_h zBkPM#Cw3g4&dlmebSyotAs?D{BSu~~ef&6l$;T@uQNCY49M8Ajdw%DdlZHo|>A5PC zu3t94Xi!)=_m9UBTMrGWaC3e%^myjihq2YN6}fZ9C3)+q>E+6?raPjPZg39}caB{H z@ql;ij8b|+Sr9LH!>%Z$H^-iU_`n%Tr9kN}Q-0%-+L z*c+t`umEtp&eZ*&X7I`U}>#=F&B{OY{+b}PlY$%>uNBo;%`klC6N+$kf zJU#y%tGwP__c(HDK*Fvb{<@e=zt;?Z9HXf#?*vlI2=z8izjr~&_T6qtMXD?-vB?3f z^!7J)&$judvWJeG@PWS`qQ9-t)RnhzIAD*)QN0C6e_+JnPt2lQ$dZ~Q$r?P?(dyud zPSEvKp{~4FL9Vx0cR43y)7O4I=vfhfr<>4ZhLFuN|I{(j$1mbENE)2{cljNVR|9Rn z5qg1?vS#?EDfccbS=qydl&9<&&C(w>*0Sw}XF%AgDi`QwEVQXS+Jl{_@>T}KG3}>4 zh5AFD>S!hO!k=ZM#Z9c`Gd(u%p5CS&&sKU0qxm0vz#oHX>&3>7uK@l)O;b<)Qx%fk?kJy~>P!%QViH>qnOn9)0>e163djKk@FFnN5 zqbx(@r(IhhlM1T=jR86wr966a15+p*^hhDesQ`KigARHwi}Fah-ITyVi<**fD#bo2 z&sEB+iM-_i9d7hc4VCKxbn~4KcS(?bCT=a|d4SSL=wXXb0F6?-F@j{lU09C*`QPBN$GEtD!U|po)PQpRgpri~|3q8;+ zJloP%Y7lFM9^DoW@mq-aSjrWY(-AJo(ZduAkrw8^os?;cOnTghOc?=6ozSx^REez7 zL6W2ATBr^k9VIynq|J~f3(+%VR9qhj2FMznr94Zd7XWm0;m|*I(f}v{$V5>Pq&zF& zcfb&!htTj}cp!%E`BEPFG08OqW=eV8B{_ONhVH(S96gvua*cq=09m)EB-fb6KSj#y zC1u)zr{`J7i?( zwi($!S;{0YClix-`+$+rwART#B*9o8zlQl9W zIePYv213ebA+HD!9v?EH1P<|*iSSnm3RC3Ki0Gj@Ds}_t=`I?Pc#$kVazvx25z)`4 zBuf2(Ed`M57H-)CI#dN?^;T7 zXhb1Dgh!rF)}l5FrMiAn9?8oO;~gUhz_B@rZ{L(lC_+$I+(XuV-~sRucmzBKo&Z$< z{Q_DJYy-9fJAj?Q24EO40vHKUAJn%u-~(($+vUJEU^}n_*a_?cb_09KGxi~I05}M2 z0yYC%fI?ok8E4d_7|DE~0O$ww2WVEwrzu{Nd(wt6*ih6#4KM(-40s;Yws1($Kfi}S3X!i^76?gzV1nvNpz+K=^;3E0SB_u8bSAeTP z1#lcV2W$k!0Aqo1z<6K+FdP^G!~!8e7oaN;1(1`HpO9~nZ;x{j-pbEGRTn8x3js&^`J%Bi%C(sM% z21EnlKm-r~SOaNjiypYF0Nem~zyr|r#D_D`2(aPLHRTM8jv=`Lb;^J(NDlyd0Z~9S z&>o<3P<_Av_y{?AM*SIZ1GouH2Sx$uKnBnoNCJ|9PC#d%1JDs@1vCUGzTKo##|z>iz-S;6utI)AAP(pW{Dr(E&^@60fq_5>_)nk|s1Ac1 z1x^B|fb+maI(5V#;R)0S4ny!Dum))gj&#zD0L%alKnu_Yf>B-qFyMD!1~3!gfl0t* zUz?BZNC-V;s{m zDe79APzN-9E&xrT4L}W7l`n0wy)(Dqtlb=dDGW+=ud3lYb3Cg2DwAYyb`c6yF{L zwBjEE4}h(}E#N+I6}Sv|0lR=5z;<98P!3!IE&x=v6F38$0?7Gy1C)0V*pL1d`+&W` z0pJ8c3eZX*GaUww0LOsiz#jmW(<(U)oCD4R=YfmB6@ZkY&PiEP@&<4nxCT@JHv!7O z4HVtO$DhDm;0{m;P^^0jN^y^tyAe6XDLlo2|*4}0D&OYKxujF04kt5P#Yk*ngF$> z3rc4LqJ{tkMSXw-wGtsXgOHA0$9NU?yZJ!lg^p7ZU8{G3u7i3r>I|&;oD(DBl&7 zP9mNFP9#ObnS_FJ2tYb}103n*UFDU@Po1Rys~r>l+tg#yx=8ljmZ>IL*bx;qdH!~k@L zq0=0l?z#f|GVy_9+X8-=8`qd$;l_n|IXO5Ae_?2Xdjs-LS2|ozCoczQl#GRVb(EaY zZn8Vvarj#*alk*sD_-B7GvVg*%|Og({ga%$H5%kx9bC|WqMYyL&be^Mc?M!e%d7_E z7Dv1oe$!*+2qo9k&B4{d6$^^5bm!(O%{hLU2WM)_!4mD@@}N^25=B}#bD8+fi{29i*r_5Y4bYX zoHN&)_whzOL1zr;0t{0x#49d}qL3MXw_7uMwLyFY1nY>l-lCDcu%|02M zC=A7odJg6%`#{mod|XSA6n;N(q5=4~K3u9)VkU3X*}lbrMJ6W>*7>3Pd476J&P8cn zoj=kNs%P`VgES&yc=;vVy!hJPbX}K9NF6$A+wg~CLeXJx6}<- z_)^JLNjZ)9_%N?vrmgL1WDPaK3~8|FES6{;<~!{v64R z3Mj?)&3WqpuAbYk)sS~XwlM!vG=0^>sO00UR> zzOA6eT|T-M{O&0~kw_uGw-w4p@VbHECi1O_%;5V4auH_ocF0|OKmGP;TKs!x;EYHB z4bJd412L!azQ~&0oV%RTUUe7(a5xf3;q_aiuUmXG5HoqZV%4|lCA|wOIiVrUsiWcz z-wOgtg$X~XH4N2?UrW_S@!x_#TJn{|+47%3%;g=tW4U?P+x%6Mi$>hV&a{-gV-O}x z-fg+d`jT_a_3k`^1i6l|+NlXF)uCwDOx|5tF=Ee(V{P(|K+aW^Ys+t-j>R7Tsg3); z1R)wMTK{#wSTOB_zb_cBEk76QMjqEF{tP&`e`#0JrgwdD$#fi+x$DM;P2|cR=+On= zUU-W(7>K-2^U|3Mo@zDd-3kJdN+bA42w*-li17UAHdv$C2elSN3pyuq>{th6za&k7|R<+DmiyCa4O`DmF2xG1x1`3im+DY zy_e)O`-@5r0Us?o@m8%k!!8su5PTF38;Ox!-eHu)1n*JEJ7UXw zkdm>4^RhzT_S?J9s(fbKGhLW4L?Au@ft>ax7Ed~1|8mli&X4k5@3jpB@@noi3`Gl6 zg277rXe)}PolC_M{*f0~-$>qTTi)H2Cdtvkleh5ZEb7S{a?4wwqN1~dE8h{PQ*Adg zmT*Q>Kh2t&N_%9yM7a{mQZTwX{PlN?hTSXieVHT;4-gS@b=m%A20c+svX8s!*k0m;Bt3 zrg-UtS(bM~mp7jkR1jK|_evMHr!6|xM(9ZJetCCuc|%#0$i5(Lgf4GA`=dE|Bmb(b zLvy=5j65loz#-&K*u{Nszjc;c!wkyXt7AjkB4I~c6iH(}*<74Gd5>JF609Ka-7fEz z`=dE|cXxR|-5({tPywyUDiq0^>Pjj=Z+SC#dHdZT&B=R|%Nz6xB`$RR{c9EE-znwI zeT6y*D6R-_cvS$OAHvmbC+|Bi@ANBm2|a(UjIbv?PA&2-z^Ef!<5Q%nTZH&P7X?3m zvw#rAKm;RsJ9K&HUX(}yYzexhZzJ;FzCs;0YE9l!UEcjy=u%if>rh99I`aO&jZs9d zgO23gxaEz1H90>z%b+<;Cw@&7XRK`C#6R!M8Jo-7bIV%+QyVz>p^?r`{L5I**<9Sw zTTv`;9t;UjoaNx}IZk|T7tYvS-e`Z}xgELZYGqG>1PvGx3(+He<;ni&^&uj?lbKM0 zD}CIPapL!MLF@9C_VSL%dR$W}+9WygHM>GXdE5SyM#asWjZRL`6&|%3qR%G+NeWq;3V&+FmmOGgyHLoohx4!hOq>rX??Uc z=(?reABpybXp2s@7>oQCfcM!mN7SjltRYHpZAUge>c)RX8@Qfx3ddER6y>?|d~!JF z;{Gq+y`04B3;EqD=en&r+xBhAeetZ0!6-(0@TbE$XA}920gqNpsD1geHeC#gr&E4! zSI$gX!;8N`!;@ba@bp8%&0dB&uHVHJ%e;6!Ot*PMZ*d~z4X4GgCGJ>8Ro;A9Bnl{OW+!Z~j{3c{V7g#^8#35wcgHu9@FvrGT zyaS#IQHo9RgQ7W8bNS5yCda0$ZjLTn4Qc6Qb;Xx2i$;%CzWfP1NWmX!%Ng<(p`4X6 zxfLG}3LOesiE%1Z^Wf#%>vm0`N$>O(HA^1;f#ZRHSbEUf7 z$_uMr8$NG=y0mh!gjS+N4|Q8EQ=BV%*k-zLVM7Iq?XCD5sH;5Fihm!T6NChqc^3d-#@mexLV@HK>`E1?Itw?&Jh&#i;w zH*Q?z{G%D?*8G~bTsux|&dQUVOMcP7>mh3c_C_kl2#TX6K|Ke!tl7W1{|~iHly!r7 z^LAX2pG~khQu(C_b6*;+K6qocuA~4ulV680D4^M07yB;sZBYtPyMp-z?O;dw#R=8? zGbik5uqR1SN3f&(YK6upZMN^d^JvKbR@eO364OKY1`%*m`E3g$%aYGD_3E%4ZBRtR z6~@XCz6-uQn~!NLUOGiZo@^hlxA`a}r0)XL+w!YAaLxEr5uA^?{C!Ejw7nn&fT`7sC0|ve)}GbP8bSF=t6TSzh+_8313Gv6tOdjR` zwb)HgB%B78cjnDw;EnQII!;`fRBe{a;5~xR3l|ngJM$eO;eMsF7-ZbLu0FHA(kMib z5aQKCl;|VwjT{~m(EM4Iolqj&XAwJbmtXafwLQG@QNiWkAV4<)5Z@D{#E^Oav>%`4*|Cd-qU$LpS`44rnQPbaUqS*!I@As7E<9OKY*W^KZ>QZ4&dS<2E96&=48K*C z+~I_`Y(P+IQQoFLBb{i5*G01u2Ta>tP8u_@P~v>2?s6kdtwRy zcXuwRNc@%10J4{2?Do%%z7o(4Kf2?tZgF_>ir}QRGhX)rPmy@x;or|6?=(#Db9v$* zp+UuD_dT7m0$0?TY9m^#tZtNZy>Al_q@)$tlg#|j8|&H5JzDyY@`e!jIiSx*1EfHc z6Fp)Z)|{Zt@9V)in*EKnMwcd|Jl+1_2G;s&yigp7g@%%^5y$;*oS2h^w*_UUWf!za z9Ay84;}^tnjjM}%+Mwj@@YTOEF!)% zfwMA`&UR=?N})GeAFu&mI*zNuS0BfjQK}?xAjQ8Prd`* zgOy3IyAxhF7hjN=D!ls+D#j<^#a8_ak_GEG`Z*U({hVd*#P9FVHPofMG$KUbxnw z2I4d0p+k~=77Z&A`otF?oh!6t`Oi{n=pW*wVq;_J&37o3Z?mC&d{5;!BypBzYSx2< z8i!%W_u(4)$+udCQt_pE_QK6pQV+^xCdcO&*poA+(2EuO^vksGlix2p4KEhUkI&?% z&F1P`d}r~fHri2V?VSaK8_Bn;P%J0y@#UT0(2uifpw=?V)i^91Ts}bRH?Bc_bzLC# z58b5E@cuJ6tva+&An<+BkiCVDgkmT4g(Zur=h@R&C>O!?upIm4+Vg&ioF(6JD5q5u z^1@v&k`dhAlX`(neqnZ^)R@FUcdQ0#Mq1nS{z2)9Z~LS)K0b{z=NByDbX@QXIaK{o zlqXD};2(l(CD|9GWy1bg76=(aNZ_q_&ca_kCpjN&{4+ynM$kaY&&^BjlQt0RW&o7V z8NlzK#hDv@XQ_c7jNt#i|ETz*1F<2YePJD>=48=}@a%JQG7B-xOotW}9r>xlI0s&T zAZNqxTFO<|fK`Ry;PtaO8vZ#;Xj_;B;U$9hx$*h=1CoSgVWFObs_Lxd2bSt~gNQnd zsdMCC<#ASxFjyKN%B7SrWkRRO!22VqlrLS%nVWuRMPaGzyBCNoE!KN!vFDS4ApoELQZa1Hq2aa<3+q!*{f?~3Q@me&~1&EU$Hm2z|Nlh|sg_;L!T z!yo6lL_T0K7tPOp7%Y)#&+1Osqcg3}bPC(GL{;ofPOd>=S0_dN}F z6VGgh(w#{ZN+~IV@h?j_9sT%Rp@81SOGdPJ<@b%|8j|&E*{YeDCgoRCz&j1*8kxvH zzmcT$OB}ojSN7%ShjSY>MB4<6Yq=Sk?&KN`@)L1EQ;^>xH;3NBoL_)9Njiw{UZzXKf=>N97X$|- Vb(7vB-5XbI9hySVaT~c={|kPz4jKRe diff --git a/commitlint.config.js b/commitlint.config.cjs similarity index 100% rename from commitlint.config.js rename to commitlint.config.cjs diff --git a/package.json b/package.json index 59cb90d..f874268 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "test:dev": "bun test --watch", "test": "bun test", "test:ci": "bun test --coverage", - "postinstall": "scripts/install-git-hooks.sh" + "postinstall": "scripts/install-git-hooks.sh", + "prepare": "husky" }, "trustedDependencies": [".", "@biomejs/biome"], "dependencies": { @@ -25,25 +26,15 @@ "devDependencies": { "@biomejs/biome": "^1.7.3", "@commitlint/cli": "^19.3.0", - "@commitlint/config-conventional": "^19.1.0", - "@commitlint/cz-commitlint": "^19.2.0", + "@commitlint/config-conventional": "^19.2.2", "@types/bun": "^1.1.1", "@types/yargs": "^17.0.32", "branch-name-lint": "^2.1.1", - "commitizen": "^4.3.0", + "czg": "^1.9.1", "generate-changelog": "^1.8.0", "husky": "^9.0.11", "lint-staged": "^15.2.2" }, - "config": { - "commitizen": { - "path": "@commitlint/cz-commitlint" - } - }, - "lint-staged": { - "*.{json,ts,js,mjs,mts}": ["bun biome ci"], - "*.{ts,mjs}": ["bun test:ci"] - }, "branchNameLinter": { "prefixes": ["feature", "bugfix", "hotfix", "release"], "suggestions": {