From 77adf1080eb69c3fd971b90891eede476b8e63aa Mon Sep 17 00:00:00 2001 From: RiDDiX Date: Mon, 26 Jan 2026 00:15:33 +0100 Subject: [PATCH] feat: add hamh-alpha addon for testing pre-release versions --- .github/workflows/ci.yaml | 8 +++++++- .github/workflows/release-addons.yaml | 6 +++--- README.md | 7 +++++-- hamh-alpha/CHANGELOG.md | 23 ++++++++++++++++++++++ hamh-alpha/config.yaml | 27 ++++++++++++++++++++++++++ hamh-alpha/icon.png | Bin 0 -> 5148 bytes hamh-alpha/logo.png | Bin 0 -> 21832 bytes hamh-alpha/translations/en.yaml | 14 +++++++++++++ 8 files changed, 79 insertions(+), 6 deletions(-) create mode 100644 hamh-alpha/CHANGELOG.md create mode 100644 hamh-alpha/config.yaml create mode 100644 hamh-alpha/icon.png create mode 100644 hamh-alpha/logo.png create mode 100644 hamh-alpha/translations/en.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e6825f8..5d5f1a2 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -24,6 +24,12 @@ jobs: yq eval '.' hamh/config.yaml > /dev/null echo " hamh config is valid YAML" + - name: Validate hamh-alpha config + run: | + echo "Validating hamh-alpha/config.yaml..." + yq eval '.' hamh-alpha/config.yaml > /dev/null + echo " hamh-alpha config is valid YAML" + - name: Validate repository.yaml run: | echo "Validating repository.yaml..." @@ -32,7 +38,7 @@ jobs: - name: Check required fields run: | - for addon in hamh; do + for addon in hamh hamh-alpha; do echo "Checking $addon required fields..." yq eval '.name' $addon/config.yaml > /dev/null || (echo "Missing name in $addon" && exit 1) yq eval '.version' $addon/config.yaml > /dev/null || (echo "Missing version in $addon" && exit 1) diff --git a/.github/workflows/release-addons.yaml b/.github/workflows/release-addons.yaml index 1955ab7..4af5bf4 100644 --- a/.github/workflows/release-addons.yaml +++ b/.github/workflows/release-addons.yaml @@ -6,7 +6,7 @@ on: workflow_dispatch: inputs: project: - description: 'Project to release (hamh, hamh-beta)' + description: 'Project to release (hamh, hamh-alpha)' required: true default: 'hamh' version: @@ -22,7 +22,7 @@ on: # client_payload from repository_dispatch: # project: "hamh" -# channel: "latest" | "beta" +# channel: "latest" | "alpha" # version: "3.0.0" # changelogUrl: "https://..." @@ -104,4 +104,4 @@ jobs: See the main project for detailed changelog: https://github.com/riddix/home-assistant-matter-hub/releases - generate_release_notes: false + generate_release_notes: false diff --git a/README.md b/README.md index a47b3c4..511fb00 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,10 @@ This repository provides the following addons for Home-Assistant: -- Home-Assistant-Matter-Hub +| Addon | Description | Stability | +|-------|-------------|-----------| +| **Home-Assistant-Matter-Hub** | Stable release | ✅ Production | +| **Home-Assistant-Matter-Hub (Alpha)** | Pre-release with new features | ⚠️ Testing only | ## Installation @@ -21,4 +24,4 @@ Simply add this repository to your Add-On Store in Home-Assistant: 3. Click the three dots in the top-right corner and select `Repositories` 4. Paste the repository URL (`https://github.com/riddix/home-assistant-addons`) into the text-field and click "Add" 5. Refresh your Add-On Store and Install the Add-On - + diff --git a/hamh-alpha/CHANGELOG.md b/hamh-alpha/CHANGELOG.md new file mode 100644 index 0000000..1ee3080 --- /dev/null +++ b/hamh-alpha/CHANGELOG.md @@ -0,0 +1,23 @@ +# Changelog - Home-Assistant-Matter-Hub (Alpha) + +⚠️ **WARNING: This is an alpha version for testing purposes only!** + +This addon contains pre-release features that may be unstable or incomplete. +Use at your own risk and please report any issues on GitHub. + +--- + +## [1.4.0-alpha.1] - Initial Alpha Release + +### New Features +- **Health Check API** (`/api/health`) with uptime, status, and service info +- **Kubernetes-ready probes** (`/api/health/live`, `/api/health/ready`) +- **WebSocket live updates** (`/api/ws`) for real-time bridge status +- **Entity Mapping Customization**: + - Override Matter device types per entity + - Custom names for entities + - Disable entities from bridge + +### Technical Changes +- Node.js 24 (LTS) +- Dropped armv7 support (only amd64 + arm64) diff --git a/hamh-alpha/config.yaml b/hamh-alpha/config.yaml new file mode 100644 index 0000000..f7f4baa --- /dev/null +++ b/hamh-alpha/config.yaml @@ -0,0 +1,27 @@ +version: "1.4.0-alpha.1" +image: ghcr.io/riddix/home-assistant-matter-hub-addon +slug: hamh-alpha +name: Home-Assistant-Matter-Hub (Alpha) +description: "⚠️ ALPHA VERSION - For testing only! Publish your entities from Home Assistant to any Matter-compatible controller like Alexa, Apple Home or Google Home." +url: https://github.com/riddix/home-assistant-matter-hub +panel_icon: mdi:hub +panel_title: Matter Hub Alpha +homeassistant: 2024.1.0 +homeassistant_api: true +host_network: true +init: false +arch: + - aarch64 + - amd64 +ingress: true +ingress_port: 0 +map: + - addon_config:rw +options: + app_log_level: info + disable_log_colors: false + mdns_network_interface: "" +schema: + app_log_level: list(silly|debug|info|notice|warn|error|fatal) + disable_log_colors: bool + mdns_network_interface: "str?" diff --git a/hamh-alpha/icon.png b/hamh-alpha/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5d4745447cf1dada286b6f1056e4e30ec83e270e GIT binary patch literal 5148 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 KMNUMnLSTZQ!{Axa+2D z;t4@|L=dFEkM=&xsRR5Y`tNLhVB63JxkUYBn z5eaW4#4ALxqNOSh!!r_i^v&{p%z={pTn`LB7?EGy`{2%bfHF zwao!$w`ZKyY2ro5v@50I1u==%m71=z>uE`#|Hiw4cvaD;jll!g-O+*U&jHBI*B zSMqvt+;HM46Z~#A`1^;y<2Vhl8S`&eNui{0gWmZx#~(M*%b@{()@C%+j*Uw2W#q93 z@S!9HgDFZ}0sFJB7NJtml`B7ar@q%6CQ)G^6S+Ro6Y>lg0d%Kqluvj~Db*{QzE~5? z>*s)&VoFLKa~yCau&gq6x#UihR4qc~&iTk^7R;Fvd|CP1KA=h1kmLILD-H2G45gxK zY0An+C!cNoX3D^DJGfR3L!A{tMddviH2sp%cec9Hfwq@F+o<)i8JU2@swcDumke;7 z(%OwEj<7x>r`U-5Qzl$o><^|D ze-p=m(|X{73IvvT+u*_bN^6bt?#T>#r9NJ_pHhihgoCZqqPP$Dc?74W;l~Tt z6lq=a_OG+`SmaImVQ_Zb-j~}+)5twY(=ewm0*6sS!`6Ah2?(7HtW_r>dg{j~mgoh@ zJz|$j(9r&+sk6cB1uoPuN*!2trS((p&!}V`*@|xX1 zDs+_DGP;F;Aw%ok;<(;(Y0cshSmtM&jP1_(7c?_k|f4xCg8QFVX%^ z{$m?5c$vYLTV`XpGJWf7mGK3j!Z}KCv!VJX^tXb-$TD7-ZY6iwUa>xH*x=|a8Us}r zc=v(I?q7Ckc+ON!XUN+-*%!-2?s`E*D>Q*jCSnf(6@uqsY!fj6Qh6ZQVsa4axFg z)Wye#F9Kz8{Dh!{U9LK*XD_rGPo=+Iq`|^_EO9h~{i zqyryl3EY4ff=N0*G^%$#{ceUM8iu~z$Djb=FFrYkH~BSTK!1k)_|Q0-{uGtc-Hfx4 z(9R{Ue+AcP2Cj$zgM)|Fl($9X4HQnX2DB!d=JPZVKram9?!|s0+#r@SQ zk`&$_#|4Wrh7x0dOXF0RFu=7++2u;n+ft;U3MPeX(}pRtfO)D(S@O+TwRByprM24o zDpt1qX~?);8u^FdATuQ|`BlS}`XP02^2wycmA8}BorXD~%4A^T!#=M7oDu$Mxo2;8 zxe9URN$mD-iE*S&l*8#L((?fMFijbpzV zSVoyBu1QiGKk*YD!<;wl=|I|ba1TH3ZGJ&_i{0gVZVqc=(zOGYjIC1vmQ{LRL)D=l zSxwdTY|3QtBCIQQTy$M_N+il71QQZTn}r?hTlc?&*h)ub1)1Coz)`Y*E1d(cm`0^M zg3cjs1uG<>Y*e;^8S*o?TTS-i0kL z&^#$x)LY_pe>A@|AX0#=^3_K^@~wLL_+GHC9K@tcf18sitmQ@SanD?Kkt&*HR)cB4 z8cjN$D4Nnp=51x^s7(AP+`$DVuYL~HlEh%iu%V2jC(vSt!rU4e>`ZYtE*ZSgAyRVa zdBC{w72n-JOD}v6@w`N1k}olyPdP;1B02&ZtuK z&bT(v&BEK>wH0E*+agiy=A>{E>bYu$YUpk0x$|UNPCB#tUNxHM8S(AbndH&5a@B?kKCz95% zGuR=xk~&M6n5`<8gGJKWn_YJK>#s04S7m93b2vwRFzgUq%d0yF=+E3Iezv89=O9Wt z`srPv!n3{a>Lu6cG*{o~hR{qbP0}-p!GS+kp-ZP37&y|{zMO>^fa>$n=3n4=j>ofv zR{}Tqis28G$fB^jcC3N-`|H=dKMqZ-3UURXom0T6uz~yJvh#JmyvNv!4*do8NhPks z{p!odnhvk9-3RiQAW7jWWSW-b{*vhhMU;%nrl2u1oXpqE$EyN+kpy1fMA0DBy$Q>c z8I?pt@hQO8#Z6m2I@u`c14&-H6ET>``Z)(?S41m9fx1j~#Ir9|oyX$~S7}Q>5uyRn zF!iVQMAT>GxrLF*$tvnUtfucJQ2udCVgdJ97$M}1FBD!x1W~9aQLC%TOdGhyQh-AN zYfCAKsy8Ya(dUL-QkiB537_cFeL=ZRvu#yX@LpN+f0Ni!4f`vrYv=UEMPT#$p6?hb zkM8bF?>`E7PSM!%j;{?F~`2D1R2yw71Y1uMoY{3?9xsLgQ z$V-vAGsVbg)V87AC4VA5T@z9t`~THEKfAkam=m@LT!F3m$qNiU+I~?;P2bKvhOCgz zOmI1Y=<8SR3cbrFAEXWG6mUGZ8&t5Oj;H~l-ZpL)=K4IL8Vg2m zl+(A<218!C(RT>-M^^FhUDR71@VXyyn$J$Y8{M8M3^iRU-^%;O1V=d^+i+t%30;~_ zbizCxFfpEI`l$8@Ef&wt$LL`GOs{DpmFLf&RS9M#7v~`1TeEYUs#{qT@OJn#&2YXv z`{-ThkA9EaG+p_Iok!X)D>QRzSpFY+SM zml^SSv~*oauExttIT+H>lQ{jRmAX}!JJA5PmbIsL+)*fsErPoE4EtduCL9-J8BAn* zH#hTQ+=oTZ63WNk?*w$;-a1;OozYH-42l4SE9&>h=BXeqOFf0h&zS>}qwMsuZ|ASC zPui0DOVe8q-+bNK<+?DK_<4n^AIV^+y`uDBA!fQSxcjS=7zSLe|AJcziQZKgNNXqm zW#*$>h5^Vov{1hU?nzFU^2rT_?3J+>K6ou_1F0v`YWf2Vmmmg(l1KM-vV>TcjLK{X z>JH^8KErBt;eWsd*=sWav;bQZD)l66PKAQV<0w}Qazg*aU_yAtb<4;$$VK{qRDh`D z_}HH7$ZLvmFxMFR0hj+xQY5#=dN|Km14A2hKOwRPFEqOhV`H_ zmQtw<3^8|RW#0&-!ILp(xl)t*fp;&_nae@2bi8DBo6 zo{tCV%%lw(;u%@>>D#)@QcPY`)Y5opq$+v~ge8u7rJ}eceXy>=|MHOcAF!eX6ES+o z|AgFGS=|uKwnjt9exiCBgXqD6t`13>Q{^euDa*>$)b(k@C#}#Be5ib<^`}1`gB=J7 z@jd9?bJrXeCG4e0H!>+q)$sr>&5+X<%GRPvuOUh~h0887Y8gh#+_0nMc z7&(oGkhEgDAOr!Y{qg*)sIC|B5G^4&AHKs3_BLX||g<`_d<$te9C3W?oM%TF~{~f;mL`4LyIU*htK4LK4 z*NM&;R4$55)EpXSww$SY6{-Ngu7;|rmAP&-IC?7$wiuXvh-53aRjGri8|lFNu|G71 zX7vk3g^i@I@<5)tVaoR4s^2`H2w+!xH!!Bn|00_i!v%u@fDk5%WMP4Kg8MIsthBfw zCsxxuVcM<{L>?`XNsj~3lb|AFJaaEXs{8m%g1RQ@!eqM3n1`W?^5jf?Ma+Guv^<`} zyIYFueQ|7GLb~iSX4RCUeA>VBLD_Z1uO%uAR%lk}WYrD7h}R_HoG#IWKS#e53*8Jd zb>~?rkYQ;as6xQrT8+~{jjb#52@yh-s_f;NhbkMARo#W zqz@9ekX_QcU@nM@6})AGCnKT|fX0MGc&Vg+|0)k7J9cUQ>44GazQgw)g*6jNm!PI* zGQsl{e#adEze(Q<>tY(BUbmT$Mu!)p1}WLxZR;e1I(F~>vjj6gl)8*r`DxFG z1K(Zp%h3Fje>3>0`Tdl0zbfW{pKvoL^=j50K4+;T_oD2IbHr_bC}bLP+B) z{P#2NqCqXq)y=719zRLVR))U@I0%mdKtU*PfAoUlQSV{!S)lAQjXK7g$6#_8m<*V! zJU~I9Tm47PU6hv!GTqjIe1~@0C7+jp_`tg=tCNLR}DNPQD z1fTR?S8O+smdVSXGRP5nnA;8`UOA*yLxaTCRQ|7w*SwXF98hvOv2umfk6$3orepvM zAx(ZqT0SODN|{j#04ky+4KmrcSwr&;bEToeWVrBqB=D%ozTih8sVH5}nSCsAs0X$p zF2sUs3_VYTc z0DV7*M$=Y7!eOPNHXpI}B>xkiL4e-8e7$^PoA77Ih_-jv7@`5Wn6VWOh_NW|NpzBc z5&!SiIX%1UVrG$OOlmbG3`Y?SRBlp`VG=Nj+8@cMD@N^GF;TG5^ zUQu42UzqrrNsYwOnND1G_Yz=A>2(ck)PJaZGD8&)SeR-=7&qQl)VZ%TotX7rTXR9D zIu_LQcDu#cfLsK-+YTQ^j5R%V3Ni8`+NE?u_UsS#rLIxZ!kkL`1^Xhn!Q)RhZTPG+f>Wv#IY@NT&s#*E`H%pa#Z_SM7>|Io6r*Q9DS|4?+m0Lal~Pb6`>hv z-9x04zz+Afc$(WPp?0gfya^aS!-EczFHeF>M3pLX24FS(vJUUGNSt{V&<)RWYuWllHK zfq(;79~BQv4kYz{jBA06Fwb;Gez9nxJ$xxZ0ByaJ6(-KXz}_MVc2wTl^SlL}GM%LrZAna!xm09vQ#&GPr|4_W9jsBum=z~J)}|t2q@Oc<2f1wM8qw4!%!%$ z2jt3YKQ3<6B*+J-xD3GU@?6Spf`JR7jZCx(0TIid3z7EUsx^L;*=GA+dvLpjeSEz; z32eim4X@Pd-gE=(Z{!1H5I|Th$OD!tT`zLcI{5S@sbOAE>SPwwA=n+ML=oohpW=$` zl?+Sh`n7&N%gYw~?Yz19n#>oYLU=JD&a*p1Z*V_(5og&O(QoJ#Vgp1Iu2qvQ(Sy-2LnFw$wIu1AvSeNve+1h56CO^BGPSd z15y>?wqldTF|(wM$tx69{w%UvVPxWJb~gkUm1$5@PP!@K1BB-FsyhCn*&0Clu}@*N z_Ug(#5>MosUg%1n2ev_OrUi|JB9&PaFu{DasHe>TiND_-ocOGOs4?&;ow#DQ#o7oB z54mhFg(4nwV`#J2rrd-#WqtSunZKCOMID$TiV$&KQ?B4Kp6USLR7uz*r0XjD%&{3owedbkJvnk! z<1o7vWGh1*`P^43Ep^_L_jL_-T$#l|KXbrO)s9Z6>a|11y90^)LhTEo^d0kGHUhA{ zLTWkNk^Rbfe+_S~>R4HVu3r$iEKj3PEH~N;ZHJ^33378bS$ZXYtnxx5{F0DIz)=AJ zrsTu_VK`orBW>qDr|}1!`U~a8Y&8&Cp}E;xpk?dq^p)xaDbe&@nu*69bpDL9^9cMh z4)^+B9&pfVt^tagrnZFlYPb#ZM&hoY%<&0ttCu zC}AT!w6idF+wtsCqeE*j!}2!o(U!ByVzor{=&MsnIW9=@<#X*Gin4a$+MmCX=F|sg z%2)sDUCJF)HwzF2G7c27flin2+B8Z-@1^YF!0ox*sTdBh5LY_=tl881^ifL^#6ChS zM@2pXKPGd|$B1#^w^>gMY;5ZZ=sAy@TrL;azc>Wmrt-99^BO39y#7CYCAxJP>;otp zbYlP{w7$Ug%&!DHJ>kqItY`ijJ(WKMuT|H0B1OJupY$E&g>iE`6otgpjPrF@oQyf* zkt*ll2$2G}Shlh)!xUrAMpY*$&EslndRVZ_aBce@_MwI+D4TSR9=ZYnkMIQ7Onf?F zf~mYuvYeZx+FJ>y?0vFtzL!02^P(|?QMcUv_g^tZjGB1ba(_{Gyh}8v#a11hOyz^Y z#IWrG1%-=FPN9?&FkQfJVhqnw32<6F!U7h}2C?YNgsUPT&`!^e`wUpW{cWjv3_h{mm7xmC5L=(Bb@qH-Py$~#TxoEXEq85ytYpfJH|SjUxAmz zK^99{soY&``GRfKKI(uL<3~>z^FD2}y+CyEt8oid97T!CZ^aB1!JQu6N;&DzWe!iOX9W(Gutf1~0eeK#eXzTIzO2R;Ao}Mjp{j+f*p0rI9B@ zLi+=sv2Shf`(Fz~+6`&0r;z?s{V0Dp9XhW%aIpfN$^*1d-Z+iD_zJYhHviMNMj&o0 zmOs})jhSQ59NO4{CI1x|=AL}qs63D@ORFHhFSx$HnA_{q=za80+VTI;!ZlK9T+qX3 zdlUQ_Cy**A3lWHVWW+BNVbgZrn%2vku4M|6Je~iEJY~<@6}~?8b)>5F$;dD-wsBHk zCkaYhYT=Fs&#tczp2oV8>fq;e{I*-jfbE?3I~inv*T4EX8XHX?&aNZ|>2bWkUoPj+_5 zzENkJ_m$^JA`T8L!d_WNxU&8KZ1>bQ6JOf)_3t|zC)jAQfX~0MGwq1)9KPpakMV7LP1+y-0^*x4f*rH58t=8boNDLjPML=D?Mq)Y%|w@-ij#jCnPs6Gc;@6U^|43_pzNCx}QE#Tsw6(jdm{Tu#Mj;fmlg)@^D4Fu<-S8HPn zv!5SOl{SiM1U^&4#tv3WuJv!Jzx+-&SGZAEne79qPB)Sw1D8!9PtS`uj-n2MpOFV~ zN1$0K-yh3G90 zeo~XoRM|!U8NMF-f7Co0ADrc@={Oi z6asNz`b8zWHg~Vr%k}JVTQ{G;Z=BbCk%X4!sw6>t^pNrl6u@6xirLnqGZ@MxkPaMR z^irB!vOedeuRKHuk)Q{@XCQ)KdOxV%wH-a12)c9i#pJt`9FOcYK77y=4a})z*Iaza zFg7$K#ITT+QM5{+_vZeX7utsI606%zXR8}-v&h01+MSE`c39 zpO;R;YA8M)|9<&b3e-FXyk0i)xfpivZo&k!!}<$%hqV4(bsq?Wf$8LE1(efX{KHLV zrnTJsTFHjR8|zB?fWmkpyVs|=F9Az+Ep1cjuh9^F&+tb2h%Xvp9AziuX06!CE@IlO zg=kEM8S8hO!#329Qc(V3m0rv@R|+p4a&a-u3eJ_^q$;B1hERp|!d?Z+%QqWTu&$w( z^g+U-1cK;;Ds)T9{pXLo^Gn`qUGww*H{+dJU7212W1xz$#EGJ}-H1tY906%XSu~pZ z&^k<}rZK**cg*tO>&Sw?mB*i=;d5KSWFNd(!?i5{p_-CH7C}KdD2I^%b$DbDP{g11 z42Z&=wyUT44ciyPg+%#8ZPhTK#4eT*wc}vH$;u}is5scUyA7|9`46AZw9a~F|o{{lqqk0|GIzcPz1s0 zdyp8F zAhdAAC*SqIWt(?jo#v@~;5We{07P^f-t;y*G8MuO)^+yoe&6KJ+v(m#3rBVI+^HsS zpQx1|BK5;GjQhKa+w&Un7a9tuh~*DDd?`fd`s@AW;LF|}(9kn|Z`9Hp^rjod5yLqQ|z1$1$nohsa^@$&6JlB$C17{7(WHL&%9{vy6;)zMLVu5kB5h8olBCuj8GAb_|K5>%K1!f@E#Uy;w^kg@% zWCL3qRF-$qZ`MO8AVqYzf=QIZbIL4;9Dl;yJC$G{-49{QjbH~cyU8wq_>7;Wx-2r` za)SCl#hHh^NCEdwb04Q0^B^p zBm3Z(60QZ+pE<(o57@>RM`ZH0dmgxX00nu`-&|e>H@A>lj`%Y%z2Dw(WSjY;T7ADN z$_S)|ucgALG*sG_97^Nmo;$#hqVNP#h<*q9mwU0bgg>ZV(M>d$WQiV6wfS|8m=>g= z_es{WLY$(D9thSKj5mpe&+e1v{fov@d`ZRH(I|YI`ucWLNfZk59os-?y|Q0o)$SAv zzgXgcme|kk(mY-J`d61Ao_kuSYrpG5Cb2JLQa=DFbT3t`k8}Co(Huu(sb#Q^Vji{= zT#XR;K>5|k33x{4_viAO>ttQ!vb4uBuZDU4TpRRWhhwLtbm1yeY1J1VJ$Ix^_@nYE zoLN$bwSBIRKlooq@H#rCbRFYk%Fls}Th&o!R`S|Ci%hf=e*wE#q>sx0xC)l5%0uHJDpO=7>0$J|bo+e4zd;i;(E@oav zt)8%|2o*p7gWItQ?d=aGp#>NgjzUMOt_h%<#S8(=W!Tj+Flg^APJ$WfJs!luyhreyG@(5%0CVXBbKPCGw)TGZQW&bqwE zcVwt^@Zr|9^;>fQ({JAn2Zx(~?ZHQR0GKDUQ?xkAN?8)A%QqV#h;BJ>9$vwE+F*Ul z%eUNr|J@ucTl%%YeG>CF8&c#0aAuQJ>~}8f?eZ+Szjb`=nCOkCyPF&;o+tEBBr6c%tw4{n_QS_6ZzGJbGXBXR5Gh{e$f#2i1RWY7$Aw zcR#M*haBOrXP`Uo<)!lcZtLAt7LHru4^On7zFgr9H^RfyNHXeTgP)yyuv{hylhboR z@K2KkAHOy^`xE-LNZY94IQkU)`0-BmotCS73QHsm5LjEFlSANz$c_ z!BQQ(75@_eS@{mLqw!jpFi@rF=5;v`J<^Qv9iR5mHQlQq75t|GjNh2ap8}{ zp$#d$^Ryi0E}Co6(+O>O@1pLY;Tc=(ew{Orq%ki)b9CE^vbNjg`oj$s@UqqBdVZEo z=$bRI$Tt7g2hx+P<7?9Wx!m3c9-jLQ9#1r&T3oMex}&vZB7*LVu71#sb;@FU;C}l$ z2I_l|YRxXxA1(l>xSmF(3+-CY@b|zKG6&3(F?b|fTZGg;YzK`3k4j;S=X;tS4X=fJlHK}jkYOsOJdsCkfw6)38NerrJ^@JAz5a30-Su^BTF|HTT( zja*;Zs8QphF>&76h1nVTAJr3eWaC|J-20hgBc8~9t<(JxWVd zf*|Swe!0o5j^0*sxyykttoWaFRN^kp^GBSj62`h~UnLfjk$u!lv)_c?5d9hk0tJcl zz*YQSQk)&>xdzx$F@W8%hMB?1+W=K`pCb0OXDqy5-b8?>e6?Xm=F0Yk@;QRwkOsO; z?xVtBgX|9huT-idDc-_BP^8q}mJ!8QKFf(BjHm!h+cxRBy&^sNNLJ5M@g1{17Dh!T zY1eC|FkZ>w?{DpkU!eu=@Y3fBKSa@R&k=```2>iZEWVc(N%1Xy)@FQZ6EOKu0THd9 z`8h^2(NQTx`o9evJLpeBqy3O@B{WLEDz|>c8_)gX`@7;!z<;yYT+a#%#b#o*>UZudhXD6Ef&`hMx|= z;2ygh9t0>Z?;Y{w(qR-I%Lg>TzO3(O%FwN<4WU|kIM41bK4y-x)V#wm_)XIzGun@e zE@Ps#er(i8iW)+#kwUmFq2kt)P561^nD4>X1csYMJpuJr*yC{++d0wE!v}@^kphcS zVzFZe?jZ~!Mj)xLtd(tYYNNMU_WH);%kj=b60hl{EY$g)MmkClw!sTf=j1S+O;A$p z>4_&!*9~Yfw9Tg4$sxW!@G0yY<7ma-XCuRe4{4fyfFl0&k)~Q2AGqh6ImT@J9%mi- zfN-x6DfJ!m?V&U&6S7AdHQ9i22i$g3U>iN%mV|IpPaM93v5;7p-b3TwclDqNON|&Z zG`w`X{KxRu1T#^Ci{r=&oQKsdRca2Z)UBygV4=G@jv`D@X8A5w_A^GRwb<&H3Q%C{ zLzCq&alEs!yVh7M@rvXRAT!?igfccP#Am$I2qWAS!(jhTes7}M-;l6pv2OB~p$YE?O3QoPG@sW; zDfj1sHJTfN&9%M=OB|3*rU?V>mfdYkw2m(@b%u+c3{~kp6h}_fF_=mI(!%dm%c8OQ zFFGSXF$Wq-)H3uvYW*f-M0+T=4|+prY*jnrTVG(!l@>CJbqt5DXyU`uiABgjM`gAN zX1juPl#dHlflZ7AvWHaioIZ9#QF;M%`^57DN``xpNja1k`~_4@eD@O9kBHd@L_ZsE z>CxcbX;r!&*a}892E}`Wn#YVfz6V`8zJqEdPQ90yP2Rvh(neW?g@EOp zDt+n!QInTH;V<#!vkwp88r%-q$7XEgQq%E5qUuvg_EGW=rcWtQRbCnU!$2xG)o=<+ zvEj(Oe&sv(y(wLOfYt~((<}XysNjp~wiQbl&$IdT8oyuxW4a@+x8C&xG3AYaG0M0M zx>*=tUHQZWz(e#T_4vvyYrPpXBc|@ZyPz;`y#8QY}!z-&}I(!d$@*i+iu}id9ZDo&#W^W78Ne@T`%l5g@ zPlAo>XRc>%hd#W^n6$gm)BKvRThQ&qCqlOH$YGZcPjNt{Y|yBsWwwOqQHR7^N7>V< z+_a|sJ-Xq5I$ER7alBCU&UMgE(gYMjb1RQM>Q_PXh*dbaac1yCgp}spH!&SccHST3 zZ{OdCZnp!xKC_?zBrcuv09mEiarBCUG1LUdKtAmg-}f<&-VN%~>3L-)p0@U+!B<-6c8n=(U#b>+ss$2$Ib7Mfx@BUMd7P+ZrZts3% zEz4+**esFBg>6~oz4bjhU){GjLUmT!(EaY3a(%`8?UytLIaFb%YUQOz97FG@w8V2J zNrbA$d3!)qj?h46R^|F`G}_eT6aZb_r)zVNi=H{Yl`+gx*PwG82DPm)A2n}@{s&7J zEzRK>>+F6NQgn07NGA2gaLFZ??ke&*@T9!v@~l;1>DR5)dA=>^uC0HbsD*+qUHo0lo?dsYS60`W zJ|m2|7 zZ06TQABlNRRQ(?Gz`BRUOuJuwS6**o6Ft<95u4fjfjHV%ykaE=sC9Fs2s%MAye2}e+5@-x?nZDjKLNx{a`wu_N*1sCkRGk? zmmG=Up?g4>2gE3|TVFG3q3M)Eyn7s^k3}OnH2cFx@xtAAcCN8T>8!vV@E-g}Q|&1- zqc@Y3KBkA{m+k2F!66v#8COxG*Cyt(^ma~!MEQD z&Uyy4bVflr=WBJ}C}#_uqsH;KJdgNBo}uX0Mz*7c#%!Nwh~f_ssZ*m)N>Ago(1XNB z{U&%S>)#`W>I*xTIa@U?-D>DN1dxB7K>(@XM5jvmC zm=lR^tCnPhD8v6RPf%+YQ(6{lYj4RdyJGpwldaUu^e`KD3cF6 zpbc?stt6@3Eo!_Z*d!r(6oHK#rz)+CJ^Xr*PrttG5E5V)!8?uF$5%2?7R%@2`t%rx zvC&-hWrwVNVcPx>JPW&K#7=N9=jf=Jh;pYGTrf z@l+KoTW>)Uosl^3-9Gqj8!XRjNBq=k2ZpTa(Y*ei0>?tNkpPg9mgZ&(kBA2e7NOP( z-o$)Merw$j-1D*NqnqPaI1KJuTh8${{Ff0yg=m zO@13493O>QLgpBU*{#F`^+wD8d0bA*WK$jG|LDWMeXgrbVJt8d8R2KmwN?kwVz{bc zAUgMMl*q%XYv!@z&emco-K=TpX8wUxnnw9)Ge9x<5efX$tp0a@mlD(L0@ass-<75BabJ!i^xdBU>Sn zC#(glxtZ+~Fde$aKmJ^h*$a@;2A_V}e{^(&mFNiQlEvMI1mJ=-#W*K2!gxd-{8JTZE(YB+;`~yv2A={C|7!j8HcV;pB)s<tO-zl~p-?+;NX_ zFB|JXR(56UOWFaCbe_Ohp-ip^bzLiV;k+UVaxt`rTHoFnruZKst_VRV!T_@kttMo= zolkb8Tw2Lo0c&55INd~V`>%jTU zsCMbVUx`dCn5v6gkG3wD4z0ZWboJvo=!(FJ7Z(B81^06P`g;?T=qG=5L?b{-?L2y3 zDQKP-{LibR_A* zv#bGcZF5ethdlqiG}{CU*`sh;0d=2$B;z_ge|-K_bA;q|F2^Y()USg=%ZK;75oBEu zMB0w}e*wIt6#+127OeC!Wk{%`(tp#VjZZ^9>E;NYS{Ux8zo$b$davK@Zm$E#pr=lk z#s2l@oN_{{ue-;!Uai-&(`{_I4rky1^noDD`>Gs>N@BeN}IMfvusD?X%TG{&t2-(?}$mG#??R#Io_g@md2;lrA zcmVXUzK6m;$^}xQKiF6ZYghTZ?nRPAGE2EjaarhQassWo!Y`f_Vb-jog6{YKT(34y__!@Ym%M|VH8OlZ zt#{4Lf;iikQ2!}+0!CTyV~SYqkPBlE$o3o1u>$dK71KJKd{yDSN(r#Z@q~ICfS0Zv z_6NKR$8BnhYNP#Hm?Pq{7oGs~Ot6nu~0}AKZE?Ex1qxWmxwVfqwJ9I1A3NUzZESU6*t3H3Ci{u))=|D?U=!#H0>9 z9YL3p(K|O7*!C+^*WztVwYg3j>&Oo8U~%*X){r+~^uhv^FO@32*GYi2_Q^C{p0Tln6q)W# zVcsYEiSYXI%c}`*1!@!toly@kU8@N`qhtDKgrZFJ|jy@KO#$`JOiJQsc3m2s2_QMWQn;RS8{H`?^2;3=Y4zgKm(E4)J|8Q?LqEeZS-N*u~JKi zrzqCqfcGfVPV{gjy``#lz(S#PDh}smlcyq~kS1O}pH-zJZ+fkipSee90bdfYEKX>y$zRWo{NOSxGDy)JvfcM*m6cx3ku&dioldb>yVn$DMU z8J(pH5=2WDLnAjMkNRHb?Xssmuhg<9rQtT zt(=rYH{n#1F5$xqIh%0J_rnFC5##ulH`&bDai~ou^+~pJoVemzjSl{)u*(xz~W)W%+-#T=_ecZ`8kMG-O{Ilx0Yf zZEVTDW+&OQhmn%WHb}@ema!zeq(lfIYqlY~EG_nJV(dhUB$*_pAyX zKF@uB&bhAVJ}04q9r_Cz_WO=}Quu3L6WebWbp|oVZx}=bM}o74x&|iQD9|0mVwmXR z9+wK`<*4h}X)6b@ok-`UWs_f991C^eR$8lC{!I}{L8v^N4;=Y3ljYbz8k@~0wNfpN z;n|*tKFESDeJFE;`3%j?!u5RY@G|{#0cXsY)HjbHjG~RL#M`I6X0s2D{)Pt!aB=Ge z^}_zDXDiTPc!Vitv~77|x+RwQl=N)hjLa9vLc=07+Vm`f_L|!(E7LM3 z`uUdYxmGwXzxpV=s`_wWSw_xFydF{Tnv}Vc8u~cDgBbgSEV(O{-d0{N?Ihd+=dU;p zzha|t;z89+W+USKH7Q}co1umxxR{FSroOiuuAlmzTt!}U%WfIJp_3D{ny?ZBuI%&Xy zU)ngbG^UpGUvutVc3wX*n!8hIT(D|&lIxAvE7Pl`43WWXYrR^K-uTmitun;Fy^i*^ zT~ycf8OE;n>#G|G1i((|)bk)(d_Q(gBq}+Y*vC=kGs`+bim4(EiR^NtVte9nB4w8Y z@P8G#FJ#~jgrXfd>$zmu!$?oMH#e!(*cvX$?MK1*BN~`FtIO(|)t~1bXy}rTO4IBC zV?sAdb2ZJ1%Ny0`vb^zZo&Q|3Jd}ab$@q zgHXB|$S%&qbKW<;K3nL*Jp+&L0Vx1-2fFOCA;jy=d|}(mT3}PxNpfAJ`B~k2LLFwk zsI#T3J4Z3Zr7oRz7MeYDeHN9xQ)~_^X=t3gW%mRsu9yMVaTh?cH%G=4<)ZV$ z2PLB+b7w>_{^?0Cn|Fp0#&8sV->E8)sGhzVJ zDH4wkzHjyy%&^FI6EsH2=PNR{*#7Lm2fBRm^QcQTX`T@_Hvr4S)uX_4rBp*k30e6@ z^tOK+nnjEOT;AlVuPMH^wN^I!-r&#UG%LdZ19yj$++HPW!u5!-i5xw6BU?N#H9oDK z(S|hYF0kQ;ZT9d#X3ac!CG^Er(o;IeXnKa8^|)Uz=?iGzlCJTc%7|;w7$YWr=k1SC zeW=g2XZFja*i=RBXR{S=#qx-?*r;(|EaOAS8EbZZ=-vOCrJ7ywA8kNc~23 zBD-sO;u5c)7Xzp@1r1EdGIm&Hx5*lPqwAwW@i6z zc%}Ntjb$(FX^dL6?1)%pztgoh!>qb`fvF(H zGvcd#3zk0P0?9hbr}M${!rApA<3b7SawX?I2mP^hf1HzE4SM)%=V#b5#2bti)O$Az zD7~5I8Nj8DXLf=181EQbIeiAunPSzHVs$31jKm=Yab9_8YmaX`$Fr;mgWy-NwRg4%K)Gl8f8(k6J2#bDF!G~5f3%X_XDmID_MT;WQu|&lnNJqW4&GVj`)Im&m(T~Fc<1*PhnqrC{ll81 z;u#TtxrQ7L#oHQUv%^D$k5zifL!R_n7_ps(2Sar3b}N!Gy$9eAr74~UjtyKkkd%C=KMukRvM|;CYWNa5x`srV9 z#c5v}1=sn7fpEVUOrKj>3}k4xY>2Q9+7-kr(ePWC=6cKXo`+IV0--)Ou7!U+Q~#PW z)+A6X$oACwm8h-;>5NH~zz)3XzG1ZF$>52v7n%32Fk5(AS>Y8;NMZ%rj!^E@4h$wP zd~!aonIac4IQ}@`ZTaUpwd);G2Y$}XQNlO|ka60Z5u$Iis(q<6egj%jzZxEl)KZl+ z3Y}vf(4L3UUlF7RhDgf8oe5*5xgU!UeXDj|S55TI4wYAUFn-DL6KXjYCg%}UK+xP| zva_}5;`;-E-@8-U343FHf(67R=YxMo=6R z^=)G(I}d{sR*!}R?4Iz`aY4#*gLU`+Wx~W5CpI|`LTVgkNQ{-h;-c7*>3GULo6&=h z>G(KP*zh!nGbDHGqm)v*F>&7)!#VOVtPxHg7zFp}!(KhTt1|H@wo^+n?rI0nknL8d zMwg4XqA>)iSl-F*aNoVl*81VecO4f~qZG+gsXbRv=rFbx6-R3>M$Cimo4NNu>p-uv&knPVt|F^TZhL!>~(m&;w{#L0+(Us6`FJ>kF z8i3B(ps%`_4kRhM{XHLEd1t()XexUC=LbD$I>2YVZ$E(ha2T*9ciCN$#h?dhT+6?r zxma4MQt3W2qO>^l)|Dj6_G+!wm-JF@WBRP}-G^^- z^;^CZt$Nv+L>D=^jQ58Y;*?Vp4`KKcYPya|7`^pbAkajjORHzsP3mxj1g)!VVi1NY(q_n!@_t#3a=JF`OE2jQ|?Pk5bRp z+HAGIn2mF=j20G!@KBL6yF*VV-N6JD@4WlIP?+e!z*%2!%?ijYtCd^H^X=4TcOl#R zH|Glz?G3%@A6gA_Y=52Ts@}}56H~e$;N9D6?Aaq{7_%BCFb{>X-)}ZH&ynS=6LQJq zeOeY%wRf&zKk+|Kmv1<;UQ%%5vNnA;&_LpSUXeJ6*j$53Pl2}9txsj#N$`fEgvE72 zdh|Jg9TXKX!z;=3G<1wP>|<|j-F3{D)Kvz9vVLdtW>7)I+Shw0S%Z>ccwr0z(PBE? zd(Xa^I6RP`dZOTC1-ODVTs;!y)MrbjaKx&Df_O0{Z3LwkFXBV(>bnOd`BteDepF(``wj`ni2}q@6E0BIR zIUZX1mm*_2ebUYC*Cz|E?E_q&7Now-{P#_a!y%2vr>l5H%Rr_MeYYrRy?|3GGS>nR ze-H0i|8r4DcHzl(j1DBOwt?~}3IBB1Syv0Ft;Ua;G~5@o{>g`n{JQ9`C{BqTgX5cd zGG8cC@bqxV=nbu?2G!Q1UG>MuWZIW7rbzdB&njj+1d7nqxkg0-XME07PkDxCL~vNpB^Mr4Ra`H zK*8=zI^S{+D6Uf7)DUcMS^^77-hC?rTy^STBjFNbGNh#?!@|%rCOuRxbhGJxQFzJ5 zzqHgQjeAi0ZM-iZYXWS{e{u3dsw7+T7gU})P7OP3@|BAKqC{Zuh7sMJbFv|)7~l{P zno{iBcA~3)i^Gkzf-9VEYQj4Fe;mK&oG#l=fp5WZ?;_jzq1|NsB2UTO?oRftmySwp ziy23RFjW({M$^xLo0XL?8a4L Q|Dpm0I#;zTFJmJA2U