From 0da2a699e56e6224010ea7049d6b935c98b0d370 Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Thu, 23 Sep 2021 11:42:58 +0100 Subject: [PATCH] Add clocks used for KickStarter campaign: https://www.kickstarter.com/projects/gfw/banglejs-2-the-open-smart-watch --- apps.json | 24 +++++++++++- apps/antonclk/ChangeLog | 1 + apps/antonclk/app-icon.js | 1 + apps/antonclk/app.js | 57 +++++++++++++++++++++++++++ apps/antonclk/app.png | Bin 0 -> 759 bytes apps/antonclk/screenshot.png | Bin 0 -> 696 bytes apps/waveclk/ChangeLog | 1 + apps/waveclk/app-icon.js | 1 + apps/waveclk/app.js | 72 +++++++++++++++++++++++++++++++++++ apps/waveclk/app.png | Bin 0 -> 2446 bytes apps/waveclk/screenshot.png | Bin 0 -> 2884 bytes 11 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 apps/antonclk/ChangeLog create mode 100644 apps/antonclk/app-icon.js create mode 100644 apps/antonclk/app.js create mode 100644 apps/antonclk/app.png create mode 100644 apps/antonclk/screenshot.png create mode 100644 apps/waveclk/ChangeLog create mode 100644 apps/waveclk/app-icon.js create mode 100644 apps/waveclk/app.js create mode 100644 apps/waveclk/app.png create mode 100644 apps/waveclk/screenshot.png diff --git a/apps.json b/apps.json index cd5bf3489..3b8fe574c 100644 --- a/apps.json +++ b/apps.json @@ -1670,7 +1670,7 @@ "name": "Calculator", "shortName":"Calculator", "icon": "calculator.png", - "version":"0.03", + "version":"0.04", "description": "Basic calculator reminiscent of MacOs's one. Handy for small calculus.", "tags": "app,tool,b2", "storage": [ @@ -3520,5 +3520,27 @@ "data": [ {"name":"pastel.json"} ] +}, +{ "id": "antonclk", + "name": "Anton Clock", + "icon": "app.png", + "version":"0.01", + "description": "A simple clock using the bold Anton font.", + "tags": "clock,b2", + "storage": [ + {"name":"antonclk.app.js","url":"app.js"}, + {"name":"antonclk.img","url":"app-icon.js","evaluate":true} + ] +}, +{ "id": "waveclk", + "name": "Wave Clock", + "icon": "app.png", + "version":"0.01", + "description": "A clock using a wave image by [Lillith May](https://www.instagram.com/_lilustrations_/). **Note: This requires a bugfix for #2049 on Bangle.js 1**", + "tags": "clock,b2", + "storage": [ + {"name":"waveclk.app.js","url":"app.js"}, + {"name":"waveclk.img","url":"app-icon.js","evaluate":true} + ] } ] diff --git a/apps/antonclk/ChangeLog b/apps/antonclk/ChangeLog new file mode 100644 index 000000000..5560f00bc --- /dev/null +++ b/apps/antonclk/ChangeLog @@ -0,0 +1 @@ +0.01: New App! diff --git a/apps/antonclk/app-icon.js b/apps/antonclk/app-icon.js new file mode 100644 index 000000000..00892e9c3 --- /dev/null +++ b/apps/antonclk/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwge27dtAX4C+/dt+wFB/wCECIu3/dvBYNv34RC7/tCIu//99EYN9C4IpB74jG3379ovDFIIRBEYxHD/47D2wjHCIX+AQJHBCIIXBNZt/+5QBEZIgBAQX///9EZRWBBARHDEwhlC/9/EAJoBDQIOBNwyPCEYYCDJQ4CJSQ4CB0O2lojL2lwBIXFiwsK0f/KgUbuwRJo6cBPAO34cUmJHH7U/97tBgEGBIODEY/RXoOw7cAgHbtlxoojGx7hCjAjD20ANA1378MEIIAB4d0u5HGNAPYCAYAB2n2SQSPDjv3CIsF2lxEYto//+CoOGCIUt0O3EYtHvqMBvlw4UAgJQBqIjERgQDBsO+7FAhaMH64DB+4qB+3AgARG9uhIgQJD4dghd+7dLBQZoBaISwC4cArf27dpCIf/23f9uHCIQABhoNClsl20ttuwgYKBEAIAChOmCIOH/vx9ttwB2BDgMBAoIRBmnbpkbtk2ltsgAMCJQOwAgMBk+eq3AhiSBsE2GAX//4WCAAOBAoVbtt8mCJBgHHfYMHdgoRBott+zmDsEAn/tEwkC7UAVoYACgPbv4REAASTBEYY0BPIPwCJAjEu3Dvq8BCAnbsEwGgm2jbAC8EAjFvEAQREjuwDQXbvvx7cd2K/EgEb9oRCAoLOBjEAgk/A=")) diff --git a/apps/antonclk/app.js b/apps/antonclk/app.js new file mode 100644 index 000000000..1b92d4a8b --- /dev/null +++ b/apps/antonclk/app.js @@ -0,0 +1,57 @@ +Graphics.prototype.setFontAnton = function(scale) { +// Actual height 69 (68 - 0) + g.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAA/gAAAAAAAAAAP/gAAAAAAAAAH//gAAAAAAAAB///gAAAAAAAAf///gAAAAAAAP////gAAAAAAD/////gAAAAAA//////gAAAAAP//////gAAAAH///////gAAAB////////gAAAf////////gAAP/////////gAD//////////AA//////////gAA/////////4AAA////////+AAAA////////gAAAA///////wAAAAA//////8AAAAAA//////AAAAAAA/////gAAAAAAA////4AAAAAAAA///+AAAAAAAAA///gAAAAAAAAA//wAAAAAAAAAA/8AAAAAAAAAAA/AAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////AAAAAB///////8AAAAH////////AAAAf////////wAAA/////////4AAB/////////8AAD/////////+AAH//////////AAP//////////gAP//////////gAP//////////gAf//////////wAf//////////wAf//////////wAf//////////wA//8AAAAAB//4A//wAAAAAAf/4A//gAAAAAAP/4A//gAAAAAAP/4A//gAAAAAAP/4A//wAAAAAAf/4A///////////4Af//////////wAf//////////wAf//////////wAf//////////wAP//////////gAP//////////gAH//////////AAH//////////AAD/////////+AAB/////////8AAA/////////4AAAP////////gAAAD///////+AAAAAf//////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/gAAAAAAAAAAP/gAAAAAAAAAAf/gAAAAAAAAAAf/gAAAAAAAAAAf/AAAAAAAAAAA//AAAAAAAAAAA/+AAAAAAAAAAB/8AAAAAAAAAAD//////////gAH//////////gAP//////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/4AAAAB/gAAD//4AAAAf/gAAP//4AAAB//gAA///4AAAH//gAB///4AAAf//gAD///4AAA///gAH///4AAD///gAP///4AAH///gAP///4AAP///gAf///4AAf///gAf///4AB////gAf///4AD////gA////4AH////gA////4Af////gA////4A/////gA//wAAB/////gA//gAAH/////gA//gAAP/////gA//gAA///8//gA//gAD///w//gA//wA////g//gA////////A//gA///////8A//gA///////4A//gAf//////wA//gAf//////gA//gAf/////+AA//gAP/////8AA//gAP/////4AA//gAH/////gAA//gAD/////AAA//gAB////8AAA//gAA////wAAA//gAAP///AAAA//gAAD//8AAAA//gAAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/+AAAAAD/wAAB//8AAAAP/wAAB///AAAA//wAAB///wAAB//wAAB///4AAD//wAAB///8AAH//wAAB///+AAP//wAAB///+AAP//wAAB////AAf//wAAB////AAf//wAAB////gAf//wAAB////gA///wAAB////gA///wAAB////gA///w//AAf//wA//4A//AAA//wA//gA//AAAf/wA//gB//gAAf/wA//gB//gAAf/wA//gD//wAA//wA//wH//8AB//wA///////////gA///////////gA///////////gA///////////gAf//////////AAf//////////AAP//////////AAP/////////+AAH/////////8AAH///+/////4AAD///+f////wAAA///8P////gAAAf//4H///+AAAAH//gB///wAAAAAP4AAH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wAAAAAAAAAA//wAAAAAAAAAP//wAAAAAAAAB///wAAAAAAAAf///wAAAAAAAH////wAAAAAAA/////wAAAAAAP/////wAAAAAB//////wAAAAAf//////wAAAAH///////wAAAA////////wAAAP////////wAAA///////H/wAAA//////wH/wAAA/////8AH/wAAA/////AAH/wAAA////gAAH/wAAA///4AAAH/wAAA//+AAAAH/wAAA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gA///////////gAAAAAAAAH/4AAAAAAAAAAH/wAAAAAAAAAAH/wAAAAAAAAAAH/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//8AAA/////+B///AAA/////+B///wAA/////+B///4AA/////+B///8AA/////+B///8AA/////+B///+AA/////+B////AA/////+B////AA/////+B////AA/////+B////gA/////+B////gA/////+B////gA/////+A////gA//gP/gAAB//wA//gf/AAAA//wA//gf/AAAAf/wA//g//AAAAf/wA//g//AAAA//wA//g//gAAA//wA//g//+AAP//wA//g////////gA//g////////gA//g////////gA//g////////gA//g////////AA//gf///////AA//gf//////+AA//gP//////+AA//gH//////8AA//gD//////4AA//gB//////wAA//gA//////AAAAAAAH////8AAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////gAAAAB///////+AAAAH////////gAAAf////////4AAB/////////8AAD/////////+AAH//////////AAH//////////gAP//////////gAP//////////gAf//////////wAf//////////wAf//////////wAf//////////wAf//////////4A//wAD/4AAf/4A//gAH/wAAP/4A//gAH/wAAP/4A//gAP/wAAP/4A//gAP/4AAf/4A//wAP/+AD//4A///wP//////4Af//4P//////wAf//4P//////wAf//4P//////wAf//4P//////wAP//4P//////gAP//4H//////gAH//4H//////AAH//4D/////+AAD//4D/////8AAB//4B/////4AAA//4A/////wAAAP/4AP////AAAAB/4AD///4AAAAAAAAAH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAA//gAAAAAAAAAA//gAAAAAAAAAA//gAAAAAAADgA//gAAAAAAP/gA//gAAAAAH//gA//gAAAAB///gA//gAAAAP///gA//gAAAD////gA//gAAAf////gA//gAAB/////gA//gAAP/////gA//gAB//////gA//gAH//////gA//gA///////gA//gD///////gA//gf///////gA//h////////gA//n////////gA//////////gAA/////////AAAA////////wAAAA///////4AAAAA///////AAAAAA//////4AAAAAA//////AAAAAAA/////4AAAAAAA/////AAAAAAAA////8AAAAAAAA////gAAAAAAAA///+AAAAAAAAA///4AAAAAAAAA///AAAAAAAAAA//4AAAAAAAAAA/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//gB///wAAAAP//4H///+AAAA///8P////gAAB///+f////4AAD///+/////8AAH/////////+AAH//////////AAP//////////gAP//////////gAf//////////gAf//////////wAf//////////wAf//////////wA///////////wA//4D//wAB//4A//wB//gAA//4A//gA//gAAf/4A//gA//AAAf/4A//gA//gAAf/4A//wB//gAA//4A///P//8AH//4Af//////////wAf//////////wAf//////////wAf//////////wAf//////////gAP//////////gAP//////////AAH//////////AAD/////////+AAD///+/////8AAB///8f////wAAAf//4P////AAAAH//wD///8AAAAA/+AAf//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//gAAAAAAAAB///+AA/+AAAAP////gA//wAAAf////wA//4AAB/////4A//8AAD/////8A//+AAD/////+A///AAH/////+A///AAP//////A///gAP//////A///gAf//////A///wAf//////A///wAf//////A///wAf//////A///wA///////AB//4A//4AD//AAP/4A//gAB//AAP/4A//gAA//AAP/4A//gAA/+AAP/4A//gAB/8AAP/4A//wAB/8AAf/4Af//////////wAf//////////wAf//////////wAf//////////wAf//////////wAP//////////gAP//////////gAH//////////AAH/////////+AAD/////////8AAB/////////4AAAf////////wAAAP////////AAAAB///////4AAAAAD/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/AAB/8AAAAAA//AAD/8AAAAAA//AAD/8AAAAAA//AAD/8AAAAAA//AAD/8AAAAAA//AAD/8AAAAAA//AAD/8AAAAAA//AAD/8AAAAAA//AAD/8AAAAAA//AAD/8AAAAAA//AAD/8AAAAAA//AAD/8AAAAAA//AAD/8AAAAAA//AAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), 46, atob("EiAnGicnJycnJycnEw=="), 78+(scale<<8)+(1<<16)); +} + +// timeout used to update every minute +var drawTimeout; + +// schedule a draw for the next minute +function queueDraw() { + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function() { + drawTimeout = undefined; + draw(); + }, 60000 - (Date.now() % 60000)); +} + + +function draw() { + var x = g.getWidth()/2; + var y = g.getHeight()/2; + g.reset(); + var date = new Date(); + var timeStr = require("locale").time(date,1); + var dateStr = require("locale").date(date).toUpperCase(); + // draw time + g.setFontAlign(0,0).setFont("Anton"); + g.clearRect(0,y-40,g.getWidth(),y+35); // clear the background + g.drawString(timeStr,x,y); + // draw date + y += 40; + g.setFontAlign(0,0).setFont("6x8",2); + g.clearRect(0,y-8,g.getWidth(),y+8); // clear the background + g.drawString(dateStr,x,y); + // queue draw in one minute + queueDraw(); +} + +// Clear the screen once, at startup +g.clear(); +// draw immediately at first, queue update +draw(); +// Stop updates when LCD is off, restart when on +Bangle.on('lcdPower',on=>{ + if (on) { + draw(); // draw immediately, queue redraw + } else { // stop draw timer + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + } +}); +// Load widgets +Bangle.loadWidgets(); +Bangle.drawWidgets(); +// Show launcher when middle button pressed +Bangle.setUI("clock"); + diff --git a/apps/antonclk/app.png b/apps/antonclk/app.png new file mode 100644 index 0000000000000000000000000000000000000000..d96f1775886e280f46652131b7e8c747fd28bf39 GIT binary patch literal 759 zcmV7+%Pq>NB>0j;1cq(G_{6MPsbMpLj0z4cW60a1|zQWoM% zAzdjis8AvnhL=)9%}Y@xQxrIp<}kP2!_1i(rzV)*BG=1ie`|kdt@Z7_){zA9nTjRC z|3Od(mew#LKST@kuAO89o zA%qG9bp>uf&`|g;09G{s><3KAL0N6xR{=cL_nHCF0Qe5xz8(%f`4q@m z5r`n_Xa#UzVHyArFz-GcKm+!|0~`-toKmZ@`fYBHXFhRJxmIAUji{nSriljb160TH zG;RXgvN#AmAbB!~nNqaf{RZL&u?W(qUCS}Gn8HXofGswm^*to`!hqKS6iTuCAzGvs zfUSRMAUEKQ7@@rY*|7=!av_8_;^I01EOE5x0Km>T2+qG50>>5)0i9XGr3X1hgUhJ+ zbV+(JP@Am7mmU&b0C*PwgBmdh=oMLmsK*6pb&-TOSSG%U47)os0bodz^J64+4ZxH$ zPaZO6&5fDU_`F(4sjWNFa(44V{^dQo6Gmw25k;dj{-c@D_duRB^gX%s>I+pvcWx;~ zZ&b~G5dQPI>x!K&Ag{Sc3lN^VsuK&Ray5-*xdWEdP!+pX<# pB+Y!B-kUjta002ovPDHLkV1fkMKyLs5 literal 0 HcmV?d00001 diff --git a/apps/antonclk/screenshot.png b/apps/antonclk/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..c66f8bdd85c6c2acef19f20ff86dab7b1d9c6a3f GIT binary patch literal 696 zcmeAS@N?(olHy`uVBq!ia0vp^8$g(e8Ax8b$#WJ+v7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpaf5VPl)UP|Nj{nfCxnV zoVS%9$Y4zJc6VXuV3qX%a@b2eeO=j~a*A_n%Kez1upTJA($mE;B;xSfYk_%(6?oVZ znx=@`mzU45aNRCkV(xU;^}@Uf{u^iKUb%22k=ZHgn#betkjQJ(wHVdc3iO{Um?DvM z`p1?79g#H?tfriI+96!Z*U!BsRg8cA`*^+i+8-jC+ouPvJND@90YimZJatyS5s?c& zt+tgDzj5GhL5XDLnY<58YfnAMc=^fV))bq*ZM!#=oOaa8IaTDs-PyLkAzNAs4m9XOIF3zyu2a|McptHjh`Yyi=a@ZK4iEEpI(UHx3vIVCg!011y7eE{ + if (on) { + draw(); // draw immediately, queue redraw + } else { // stop draw timer + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = undefined; + } +}); +// Load widgets +Bangle.loadWidgets(); +Bangle.drawWidgets(); +// Show launcher when middle button pressed +Bangle.setUI("clock"); \ No newline at end of file diff --git a/apps/waveclk/app.png b/apps/waveclk/app.png new file mode 100644 index 0000000000000000000000000000000000000000..ff43bb10655c67224603dec35559aac7b98fc560 GIT binary patch literal 2446 zcmV;9332v`P)R}BKQ(n^v* zNlPWs(#8iqu)2gPKG5649J%=-(`#LGBn8U{f{+LJozMN_aO@m;duQ(SM{D*UzqR+; zYkz-huf6tK+l0^`iQM!Dqdx)t3Fr?3$n<{$)J*z8n&@EfldMumHL=!`A>EMNs|`Ib zAz2!X2vKXZfB`@n2wGD`)173@unvH|j?w0>N`OU9-&3h;MNzwj9+j+8x^!GJq)4ey zdQU2F6?;*dDh-rINhaw#>AKXxG1^D6NpCyJ8+UD?`(ZE$PQY5|4ZT2605e=Ayqvwu> zCI8EoNsncZs8uwm%4$VJ&b}R=<6idVt&#Tuc!p`;zlWNG@uM^XuI&u9TnwS033t_ z5Cl5ip-N5F`t`mkDUo3LEZeGEh#ckAr8ypYHxkgd${m!P{#|L&CAb2UAQLj-D~NNI z?FZ>FVBbEk)vML9(^@U-F=vg>_z_Lxrp{7S&H7)3<&6Opj%;To zgu_7a10^MEWt2dxSG#!Vp)c&Sn?Ogqny(K&HGGl(w1r!`eD<;5kxEtGxzJx>Tmt~v zWD6b?=>S7HGy@ri-hW@8eyTltBx&bPO?ACyH^u3Ao__t+2V}FU@Pe?#fR-e+U%26+ z;GO}GbiX^Nwmly7BybXdIWW{Pl#-%xa%^1ycKhGa-zN-_*xz9yOE;h{x~WHQxRhL~g+*GsPqFAtUUbN73%YNh|!lWqgrs;!N_k;cM9PJl{PI-<$w z*rKaH!cu7ODml@SZ+SvAY=@5_`0{0eJKVP@w$?1vRDs2c#fp=)YHp7FP9-WH>N6@d zJLhva1xuhm_&7XC^6BFCR))|GiScct$VOquv)0_ zBp|gxm+P8SXTE}CkOD8mAXo;kI~6v*Fb(4EJs*CkPMzfEXZI9I8ZbbTA|jkhk5~lD zt0mrscsII!KyN`F9E9HB3%#J}%9Y0;$!?qC;`k-+=;%>Et5#|A=9-SUN#5SKx!3d> zNzc~0;NxkC13LdmpI0AF-aRaJP5<2OPj5V#sKhEj_dpkDV;7%0R~CyT-=jwr7pJ1D zx_D6;@5pMj{bZ|ley)!`szOkAHGH-?pNVX7Q~W9l#dT3Aie>!MYi6G{W6zzu2x+hs zPJu#0yZ0Jjr0WO?WVH%3V}?9DoU(2=si)@7QD&yf%PqJ6acCd4>Ff?|CrnV!2W74y zv}TPF&xp0nSS=PbW3xXQGG=*XeBh~s#X9+&PM@yQ79KwIryq5*D8~EsDhtVGQ~r5n z@05p!9tl;je+|EU;er<&hA{8~59kCs@{J@}JZm)4wsxwV@g&1uC1gIKFI5IT5zt|X zKx3b(k_eRc?3Xl8ar?D*w|Sof(6M7mOV!`PRaPcYU|_WZ#Z5s$Q{fQgz7eNm z^;~6c<`wSuCd$-&V2Hl{T9J`*lN9VMGg2e(bn4j!1!1R7D|3{f+v(H#xlq9^?$qt) zXDTXE$BvId?Af!HfBcgUGns7>@%8|yt0&a8_Is|AFa_+)((Anum@y- zf8yH$?MYX3s-*E6|NCqoA4&4@)`A5tS|cJV;R*oDa&to?BkRS{R&DK?TdCE2%}4Cg zuDJ zLWUtwMTNfqUel&I3f$TYH-G=hkPX2lC4(J45Cj=u8Z)LUGPP<|Q;lji%Ph%H)u0Ck zN`_%F40ljvr3^z|yE+R5yZWHhD`)Eo@VOmFe!d+|D43xqoPspSg)LwnF`|A;TP#gS zkAC6Wwfie8rTBQ$EZG4p6rS=sQiG82S@xnDnddg^x&{rb5C##*R-R@OWS2Ib@^ zeT!031Rj~0!tpkim#5|}bzu8Yn@!LI&cHXYw6O5WbLU20yS5rSLCcJdffTd@B_{_< z{R1YcPp=j+G1AjdyEumYYX;)&?Y3@RG|YjPpapYvB2SM#sv}4255}#JA9r&0cIxJ% zn>YPHVPUdbTR<24-JF&tP(nf{`35OK1B3M53e9{>4|M(@=c`}fzb(4C5nw3;yZ`_I M07*qoM6N<$g2mI7k^lez literal 0 HcmV?d00001 diff --git a/apps/waveclk/screenshot.png b/apps/waveclk/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..7f05ce68880935db0de4aaf840077e9b30413db7 GIT binary patch literal 2884 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 iR539+GBi3hI4dwQIxsMs^94u%0000