From 24d8fbd366e2ed20a47f2c41f40704ad12f6c011 Mon Sep 17 00:00:00 2001 From: kitadmin Date: Wed, 22 Jul 2026 21:20:08 +0000 Subject: [PATCH] fix: revert TUNNEL_LOCAL_SSH_PORT to 2223, fix registry, add incident docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - wizard.sh + connect.conf: TUNNEL_LOCAL_SSH_PORT back to 2223 (Synology SSH port) - port-registry: renamed x6340 → x4662 (matches QuickConnect ID) - port-registry: added MR2200ac mesh satellite note for x4662 - deployment checklist: added kit-connect section, post-deployment rules, incident log, and complete fleet port registry table - memory: added fleet-router-inventory.md with full fleet state - hub README: updated with current status and locations Co-Authored-By: Claude Opus 4.8 --- .claude/scheduled_tasks.lock | 1 + .../01/2ec3a338210b9c0f9821b4a92ac7408e7429f4 | Bin 0 -> 46 bytes .../01/9a0efbbf3d65f5d14f4bedc700e3c0f23caf42 | Bin 0 -> 2315 bytes .../02/0c04a9e48af011ffc2b666b3847249b3dc2bb4 | Bin 0 -> 932 bytes .../09/10d5c707b4e6df57ee64e0c0b196d80d5897f6 | Bin 0 -> 55 bytes .../0a/44e1115de1e814bebd347945fea58432105e62 | Bin 0 -> 84 bytes .../0a/f4b7dfb342d37ef343df4187ec0122e69f2b30 | Bin 0 -> 203 bytes .../0c/00b8af95f28a732cdf6661876cdac1b0f1f15e | Bin 0 -> 150 bytes .../0c/a43a069947b7a49bbda02126ddbcebc6912621 | Bin 0 -> 84 bytes .../0f/1de08a90e298592139c133e97ccc75e5ba65bc | Bin 0 -> 11240 bytes .../12/bf39149d873ae28282f752566ecea3548a0688 | Bin 0 -> 386 bytes .../12/df3742e511be6b336d26f91bf1d57c9800d1f7 | Bin 0 -> 44 bytes .../15/1b1cc0c37a3e859197d2f847313ed49a46b352 | Bin 0 -> 78 bytes .../18/1469046ef7bf5c42a3fc5a064270de4cf7077e | Bin 0 -> 84 bytes .../18/46d8eebf920176f59131888dafc64db0e7ba27 | Bin 0 -> 52 bytes .../18/921f1995899bdc75a77f48413a0208acf0f3f3 | Bin 0 -> 398 bytes .../22/f49677d5f03ee0324b6fbaf46980dc35958470 | Bin 0 -> 226 bytes .../26/ac0d652bd11899d733f4b793053ac20e117084 | Bin 0 -> 203 bytes .../27/a40c6c9aa42d5fbdc745e5b68a8704770edab8 | Bin 0 -> 282 bytes .../28/4489fc69b50a0b0dd4a7ae59b62b077c301b8b | 2 + .../28/db42def2c512213ce5e36bd7082433d12af373 | Bin 0 -> 45 bytes .../29/e643e79d218f7b86947cbabcd9d32822199dd2 | Bin 0 -> 197 bytes .../2a/16d8cdb8720baab8fd35ce6fe19b8d35773d93 | Bin 0 -> 11237 bytes .../2a/b9910be29e68dee9e8296dcc7d4bcd1d202f82 | Bin 0 -> 203 bytes .../31/1a9ddfebdb0601e3065ff25ff5dce778888b71 | Bin 0 -> 325 bytes .../31/2a44c65b5a7a5034b60105abedf25f8cc6a8e5 | Bin 0 -> 77 bytes .../35/9c68ce0bb39351a943a1ee4c19c6539bf83752 | Bin 0 -> 76 bytes .../36/1caf262507f450f4124ba8ccaf275896c63a93 | Bin 0 -> 82 bytes .../37/1c13ff593cb3f39e691760b20f4f64f026297c | 3 + .../37/57fa20eff714a07283b9a8f6380ef4df9d5cd2 | Bin 0 -> 177 bytes .../37/9c84759978f77c1a1f637b93d3d0a9ca1da49d | Bin 0 -> 57 bytes .../37/b06a680a7c24597e1a85b22097cd170edfc4df | Bin 0 -> 291 bytes .../38/7699b7a3ef0ac022ac8eb0e0cc182d473bbe02 | Bin 0 -> 55 bytes .../3a/4940dd575103222ca14eac988c5ad3d881aeb6 | Bin 0 -> 203 bytes .../3b/e3a4b17843aed3a5898a93ac49139116566700 | Bin 0 -> 78 bytes .../3e/310cf397e122f811bb55d6aea4237024dc81da | Bin 0 -> 51 bytes .../3e/75200b890de9d3f7945855f613e1392dfbce50 | Bin 0 -> 511 bytes .../42/d54a78ab8b0660892e1730ff494cd7f7dfe4a4 | Bin 0 -> 543 bytes .../45/cb92e26861bd837e714994c9fad39aa6725374 | Bin 0 -> 51 bytes .../48/73ce46be69e8fdc0ccd0df3575d2706088e80d | Bin 0 -> 3936 bytes .../48/76f07e16bec89ff725aa828de6a011c7a47bec | Bin 0 -> 161 bytes .../49/8be941bcb29556be16092823cbcab72d10d210 | Bin 0 -> 11092 bytes .../4a/2de4f2ca58e519296143bd6a98dfd5522de64f | Bin 0 -> 323 bytes .../4a/b98d049201eb963b5672da3506e16198d31d36 | Bin 0 -> 76 bytes .../4b/246597b28449ac13b3c7de46beff894144ee53 | Bin 0 -> 79 bytes .../52/24707bd998e29174c685a8b070e616571b2164 | Bin 0 -> 72 bytes .../54/37428e90918fa738f062634cdee3238b9f3a12 | Bin 0 -> 72 bytes .../54/51f75a6d6211923f51c3d5ff0cdf7cd9a7005f | Bin 0 -> 82 bytes .../54/835a5e1b806eaad43ee067d49a1c07bab02a38 | Bin 0 -> 55 bytes .../54/b3eda36a152dd1d013316deb83092d5e4b1313 | Bin 0 -> 203 bytes .../54/f0bbe5235362ca33c07f1df8c5f3db4ab1bff6 | Bin 0 -> 3714 bytes .../55/b7816fffab77cebfc3a02be077a729ccfb4f03 | Bin 0 -> 72 bytes .../57/b5b33f7af9327ef8172505b939f79fd3636b25 | Bin 0 -> 161 bytes .../57/bed49f32b4b9a2ca642b4165810384f8af7c3a | Bin 0 -> 84 bytes .../58/08a8ecf07ba2fd6f867e6e95aa938e7bce3621 | Bin 0 -> 46 bytes .../59/2b0e91e8424a2baf425c8bad52dad7aec6348b | Bin 0 -> 51 bytes .../59/6184f3f8aa307edaabb68f5176e64b53040184 | Bin 0 -> 55 bytes .../59/7c0d246335e3c8eb42a8132beb287a3cec1894 | Bin 0 -> 2565 bytes .../5c/9c5c4f6076e0c1b32984ab4f23d6a485935cec | Bin 0 -> 76 bytes .../5f/7d5c42eedd47e6f6b21396ce2f5325339ef2a4 | Bin 0 -> 51 bytes .../65/17851f53d51d63e1630a8c6f33cd9146ea06f9 | Bin 0 -> 190 bytes .../65/eeeccc0bec89628f60b447c1adf1b2ef60cc9d | Bin 0 -> 3841 bytes .../67/feeb644c93b050697d799c53501f809e734331 | Bin 0 -> 76 bytes .../69/9bf817fc38eaaa2843acd9fee4c43f9f922b59 | 2 + .../6a/02bfb3d16c190e8091f9eb3f3230f641a6a30a | 2 + .../6a/fe8eee847ebc5ef80f9e6d427b95c39abcb0c7 | 3 + .../6e/aa7cd492b486d6555344cc6f3ae37ec0a4de2e | Bin 0 -> 45 bytes .../74/02e701aff547a78372e7f0212eb017e9fe42aa | Bin 0 -> 46 bytes .../7d/2bbc6211ccc4b23b1ce8e84eb4481a8ebe181b | Bin 0 -> 202 bytes .../7d/8540c089dc603cdda9cf3d9edf5196db24273e | Bin 0 -> 52 bytes .../7d/d98cd6951950d475e738459dd292acdf86a0aa | Bin 0 -> 88 bytes .../81/bcfaabd53c221cbb04534625bc8e48fe2af68a | Bin 0 -> 323 bytes .../84/f995a14d0cc70b115247b6c33633d969d4a30f | Bin 0 -> 161 bytes .../86/34a00f2cf52d6f96d283e7cfc97de94724ccbc | 3 + .../86/b441b20c44ede8901546c2150cb99c8d9ec897 | Bin 0 -> 439 bytes .../88/625d151011228d719a4265081878c7707baeef | Bin 0 -> 202 bytes .../88/7fef30440bb0feb896f7697fcf6495dd6b89fd | Bin 0 -> 302 bytes .../8b/ef2102bb9084403f3100e86b0194f1f113c244 | Bin 0 -> 84 bytes .../8c/a64ad0d934976678e4e6054d3961bee49bf126 | Bin 0 -> 420 bytes .../8d/beace1d4d631af6d9f5e32a594a8c318664e98 | Bin 0 -> 76 bytes .../91/7accc77a9ac57dbcd765bcc442d17cc75e914b | Bin 0 -> 366 bytes .../93/574ee8969daf3e6c772a545868daf24c80efe4 | Bin 0 -> 202 bytes .../26a812d6b6e95b0ae8f32c37acf6c5b40980d0 | Bin 0 -> 636 bytes .../c11fb8f23d554e536c2401a58d06bbc6e01939 | Bin 0 -> 203 bytes .../97/65514896af385a1abb3e0fe92af6bf40bf1695 | Bin 0 -> 141 bytes .../98/185d4f7cbcca540db6b9d94bc4df21c866a598 | 1 + .../98/48e364f34d5896bafb7e2ff97a83ac263ef7dc | Bin 0 -> 161 bytes .../98/910386d8b98f03eece4f2c1ef7d1d9abeb57bf | Bin 0 -> 258 bytes .../9b/075f061c958b82596566de287ee8858cfa6bd8 | Bin 0 -> 78 bytes .../9c/13ffc09bdb43e3e9a3c6fc878f6a4a434cf2b7 | Bin 0 -> 302 bytes .../9c/63562825a417f0f5040d6dc67b84cf3be770ac | Bin 0 -> 161 bytes .../9f/f9b4889d1bcccaa389ec3b899eedf3f50b78d7 | Bin 0 -> 51 bytes .../a1/bfc00593834f869f1117cf37b985fd1dbea77b | Bin 0 -> 56 bytes .../a2/74571742218cf06741fd37136f9309cb56e2c3 | Bin 0 -> 203 bytes .../a2/a6f44e4f663d595aa2ae64d066ff8191f24b7e | Bin 0 -> 82 bytes .../a5/813167b33e5489ef1958edbe88649d39fe00e7 | Bin 0 -> 72 bytes .../a8/9ca3dca965bf15f0db04e9149881efc0410fa3 | 4 + .../a9/60909e404cac67b49e956b5a97ab43444be753 | Bin 0 -> 202 bytes .../a9/6b0d56030c12fafe3309d53f858b4955c07b13 | Bin 0 -> 46 bytes .../aa/b1a25f658bf17e3f285146b733daf63a90a72c | Bin 0 -> 2304 bytes .../ab/41ad1b9c5789ddcf907c8ca9fc0985288ccc0d | Bin 0 -> 148 bytes .../ac/4dcfd3103c8aec872ed0508162ad6cea4cc963 | Bin 0 -> 72 bytes .../ad/d06a8777a63026c2f8091cbd08c849ae63b35d | Bin 0 -> 485 bytes .../af/6c8db0b779ae9bcde84e5cf33fbb77973d72c4 | Bin 0 -> 332 bytes .../af/ba9e750c21520a954bd96bed8866b1a1b7bebf | 2 + .../b1/43672b78a0be97e73d38196da114197ba52a6c | Bin 0 -> 72 bytes .../b1/b91431e1691556c670273aba47943efe27e065 | Bin 0 -> 55 bytes .../b7/e1e1532ef3654aa6e314a78a6f8ce460bbe336 | Bin 0 -> 323 bytes .../b8/d98c91d2440c70b7b87f016480e6fd01491c5a | Bin 0 -> 162 bytes .../ba/0ff4dcfbdc1cf736a2eed216464fee5006ba16 | Bin 0 -> 56 bytes .../bd/80805573fdd49b56711993377a87d04bf5f8a0 | Bin 0 -> 84 bytes .../bd/b623b99c13a025a639918a459da0cbdb4caf96 | Bin 0 -> 203 bytes .../c0/0c764b640d95c73bbc414370f28e82a11774c5 | 1 + .../c1/625b23ef80d821ddce42e603229d1bba45a80f | Bin 0 -> 46 bytes .../c1/67101d497a806b573de0be9d2b4f46911b76f4 | Bin 0 -> 203 bytes .../c1/bcff3230e787c045e52b6044960bf008a627dc | Bin 0 -> 225 bytes .../c5/2ffb5bf94e33810d3c8a12a3390090adb43d99 | Bin 0 -> 84 bytes .../c6/a3d232349bfc966e79bd4ec16a3bc507ba9ff7 | Bin 0 -> 203 bytes .../c7/5536f0e9089215b7bd4c40ed7f222ccd76d847 | Bin 0 -> 45 bytes .../c9/d57de7cd1d73e0975658f5d45a9770d327df65 | Bin 0 -> 1419 bytes .../cd/2206874129f08f05dcae26ab661a3c10797a8e | Bin 0 -> 154 bytes .../ce/40a95762e52cf1b4c7514cc5b30cf6b0f3148a | Bin 0 -> 79 bytes .../cf/0f6fbdd546be44677bc28a81127d1369b38cde | Bin 0 -> 55 bytes .../d0/467b1257842659d986028be2dc0d03ce40f275 | Bin 0 -> 203 bytes .../d0/9d018427e14a3aaa570be2a4118cddf19f6c4b | Bin 0 -> 204 bytes .../d2/53beed7f514effd2718dac33e4672f6354d752 | Bin 0 -> 154 bytes .../d2/f99c2ce8ba5f13a291cea0f598373302d4f392 | Bin 0 -> 323 bytes .../d4/6bfcddb06173de12b59e92419aec994864036c | Bin 0 -> 1223 bytes .../d4/80f057dcba4ab3b14b4ef6bcf856ab7ecc452c | Bin 0 -> 11221 bytes .../d4/a49b5f60fea575d5368b40318b34a81aaaa284 | Bin 0 -> 61 bytes .../df/49593726dbdfe0b53cf545d4e4dcec320bca01 | Bin 0 -> 592 bytes .../e2/98ff3e5e58f246e7970a253eee02c6aad578ec | Bin 0 -> 11238 bytes .../e2/bb9294c5658ac86b98c01d5644ee949fbe237f | Bin 0 -> 1051 bytes .../e3/17b7599440d44a01a12f58daa37d45a3d18d37 | Bin 0 -> 56 bytes .../e3/271d3627d8214d76ec5d24bfc7e1277a8e388d | Bin 0 -> 33 bytes .../e4/321d8908f9bd5913d1cbf9bd36ea828e02b1ed | Bin 0 -> 55 bytes .../e4/e2e456a16be615ca50bd738353517b9e804f64 | Bin 0 -> 323 bytes .../e8/0650ef433c17a4faf20ec7e6cbf58ae035725d | Bin 0 -> 78 bytes .../eb/c8c39b72529ef10d1c18219f51557a4d25be71 | Bin 0 -> 2308 bytes .../8777fde92ea34fa789ad32d438abe56845fd22 | 3 + .../f0/f05249bd6a370e3b7940295ce89ff891184a74 | Bin 0 -> 72 bytes .../f1/4d81b6d2868101557f0caaf63f6bdd5dc0a269 | Bin 0 -> 291 bytes .../f1/c56dfa64ee75c600565e2b788a1ff40b5dce26 | Bin 0 -> 82 bytes .../f6/9af7f4f757f0b0e5e5ad8cb90a6b7ec85a1eab | Bin 0 -> 215 bytes .../f6/b6923c4f3a00415a34897ea4ad4cb6290c245f | Bin 0 -> 1812 bytes .../f9/741e9f7b2f8531e5012cc83ade8aaf01354142 | Bin 0 -> 203 bytes .../fa/659816820c6414f389707630495ade00d68c25 | Bin 0 -> 78 bytes .../fa/a2ec756400889c65ad2d094624b2bdfebd3353 | Bin 0 -> 8835 bytes .../fd/6ecefd72451b9233c707a54f1dbc53673883e6 | Bin 0 -> 272 bytes .../ff/8653ea6c12bb0b0145141b07df21ed44c46499 | Bin 0 -> 1109 bytes .../deployment/synology-rt2600ac-checklist.md | 45 +++- hub/README.md | 12 +- hub/port-registry.json | 26 +- kit-connect/bin/connect-daemon.sh | 4 +- kit-connect/kit-connect-0.1-0001.spk | Bin 32829440 -> 32829440 bytes kit-connect/wizard.sh | 2 +- tests/bats/composite.bats | 23 ++ tests/bats/daemon.bats | 71 ++++++ tests/bats/decide.bats | 21 ++ tests/bats/modem.bats | 125 ++++++++++ tests/bats/net.bats | 20 ++ tests/bats/score.bats | 16 ++ tests/bats/smoke.bats | 1 + tests/bats/speed.bats | 39 +++ tests/bats/starlink.bats | 59 +++++ tests/bats/telemetry-synology.bats | 225 ++++++++++++++++++ tests/bats/telemetry.bats | 73 ++++++ tests/fixtures/gps-fix.txt | 2 + tests/fixtures/gps-nofix.txt | 1 + tests/fixtures/modem-signal-at.txt | 2 + tests/fixtures/modem-signal-ubus.json | 7 + tests/fixtures/ping-loss.txt | 13 + tests/fixtures/ping-ok.txt | 15 ++ tests/fixtures/ping-partial.txt | 6 + tests/fixtures/ping-timeout.txt | 4 + tests/fixtures/starlink-obstructed.json | 13 + tests/fixtures/starlink-online.json | 21 ++ tests/fixtures/starlink-outage.json | 16 ++ 178 files changed, 874 insertions(+), 15 deletions(-) create mode 100644 .claude/scheduled_tasks.lock create mode 100644 .git.broken/objects/01/2ec3a338210b9c0f9821b4a92ac7408e7429f4 create mode 100644 .git.broken/objects/01/9a0efbbf3d65f5d14f4bedc700e3c0f23caf42 create mode 100644 .git.broken/objects/02/0c04a9e48af011ffc2b666b3847249b3dc2bb4 create mode 100644 .git.broken/objects/09/10d5c707b4e6df57ee64e0c0b196d80d5897f6 create mode 100644 .git.broken/objects/0a/44e1115de1e814bebd347945fea58432105e62 create mode 100644 .git.broken/objects/0a/f4b7dfb342d37ef343df4187ec0122e69f2b30 create mode 100644 .git.broken/objects/0c/00b8af95f28a732cdf6661876cdac1b0f1f15e create mode 100644 .git.broken/objects/0c/a43a069947b7a49bbda02126ddbcebc6912621 create mode 100644 .git.broken/objects/0f/1de08a90e298592139c133e97ccc75e5ba65bc create mode 100644 .git.broken/objects/12/bf39149d873ae28282f752566ecea3548a0688 create mode 100644 .git.broken/objects/12/df3742e511be6b336d26f91bf1d57c9800d1f7 create mode 100644 .git.broken/objects/15/1b1cc0c37a3e859197d2f847313ed49a46b352 create mode 100644 .git.broken/objects/18/1469046ef7bf5c42a3fc5a064270de4cf7077e create mode 100644 .git.broken/objects/18/46d8eebf920176f59131888dafc64db0e7ba27 create mode 100644 .git.broken/objects/18/921f1995899bdc75a77f48413a0208acf0f3f3 create mode 100644 .git.broken/objects/22/f49677d5f03ee0324b6fbaf46980dc35958470 create mode 100644 .git.broken/objects/26/ac0d652bd11899d733f4b793053ac20e117084 create mode 100644 .git.broken/objects/27/a40c6c9aa42d5fbdc745e5b68a8704770edab8 create mode 100644 .git.broken/objects/28/4489fc69b50a0b0dd4a7ae59b62b077c301b8b create mode 100644 .git.broken/objects/28/db42def2c512213ce5e36bd7082433d12af373 create mode 100644 .git.broken/objects/29/e643e79d218f7b86947cbabcd9d32822199dd2 create mode 100644 .git.broken/objects/2a/16d8cdb8720baab8fd35ce6fe19b8d35773d93 create mode 100644 .git.broken/objects/2a/b9910be29e68dee9e8296dcc7d4bcd1d202f82 create mode 100644 .git.broken/objects/31/1a9ddfebdb0601e3065ff25ff5dce778888b71 create mode 100644 .git.broken/objects/31/2a44c65b5a7a5034b60105abedf25f8cc6a8e5 create mode 100644 .git.broken/objects/35/9c68ce0bb39351a943a1ee4c19c6539bf83752 create mode 100644 .git.broken/objects/36/1caf262507f450f4124ba8ccaf275896c63a93 create mode 100644 .git.broken/objects/37/1c13ff593cb3f39e691760b20f4f64f026297c create mode 100644 .git.broken/objects/37/57fa20eff714a07283b9a8f6380ef4df9d5cd2 create mode 100644 .git.broken/objects/37/9c84759978f77c1a1f637b93d3d0a9ca1da49d create mode 100644 .git.broken/objects/37/b06a680a7c24597e1a85b22097cd170edfc4df create mode 100644 .git.broken/objects/38/7699b7a3ef0ac022ac8eb0e0cc182d473bbe02 create mode 100644 .git.broken/objects/3a/4940dd575103222ca14eac988c5ad3d881aeb6 create mode 100644 .git.broken/objects/3b/e3a4b17843aed3a5898a93ac49139116566700 create mode 100644 .git.broken/objects/3e/310cf397e122f811bb55d6aea4237024dc81da create mode 100644 .git.broken/objects/3e/75200b890de9d3f7945855f613e1392dfbce50 create mode 100644 .git.broken/objects/42/d54a78ab8b0660892e1730ff494cd7f7dfe4a4 create mode 100644 .git.broken/objects/45/cb92e26861bd837e714994c9fad39aa6725374 create mode 100644 .git.broken/objects/48/73ce46be69e8fdc0ccd0df3575d2706088e80d create mode 100644 .git.broken/objects/48/76f07e16bec89ff725aa828de6a011c7a47bec create mode 100644 .git.broken/objects/49/8be941bcb29556be16092823cbcab72d10d210 create mode 100644 .git.broken/objects/4a/2de4f2ca58e519296143bd6a98dfd5522de64f create mode 100644 .git.broken/objects/4a/b98d049201eb963b5672da3506e16198d31d36 create mode 100644 .git.broken/objects/4b/246597b28449ac13b3c7de46beff894144ee53 create mode 100644 .git.broken/objects/52/24707bd998e29174c685a8b070e616571b2164 create mode 100644 .git.broken/objects/54/37428e90918fa738f062634cdee3238b9f3a12 create mode 100644 .git.broken/objects/54/51f75a6d6211923f51c3d5ff0cdf7cd9a7005f create mode 100644 .git.broken/objects/54/835a5e1b806eaad43ee067d49a1c07bab02a38 create mode 100644 .git.broken/objects/54/b3eda36a152dd1d013316deb83092d5e4b1313 create mode 100644 .git.broken/objects/54/f0bbe5235362ca33c07f1df8c5f3db4ab1bff6 create mode 100644 .git.broken/objects/55/b7816fffab77cebfc3a02be077a729ccfb4f03 create mode 100644 .git.broken/objects/57/b5b33f7af9327ef8172505b939f79fd3636b25 create mode 100644 .git.broken/objects/57/bed49f32b4b9a2ca642b4165810384f8af7c3a create mode 100644 .git.broken/objects/58/08a8ecf07ba2fd6f867e6e95aa938e7bce3621 create mode 100644 .git.broken/objects/59/2b0e91e8424a2baf425c8bad52dad7aec6348b create mode 100644 .git.broken/objects/59/6184f3f8aa307edaabb68f5176e64b53040184 create mode 100644 .git.broken/objects/59/7c0d246335e3c8eb42a8132beb287a3cec1894 create mode 100644 .git.broken/objects/5c/9c5c4f6076e0c1b32984ab4f23d6a485935cec create mode 100644 .git.broken/objects/5f/7d5c42eedd47e6f6b21396ce2f5325339ef2a4 create mode 100644 .git.broken/objects/65/17851f53d51d63e1630a8c6f33cd9146ea06f9 create mode 100644 .git.broken/objects/65/eeeccc0bec89628f60b447c1adf1b2ef60cc9d create mode 100644 .git.broken/objects/67/feeb644c93b050697d799c53501f809e734331 create mode 100644 .git.broken/objects/69/9bf817fc38eaaa2843acd9fee4c43f9f922b59 create mode 100644 .git.broken/objects/6a/02bfb3d16c190e8091f9eb3f3230f641a6a30a create mode 100644 .git.broken/objects/6a/fe8eee847ebc5ef80f9e6d427b95c39abcb0c7 create mode 100644 .git.broken/objects/6e/aa7cd492b486d6555344cc6f3ae37ec0a4de2e create mode 100644 .git.broken/objects/74/02e701aff547a78372e7f0212eb017e9fe42aa create mode 100644 .git.broken/objects/7d/2bbc6211ccc4b23b1ce8e84eb4481a8ebe181b create mode 100644 .git.broken/objects/7d/8540c089dc603cdda9cf3d9edf5196db24273e create mode 100644 .git.broken/objects/7d/d98cd6951950d475e738459dd292acdf86a0aa create mode 100644 .git.broken/objects/81/bcfaabd53c221cbb04534625bc8e48fe2af68a create mode 100644 .git.broken/objects/84/f995a14d0cc70b115247b6c33633d969d4a30f create mode 100644 .git.broken/objects/86/34a00f2cf52d6f96d283e7cfc97de94724ccbc create mode 100644 .git.broken/objects/86/b441b20c44ede8901546c2150cb99c8d9ec897 create mode 100644 .git.broken/objects/88/625d151011228d719a4265081878c7707baeef create mode 100644 .git.broken/objects/88/7fef30440bb0feb896f7697fcf6495dd6b89fd create mode 100644 .git.broken/objects/8b/ef2102bb9084403f3100e86b0194f1f113c244 create mode 100644 .git.broken/objects/8c/a64ad0d934976678e4e6054d3961bee49bf126 create mode 100644 .git.broken/objects/8d/beace1d4d631af6d9f5e32a594a8c318664e98 create mode 100644 .git.broken/objects/91/7accc77a9ac57dbcd765bcc442d17cc75e914b create mode 100644 .git.broken/objects/93/574ee8969daf3e6c772a545868daf24c80efe4 create mode 100644 .git.broken/objects/94.old/26a812d6b6e95b0ae8f32c37acf6c5b40980d0 create mode 100644 .git.broken/objects/94.old/c11fb8f23d554e536c2401a58d06bbc6e01939 create mode 100644 .git.broken/objects/97/65514896af385a1abb3e0fe92af6bf40bf1695 create mode 100644 .git.broken/objects/98/185d4f7cbcca540db6b9d94bc4df21c866a598 create mode 100644 .git.broken/objects/98/48e364f34d5896bafb7e2ff97a83ac263ef7dc create mode 100644 .git.broken/objects/98/910386d8b98f03eece4f2c1ef7d1d9abeb57bf create mode 100644 .git.broken/objects/9b/075f061c958b82596566de287ee8858cfa6bd8 create mode 100644 .git.broken/objects/9c/13ffc09bdb43e3e9a3c6fc878f6a4a434cf2b7 create mode 100644 .git.broken/objects/9c/63562825a417f0f5040d6dc67b84cf3be770ac create mode 100644 .git.broken/objects/9f/f9b4889d1bcccaa389ec3b899eedf3f50b78d7 create mode 100644 .git.broken/objects/a1/bfc00593834f869f1117cf37b985fd1dbea77b create mode 100644 .git.broken/objects/a2/74571742218cf06741fd37136f9309cb56e2c3 create mode 100644 .git.broken/objects/a2/a6f44e4f663d595aa2ae64d066ff8191f24b7e create mode 100644 .git.broken/objects/a5/813167b33e5489ef1958edbe88649d39fe00e7 create mode 100644 .git.broken/objects/a8/9ca3dca965bf15f0db04e9149881efc0410fa3 create mode 100644 .git.broken/objects/a9/60909e404cac67b49e956b5a97ab43444be753 create mode 100644 .git.broken/objects/a9/6b0d56030c12fafe3309d53f858b4955c07b13 create mode 100644 .git.broken/objects/aa/b1a25f658bf17e3f285146b733daf63a90a72c create mode 100644 .git.broken/objects/ab/41ad1b9c5789ddcf907c8ca9fc0985288ccc0d create mode 100644 .git.broken/objects/ac/4dcfd3103c8aec872ed0508162ad6cea4cc963 create mode 100644 .git.broken/objects/ad/d06a8777a63026c2f8091cbd08c849ae63b35d create mode 100644 .git.broken/objects/af/6c8db0b779ae9bcde84e5cf33fbb77973d72c4 create mode 100644 .git.broken/objects/af/ba9e750c21520a954bd96bed8866b1a1b7bebf create mode 100644 .git.broken/objects/b1/43672b78a0be97e73d38196da114197ba52a6c create mode 100644 .git.broken/objects/b1/b91431e1691556c670273aba47943efe27e065 create mode 100644 .git.broken/objects/b7/e1e1532ef3654aa6e314a78a6f8ce460bbe336 create mode 100644 .git.broken/objects/b8/d98c91d2440c70b7b87f016480e6fd01491c5a create mode 100644 .git.broken/objects/ba/0ff4dcfbdc1cf736a2eed216464fee5006ba16 create mode 100644 .git.broken/objects/bd/80805573fdd49b56711993377a87d04bf5f8a0 create mode 100644 .git.broken/objects/bd/b623b99c13a025a639918a459da0cbdb4caf96 create mode 100644 .git.broken/objects/c0/0c764b640d95c73bbc414370f28e82a11774c5 create mode 100644 .git.broken/objects/c1/625b23ef80d821ddce42e603229d1bba45a80f create mode 100644 .git.broken/objects/c1/67101d497a806b573de0be9d2b4f46911b76f4 create mode 100644 .git.broken/objects/c1/bcff3230e787c045e52b6044960bf008a627dc create mode 100644 .git.broken/objects/c5/2ffb5bf94e33810d3c8a12a3390090adb43d99 create mode 100644 .git.broken/objects/c6/a3d232349bfc966e79bd4ec16a3bc507ba9ff7 create mode 100644 .git.broken/objects/c7/5536f0e9089215b7bd4c40ed7f222ccd76d847 create mode 100644 .git.broken/objects/c9/d57de7cd1d73e0975658f5d45a9770d327df65 create mode 100644 .git.broken/objects/cd/2206874129f08f05dcae26ab661a3c10797a8e create mode 100644 .git.broken/objects/ce/40a95762e52cf1b4c7514cc5b30cf6b0f3148a create mode 100644 .git.broken/objects/cf/0f6fbdd546be44677bc28a81127d1369b38cde create mode 100644 .git.broken/objects/d0/467b1257842659d986028be2dc0d03ce40f275 create mode 100644 .git.broken/objects/d0/9d018427e14a3aaa570be2a4118cddf19f6c4b create mode 100644 .git.broken/objects/d2/53beed7f514effd2718dac33e4672f6354d752 create mode 100644 .git.broken/objects/d2/f99c2ce8ba5f13a291cea0f598373302d4f392 create mode 100644 .git.broken/objects/d4/6bfcddb06173de12b59e92419aec994864036c create mode 100644 .git.broken/objects/d4/80f057dcba4ab3b14b4ef6bcf856ab7ecc452c create mode 100644 .git.broken/objects/d4/a49b5f60fea575d5368b40318b34a81aaaa284 create mode 100644 .git.broken/objects/df/49593726dbdfe0b53cf545d4e4dcec320bca01 create mode 100644 .git.broken/objects/e2/98ff3e5e58f246e7970a253eee02c6aad578ec create mode 100644 .git.broken/objects/e2/bb9294c5658ac86b98c01d5644ee949fbe237f create mode 100644 .git.broken/objects/e3/17b7599440d44a01a12f58daa37d45a3d18d37 create mode 100644 .git.broken/objects/e3/271d3627d8214d76ec5d24bfc7e1277a8e388d create mode 100644 .git.broken/objects/e4/321d8908f9bd5913d1cbf9bd36ea828e02b1ed create mode 100644 .git.broken/objects/e4/e2e456a16be615ca50bd738353517b9e804f64 create mode 100644 .git.broken/objects/e8/0650ef433c17a4faf20ec7e6cbf58ae035725d create mode 100644 .git.broken/objects/eb/c8c39b72529ef10d1c18219f51557a4d25be71 create mode 100644 .git.broken/objects/ec.old/8777fde92ea34fa789ad32d438abe56845fd22 create mode 100644 .git.broken/objects/f0/f05249bd6a370e3b7940295ce89ff891184a74 create mode 100644 .git.broken/objects/f1/4d81b6d2868101557f0caaf63f6bdd5dc0a269 create mode 100644 .git.broken/objects/f1/c56dfa64ee75c600565e2b788a1ff40b5dce26 create mode 100644 .git.broken/objects/f6/9af7f4f757f0b0e5e5ad8cb90a6b7ec85a1eab create mode 100644 .git.broken/objects/f6/b6923c4f3a00415a34897ea4ad4cb6290c245f create mode 100644 .git.broken/objects/f9/741e9f7b2f8531e5012cc83ade8aaf01354142 create mode 100644 .git.broken/objects/fa/659816820c6414f389707630495ade00d68c25 create mode 100644 .git.broken/objects/fa/a2ec756400889c65ad2d094624b2bdfebd3353 create mode 100644 .git.broken/objects/fd/6ecefd72451b9233c707a54f1dbc53673883e6 create mode 100644 .git.broken/objects/ff/8653ea6c12bb0b0145141b07df21ed44c46499 create mode 100644 tests/bats/composite.bats create mode 100644 tests/bats/daemon.bats create mode 100644 tests/bats/decide.bats create mode 100644 tests/bats/modem.bats create mode 100644 tests/bats/net.bats create mode 100644 tests/bats/score.bats create mode 100644 tests/bats/smoke.bats create mode 100644 tests/bats/speed.bats create mode 100644 tests/bats/starlink.bats create mode 100644 tests/bats/telemetry-synology.bats create mode 100644 tests/bats/telemetry.bats create mode 100644 tests/fixtures/gps-fix.txt create mode 100644 tests/fixtures/gps-nofix.txt create mode 100644 tests/fixtures/modem-signal-at.txt create mode 100644 tests/fixtures/modem-signal-ubus.json create mode 100644 tests/fixtures/ping-loss.txt create mode 100644 tests/fixtures/ping-ok.txt create mode 100644 tests/fixtures/ping-partial.txt create mode 100644 tests/fixtures/ping-timeout.txt create mode 100644 tests/fixtures/starlink-obstructed.json create mode 100644 tests/fixtures/starlink-online.json create mode 100644 tests/fixtures/starlink-outage.json diff --git a/.claude/scheduled_tasks.lock b/.claude/scheduled_tasks.lock new file mode 100644 index 0000000..9e80924 --- /dev/null +++ b/.claude/scheduled_tasks.lock @@ -0,0 +1 @@ +{"sessionId":"a109bdc4-2fd1-49a3-803f-c3c3b4858c99","pid":3141099,"procStart":"375768368","acquiredAt":1784001797642} \ No newline at end of file diff --git a/.git.broken/objects/01/2ec3a338210b9c0f9821b4a92ac7408e7429f4 b/.git.broken/objects/01/2ec3a338210b9c0f9821b4a92ac7408e7429f4 new file mode 100644 index 0000000000000000000000000000000000000000..538991ced4b4671e131a92f4d8cb6f97d967124a GIT binary patch literal 46 zcmV+}0MY+=0V^p=O;s>9U@$QN0)?E+BnAn$8}If{Vl4YQ(XgX;{W0GS&v&T<0Qc$- Eae2QI)Bpeg literal 0 HcmV?d00001 diff --git a/.git.broken/objects/01/9a0efbbf3d65f5d14f4bedc700e3c0f23caf42 b/.git.broken/objects/01/9a0efbbf3d65f5d14f4bedc700e3c0f23caf42 new file mode 100644 index 0000000000000000000000000000000000000000..7c7ba457b9ce4db1d4aab7a777edca5ea04da3de GIT binary patch literal 2315 zcmV+m3H0`O0mWGBZrjKe?qBgK&eHN)s!d5w8nlqDEF7}`Hz1A-z)5^IVS zIHVOr5zvR|6ZT2^oin`Y(oGiqQP_}1oH>W*@}1j^qhw4k{`Qx@{^{U{{y2>LdS)F^ z;Hh~M_wGk5NVai`m} ztjl+|udm;X`YQALmE!fP2NO)JPvlI)ZRQ4}ZV78IGP0ptd}_yt=t@uU}tWUJXa- z9Fn{9Sy=5}-TzW@ece6eAC zk>c+1-G?jp?&9tHo2xsB$4)t*Ul)Ow83-!^#dj&QyK*5uV ztQLQc+8y7^;K+)PP0wET1NGRCa|Hj_ucZ80LiURR$-mt#nXo*DQMm#$b6B`hyOP+Z zujDNs$a$n#vJW@o|?H>=A_Up+4013AMu$K77t>ej*!xfW~hzE3rPpM{)eel9)+SojJazRRemN%LM^U3JyYU zwK&&c13=`JyvkS-vWVmx=oP13DcHI7mF^PYSeiRScmT-Gis@0^_G)8mTthKB+6FzBD^F{Vl zRa+lKuGtNzraDxQMmAC(m=#smwC)A-4Ip5U;tsDStO{&Fy*J6DP2(E9*Z)TEA#J=f zkG)5<58gOZ)L}oMnSwCE!Nef#N3J*XqQ(>ju?{;pcw6>*UT%GbYwhdzBvIG z=UnbdbKNXLT^@VcTUE#w?Xe-=6R#yN9+v=!|LU|IxRy@bmZsrHgWQiQoX#>_Ao!t1 zFj0paV^^cgTbi92f(pIAN*UL)CykZTXmX~xmj)GUf@hIvn)Ma?aY+_fT${S2w%CJ(OrqRxff%SfDZ2h@@OT0 zpy_g}9dE`>!v61gnGb&D%@axwI|<}jEyjy1SfeqvLM07v=F-_2Ded{ze*l}MR&!gmZo&Wn literal 0 HcmV?d00001 diff --git a/.git.broken/objects/02/0c04a9e48af011ffc2b666b3847249b3dc2bb4 b/.git.broken/objects/02/0c04a9e48af011ffc2b666b3847249b3dc2bb4 new file mode 100644 index 0000000000000000000000000000000000000000..7f283da51181048ad42e9f49cf3cf3b5cdbdf3e1 GIT binary patch literal 932 zcmV;V16%xf0j*YTZ`(Ey-e>=c0~0jKFhxqz%u5Crb21Gx;Iu_->`So;w0O1zOQK3r z^@1$_eMizSO6p`;VM7os^4_1jhny600;k=#XWtD6SHBK!du;zO6~Okd`r}bDjz{B! zR^Rt;;_&#G9v0R-o%0!n^V|fJMl0DERN*u)P>1vx7WpJxufv-+P%p$0>vS}lranA^ z`wq|#|E{GnKu)cF^6K5Q_U35ZAIHmWAI{B35)K8&QdWsJ+@M!bB?M|pQLk0}dN~)l zf}s9-XX$@*{oyuFM*W+Q!+6v?YkR+rhr?v>TmL%lsj@+{(}Pt-Ty<*;ur`_bAdLF z9T?N8RJ*WMqEUIO1Hxnnk?9&y7}UG4<$5B}dAW7&39mmx-Tf{wF6TI3$*pW z+kvf3lXo6EonI^lz}AbdhpGE>lM%xJDkT;0N`R24p^^q@{)s{CV6Y{rsHOs=8g$M2 ziDtu6M57r5_!%Pjb2)5-DJ&2a@-%}C75)GwvlB*>l2@?eDUl23Cgar%f_Ki5A3s<~ zHP@}66W7{FmTM!`UDDKonCTK~m6sIjRLK$qPI*%pIFFW(O@-GrR)Vs@1vnG!M7A0Q zw&5KHT~8m+Wr}GgsR&fQx-ks?ftkV@g3mD={N>~5M*9c{KSA@p6iea8*IHMdYcm^XNE&6MAjzS^7^> zS=LfhoGr)Q^RYkF94cAdITIfxAUIdZ|flhpS zJ;90S%GO?cB76zVB}gY*Kzf4XM&wy&Ht=mn#_vA^%;wre@U(f01s50JidEZ=E#|*- G@m(|Efx$!o literal 0 HcmV?d00001 diff --git a/.git.broken/objects/09/10d5c707b4e6df57ee64e0c0b196d80d5897f6 b/.git.broken/objects/09/10d5c707b4e6df57ee64e0c0b196d80d5897f6 new file mode 100644 index 0000000000000000000000000000000000000000..8d83818fbf936adba9b6a24977e432015bccf281 GIT binary patch literal 55 zcmV-70LcG%0V^p=O;s>4U@$QN0)_0%65XWI;-dW0lGGxG13YEkDZEpUTkmmnF8I{f Nv{1a{C;)w_5#f$o8Vvvd literal 0 HcmV?d00001 diff --git a/.git.broken/objects/0a/44e1115de1e814bebd347945fea58432105e62 b/.git.broken/objects/0a/44e1115de1e814bebd347945fea58432105e62 new file mode 100644 index 0000000000000000000000000000000000000000..76753bea5ba7ac6028dbf5554982aa047fc6b6cd GIT binary patch literal 84 zcmV-a0IUCa0V^p=O;s?nWH2-^Ff%bxFfuSQ(={;DH8#*K$jr}6O)b(*DlOJ6$}cSe qF%xqV^O94G^m0=ew8U&m2;v%a6 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/0a/f4b7dfb342d37ef343df4187ec0122e69f2b30 b/.git.broken/objects/0a/f4b7dfb342d37ef343df4187ec0122e69f2b30 new file mode 100644 index 0000000000000000000000000000000000000000..8b7a94d4f266d658631ab209201d25ce8b1a0b22 GIT binary patch literal 203 zcmV;+05t!20V^p=O;s?ov}7^e&3j{QQcg_4L=M?8Nj`h9^d{og6>+Mhag%{d2F`tEN7tjc*|;ij#{n3rdO^ z9+(D~Ch*0x-f+(kJ!|)}PwIfz9*ByP)MB9gmV=CE=I`A5gTcW}>&3T9?oP>j8UUv| FQD2!SXu1FZ literal 0 HcmV?d00001 diff --git a/.git.broken/objects/0c/00b8af95f28a732cdf6661876cdac1b0f1f15e b/.git.broken/objects/0c/00b8af95f28a732cdf6661876cdac1b0f1f15e new file mode 100644 index 0000000000000000000000000000000000000000..fc8763b2eace8e6758bcc758c3f5c6da6680ffa8 GIT binary patch literal 150 zcmV;H0BQet0V^p=O;s>7vtTeZFfcPQQ7FjFOV`cGFD}+AsVHIiHtYMB@8KUdJbk*h zXD3&7-H9l<)yN9-v%$&~<0BuJ2A=s~+tSH(IB>}^e@pE<$jS;5i%K#RbHHjjn2lnO z9De9=uCt6y#{HUxqwfY)WVI!kxvBZ3C1ADJ%ePKot`Pf?7FA+4=a@(YZ|vJ905#M_ EkDX;mhX4Qo literal 0 HcmV?d00001 diff --git a/.git.broken/objects/0c/a43a069947b7a49bbda02126ddbcebc6912621 b/.git.broken/objects/0c/a43a069947b7a49bbda02126ddbcebc6912621 new file mode 100644 index 0000000000000000000000000000000000000000..5721023b619aa774a30f449d4052de1a4f09436f GIT binary patch literal 84 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 Sh5RVc8EkQ_@_zuELM#gBwqkhz literal 0 HcmV?d00001 diff --git a/.git.broken/objects/12/bf39149d873ae28282f752566ecea3548a0688 b/.git.broken/objects/12/bf39149d873ae28282f752566ecea3548a0688 new file mode 100644 index 0000000000000000000000000000000000000000..ccb7f87b749ff811456b9254d2bdcb66da48eaea GIT binary patch literal 386 zcmV-|0e${>0V^p=O;s?lG-fa~FfcPQQAjT+)=kT-&?~7ZVW_>?b8V_*z?IVH7OrzI zOtz+^=P^uA4fL3{-XcnBw;lgWt#A7s z_KQu0>L|#}OV`cGFD?cf{cYCwFWu}(bWB!)fcaW78Bo>uqCgyo_fGILY& zOCdhHUcPk#bA{NCw5SrZImbjIcw^r-LDd$QBo^gl=4I>VCl!|zl_r;@ra=7Wyt_e! z^O@_O>uRr#PyOsA_{G#S7eh}TP-`kg{olNEe~VnDCmA1SU+OQrCpg`r`5A`#(vrk< gsQRpbeeYW8_Qd_*pO@=YJ@xRcJsXY#0Q*kKK{*n{&Hw-a literal 0 HcmV?d00001 diff --git a/.git.broken/objects/12/df3742e511be6b336d26f91bf1d57c9800d1f7 b/.git.broken/objects/12/df3742e511be6b336d26f91bf1d57c9800d1f7 new file mode 100644 index 0000000000000000000000000000000000000000..467488d3d7f19c7d5013a64b8e07a346dc77a728 GIT binary patch literal 44 zcmV+{0Mq|?0ZYosPf{?lV9*Y94i26V=yrQ0)?c+l46Fr{KlWTY8_TJ-{4u}IQ@;KKy+XdL^>_A kqNKDawU}W+*h0H`*EG}=SyH>I`P%-}vg;QD0Ge$X)Hnzv#sB~S literal 0 HcmV?d00001 diff --git a/.git.broken/objects/18/1469046ef7bf5c42a3fc5a064270de4cf7077e b/.git.broken/objects/18/1469046ef7bf5c42a3fc5a064270de4cf7077e new file mode 100644 index 0000000000000000000000000000000000000000..a71b68adec571924f99d8b2b8116b7378401b053 GIT binary patch literal 84 zcmV-a0IUCa0V^p=O;s?nWH2-^Ff%bxFfuSQ(={;DH8#*K$jr}6O)b(*DlOJ6$}cSe qF%xqV^O94G^m0=e*71ILFBY|#FaA}C+6lXegx9Cm@B#pbxf=c!IwKeW literal 0 HcmV?d00001 diff --git a/.git.broken/objects/18/46d8eebf920176f59131888dafc64db0e7ba27 b/.git.broken/objects/18/46d8eebf920176f59131888dafc64db0e7ba27 new file mode 100644 index 0000000000000000000000000000000000000000..09c574732350e9e00533b5ebd171976c62d791a2 GIT binary patch literal 52 zcmV-40L%Y)0V^p=O;s>9V=yrQ0)?c~;-dW0lGGxGOF!r6yx0{lylCRN1z%^F8#7(` KJP810+!E6^M;4<1 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/18/921f1995899bdc75a77f48413a0208acf0f3f3 b/.git.broken/objects/18/921f1995899bdc75a77f48413a0208acf0f3f3 new file mode 100644 index 0000000000000000000000000000000000000000..e9ddf72a6f4c0169c624aa1e3f971e1729f72c00 GIT binary patch literal 398 zcmV;90df9#0iBUeZxb;PhB^CJ%n_7!WAC>s1OyHU(W;6X&XL!i&0726#rC$!zh|}y z<&F=QY(MWiuV=IyM;oCO{9W{jkd{hwQx<7sgs7!7RhG4RQ^|}MnbIjoAu3+yY*rqp z2zA-yxoA?Z^BfJjBY7o#Q#&XW(nRcB)@}$3O(eBfYBKoA=uNT2Jom1ykCfe z+1pY1Gi+dYfR^GlO7|Zad*zQ8{tjMIO|KW9JFaOV2z3xU=`gk-J$MR89e@k23zM5^jXsgPGDQ(UZ$;Wm-%W$0}yLMoOE~n s`T8d|*k^=WDdARdD2OPx<+ZJiis1%|YFktgU8D|&#YRlnAEd6y9HQXG7ytkO literal 0 HcmV?d00001 diff --git a/.git.broken/objects/22/f49677d5f03ee0324b6fbaf46980dc35958470 b/.git.broken/objects/22/f49677d5f03ee0324b6fbaf46980dc35958470 new file mode 100644 index 0000000000000000000000000000000000000000..8c556f647b9e72239d0330b95c2d0ca2df6fa924 GIT binary patch literal 226 zcmV<803H8$0V^p=O;s>5wq!6gFfcbYRY*xp&CSo#E6!jLx#!kk`}I*&xaEzvGWmUx zZ``K302P^;m?-3ACh4Z6CTFIkf)t+ez3-GA3^K^581jx8= c+a}rgTQN9BnRM1IS?jY+lSd^U0Pr$lBebY>UH||9 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/26/ac0d652bd11899d733f4b793053ac20e117084 b/.git.broken/objects/26/ac0d652bd11899d733f4b793053ac20e117084 new file mode 100644 index 0000000000000000000000000000000000000000..7d779cf219d13a9f8630397d7dcc0e4ebd0d165e GIT binary patch literal 203 zcmV;+05t!20V^p=O;s?ov}7^e&3j{QQcg_4L=M?8Nj`2ES+Rn^wNX@?ixZ-vIJqdZprn}L zfoX7Q0$)7q4fp)evvx20qz-uPfv6}+Ee6WJU<-KfY$Lwp*C)Q?&rW~sdSF@<3jowV FPvhsmYF+>U literal 0 HcmV?d00001 diff --git a/.git.broken/objects/27/a40c6c9aa42d5fbdc745e5b68a8704770edab8 b/.git.broken/objects/27/a40c6c9aa42d5fbdc745e5b68a8704770edab8 new file mode 100644 index 0000000000000000000000000000000000000000..ed2fa23bfd13752f5db2a1d9f6b7049002a44a21 GIT binary patch literal 282 zcmV+#0pijN@L?E@S@AJ2e$&ks7Bxw?yL+3}>^*uRg)Mtkdp7DlW&$RT`oo!evKfD0j z)VV0DEaUK)#Y*BddJObGb|U9#^mC+dK_d;`t)~te_SA4N_Lrt4Nh93CJQ1wk_lHB< zydB}*`2Zb`T6s+xhS-NTx?vAs9cV(G{$QXhE}$0G(@lhLVK{3$LVAJK_i1<9w;x}} g+kLBijH*I=jj>Jq!$iGFr`Z^*EIG9#f7A7Q2{25JivR!s literal 0 HcmV?d00001 diff --git a/.git.broken/objects/28/4489fc69b50a0b0dd4a7ae59b62b077c301b8b b/.git.broken/objects/28/4489fc69b50a0b0dd4a7ae59b62b077c301b8b new file mode 100644 index 0000000..574d618 --- /dev/null +++ b/.git.broken/objects/28/4489fc69b50a0b0dd4a7ae59b62b077c301b8b @@ -0,0 +1,2 @@ +x¥’_OÛ0Å÷œOq±˜(ÚÒ$‚í)h R¥2¡6Û BVÚÜ.V8³ iô»ÏvKK³Òˆòâ?×çüî=S.¦EçŸÞMnÓt@'Y’¥t0Çäø[’MhvskVÁ´UR´%ñê¶éÂ_ÌÇE^ÀI¿˜¿Ég‹ü ¦ýMA0gU`êΦۇÕ •î«òĽU- +&Áo€wÜwŽ:gÞÒÓ˜ËBü©­+ør¾ç/°ô¼¯Vˆ¿€«t4¢7i–ŽÓAZ°FÁ 9oy.?VL+!$kÚµƒN™]þ%c:¼N®ÒXV5jZ•,t®e[ƒ“£Vš²y>Ccrçα«t®[EÀÇßFòÞÕÚ}Óö¦Õb Îɽ>„B!PA-´ãÙà@OšÉÉÚÕêôUèzóvª'÷Gûðø;¼5:ÞÕª[E‹Æ/Øæ Ø( fzøÀô3ˆN›íÔåj;rëö¾,7—¨ÊŽ¢íæV5Ú´®°¶>¼WpùàV §<7S·Vö„xøÝDïg2ŠÏ>‡{Ór#2)yCð¢±x6ûY)L°È›^áߦ|éýÍë]Ò \ No newline at end of file diff --git a/.git.broken/objects/28/db42def2c512213ce5e36bd7082433d12af373 b/.git.broken/objects/28/db42def2c512213ce5e36bd7082433d12af373 new file mode 100644 index 0000000000000000000000000000000000000000..3dbfff396e37bc21344b324aeddf309a0881d75d GIT binary patch literal 45 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 P3UmfrT&w&aC_N}an%h=F literal 0 HcmV?d00001 diff --git a/.git.broken/objects/2a/b9910be29e68dee9e8296dcc7d4bcd1d202f82 b/.git.broken/objects/2a/b9910be29e68dee9e8296dcc7d4bcd1d202f82 new file mode 100644 index 0000000000000000000000000000000000000000..271cba6867a5b6dbccca1d6e71a5cd2e863fc5fd GIT binary patch literal 203 zcmV;+05t!20V^p=O;s?ov}7^e&3j{QQcg_@r`q zUpDE-?0+toY`rHyqze+0vlG)(84^Mb*wPNMWo=B63_wBI*$@a{3p0zwZpSPk;NE%P$bTNERyfo zh1xgw0PTO=TS-!m)|N0;UuZc(0<0dl6H;?z%YzKtq5J81)1;(^H7|^DBAq5%?*Pag XPqG6U@$Z=Ff%bxFfuSQ(={;DH8#+#NHsPvFwjlSE6Xg(&&y5C jE78kMVfeM^O=${4$DGu)x}0t*oA&6VK6ZO0)>K{#JpmLS*vVTDOoJf&FJ`^|0_y*KWm6(3PirR iAT_y|L9*%Y`JZZsz0ZkhA84rj#5Ct-UpN4sV;nosfg+gz literal 0 HcmV?d00001 diff --git a/.git.broken/objects/36/1caf262507f450f4124ba8ccaf275896c63a93 b/.git.broken/objects/36/1caf262507f450f4124ba8ccaf275896c63a93 new file mode 100644 index 0000000000000000000000000000000000000000..de3a33b9b112e47f0aee4fa4e53f80b413007a4f GIT binary patch literal 82 zcmV-Y0ImOc0V^p=O;s?nU@$Z=Ff%bx@J-B4P0P$lWzdPfkU!@>>yD#W9BfsUC#`vR oMeu`(0T3vFq>C9s%$@osOzdB7@gXVM=iX!G?)g?i02GQHb(f?h^#A|> literal 0 HcmV?d00001 diff --git a/.git.broken/objects/37/1c13ff593cb3f39e691760b20f4f64f026297c b/.git.broken/objects/37/1c13ff593cb3f39e691760b20f4f64f026297c new file mode 100644 index 0000000..0b5f4d2 --- /dev/null +++ b/.git.broken/objects/37/1c13ff593cb3f39e691760b20f4f64f026297c @@ -0,0 +1,3 @@ +x‘ËnÛ@ E»ÖWÜE6”ÚÖkd9mQ7)QÂÚ ó "ÁÒŒª!ñßw MÖåŽä½Ä!)Í0tY}p$㉊“8I ÑÈ‚1Ê ¡R’‘o™mrÁ‹¦Éƒ‘O¤ØÖw“DåÉF0•SœJƔܲ´ˆYá ‰hD¢XÀgך û¾'R>´\ã3¿dßNtî;}êÜJšá+¢|i¶IS„¯zFGÿçÄl'3{û·'d«(ÌV1žŽᨧÜtÆÓáXá¥s-ÄÜ44­§K9>½iV¶Ýáy´uÓ½b±¯Âß~ÈãáîK¼¼ySÕÒø½¤Ãâçñð ÖqGhºžìò&À;Ýh¬[×M?Ûvý£¶¤Õ•Cu÷ +£ÑÎʼh× ä©¾G~èëfãHácy¸ÿQÖûª¾+ïoQf;\„~sd÷` ØWþêÞÎÖ ‚;‹‘[‹cpÆñ~y AZ¶=F§Ÿ±ÐDÊBKôu¤ýB\ +EcoÎËà/s9»\ \ No newline at end of file diff --git a/.git.broken/objects/37/57fa20eff714a07283b9a8f6380ef4df9d5cd2 b/.git.broken/objects/37/57fa20eff714a07283b9a8f6380ef4df9d5cd2 new file mode 100644 index 0000000000000000000000000000000000000000..9e1d11076ba1c8d3e31a65ec55f08573eed847d2 GIT binary patch literal 177 zcmV;i08amS0V^p=O;s?oG-fa~FfcPQQAp0uEyyp4U@$Z=Ff%bxNX|%2&d$j!F449v|unaFfcbYRY*xp&CSo#E6!jLx#!kk`}I*&xaEzvGWmUx zZ``K302P^;m?-3ACh4Z6CTFIkf)t+ez3-GAQgTl`>pSj5*WQPT@9tKUzBsVhk=%E`>j1{wFiE%;TA&~9!4 pDgy;ed19V!E|35z`?hV8jlUIxW0Xl}-IBFF+cbGp;sFkTfFZzbmVN*L literal 0 HcmV?d00001 diff --git a/.git.broken/objects/38/7699b7a3ef0ac022ac8eb0e0cc182d473bbe02 b/.git.broken/objects/38/7699b7a3ef0ac022ac8eb0e0cc182d473bbe02 new file mode 100644 index 0000000000000000000000000000000000000000..ae9f9f773ead552f54a7f335881bc44f0a8b061e GIT binary patch literal 55 zcmV-70LcG%0V^p=O;s>4U@$QN0)_0%65XWI;-dW0lGGxGMa#bU`KQ@NMlD*Gav|-1 N^e&3j{QQcg_6V=yrQ0)?c+l46EnpOfp)UaIInCVj#!srTv+bG>=_5b3nc kijvZz)MADo?=N;m%m`BPt6g(Ut&@xEh02QQ04F9MR&R|ZW&i*H literal 0 HcmV?d00001 diff --git a/.git.broken/objects/3e/310cf397e122f811bb55d6aea4237024dc81da b/.git.broken/objects/3e/310cf397e122f811bb55d6aea4237024dc81da new file mode 100644 index 0000000000000000000000000000000000000000..e143d29f8f9c14a164f49f3d7237d08061432738 GIT binary patch literal 51 zcmV-30L=e*0V^p=O;s>9V=yrQ0)?c~;-dW0lGGxG(%dgkPq4sOinfKwk|EJ)^Y)`# z>;>k7VAABL@5dC!(FyGLsNk;D$7okM3jg1>=@{jvSy#9BAcJZw+Brk#*jt#Kj{+C;&Z4*& zfCi?scUg=%xmUik`0L^KElhsS=FbtveiSV* zFt{MxCnwi6z&E7fA613Uz^{{cq_H9qPolgSNQYH|1`#X}PBJHLsW1v$M-g`+k# z6_N}-_8FA=028Oe^2HGs&YI3?YB+NK1ljeWP$eMPdIm{I=M1W7h!*bNKC2hH4r;pI z^4&8_kqJGU9)<7U41J5`eb~Z+)^Zn>Ue#=iIjD}Ll;SK3@H51h050d5v$+Wotjhyv zaxI6&;yz6@ClAF7up4$xn4C_vibs85iff(80^&cYk9AcHo?7{l_UdqBi!G#a?Z2J*hRkJb|Cwt9~WLNRIdyGnEHGrNEO6 znhQIKxzAb45#Z$MJ)gzSfm@iC9$5?|tXhv{z}66R%fv@G>NmKD(P_($&zrjD25^%h z2o^+^R#lp%*MSFuUD$9WrmXtY|i4tGe>lQ hpye5!JM;tsVoqfv(sIR*==Td@qu$6zzW~DR3=&z13;_TD literal 0 HcmV?d00001 diff --git a/.git.broken/objects/45/cb92e26861bd837e714994c9fad39aa6725374 b/.git.broken/objects/45/cb92e26861bd837e714994c9fad39aa6725374 new file mode 100644 index 0000000000000000000000000000000000000000..44fb0965782f7d42a80c0a6e0fd459fcffabbef8 GIT binary patch literal 51 zcmV-30L=e*0V^p=O;s>9V=yrQ0)?c~;-dW0lGGxG?GGOY>wQl3TJ~6Ec~^eVlZ4%m J%>ZJZ61E?I7fk>F literal 0 HcmV?d00001 diff --git a/.git.broken/objects/48/73ce46be69e8fdc0ccd0df3575d2706088e80d b/.git.broken/objects/48/73ce46be69e8fdc0ccd0df3575d2706088e80d new file mode 100644 index 0000000000000000000000000000000000000000..c4a5e82ae76240b0a0083ae94b8691c359dbdce8 GIT binary patch literal 3936 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 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/4a/2de4f2ca58e519296143bd6a98dfd5522de64f b/.git.broken/objects/4a/2de4f2ca58e519296143bd6a98dfd5522de64f new file mode 100644 index 0000000000000000000000000000000000000000..d83e21ff0642fb9390e3b43f8321129c7774dfdf GIT binary patch literal 323 zcmV-J0lfZr0V^p=O;s>9wO}wbFfcbYRY*xp&CSo#E6!jLx#!kk`}I*&xaEzvGWmUx zZ``K302P^;m?-3ACh4Z6CTFIkf)t+ez3-GA6VK6ZO0)>K{#JpmL?)QpJyC<|b*c&pu$Yz}K@uTn|7l?du iL27a_gJjd)^FP%Nd!G~2KG0D4iD}NwzHk7OCmbmL?ITS9 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/4b/246597b28449ac13b3c7de46beff894144ee53 b/.git.broken/objects/4b/246597b28449ac13b3c7de46beff894144ee53 new file mode 100644 index 0000000000000000000000000000000000000000..c01617e04c81b801636bfb033286f56b841dab80 GIT binary patch literal 79 zcmV-V0I>gf0V^p=O;s>6V=yrQ0)?c+l46Dh56o?qMIW5p{)Tn;$ye7OS!#ymK%~<$ lD@sa>Qi~aQ76U@$QN0)^C)WQJMIbDJHQ;vSz3Fx32G!F6(PM{6TQwzRm2 eA%bJYn-A5C{^qyU6U@$QN0)^C)WQJMIbDJHQ;vSz3Fx32G!F6(PM{6TQwzRm2 e;drRohnF0aM7Qttad=y=q;t0HhC2W`P#SbUnjnz? literal 0 HcmV?d00001 diff --git a/.git.broken/objects/54/51f75a6d6211923f51c3d5ff0cdf7cd9a7005f b/.git.broken/objects/54/51f75a6d6211923f51c3d5ff0cdf7cd9a7005f new file mode 100644 index 0000000000000000000000000000000000000000..cc6dcb19519da3414734d80a1218538f9a5cd995 GIT binary patch literal 82 zcmV-Y0ImOc0V^p=O;s?nU@$Z=Ff%bx@J-B4P0P$lWzdPfkU!@>>yD#W9BfsUC#`vR oMeu`(0T3vFq>CAXR0^tZ&UiGj literal 0 HcmV?d00001 diff --git a/.git.broken/objects/54/835a5e1b806eaad43ee067d49a1c07bab02a38 b/.git.broken/objects/54/835a5e1b806eaad43ee067d49a1c07bab02a38 new file mode 100644 index 0000000000000000000000000000000000000000..57e179b295266335c837e341434de880e70344d6 GIT binary patch literal 55 zcmV-70LcG%0V^p=O;s>4U@$QN0)_0%65XWI;-dW0lGGxGkihRzxk-YP>;n&9{m*m1 N=H_yScmRhG5`L-28btsA literal 0 HcmV?d00001 diff --git a/.git.broken/objects/54/b3eda36a152dd1d013316deb83092d5e4b1313 b/.git.broken/objects/54/b3eda36a152dd1d013316deb83092d5e4b1313 new file mode 100644 index 0000000000000000000000000000000000000000..4347d19610156aa1c7943cc59fc13d2b03ae8eab GIT binary patch literal 203 zcmV;+05t!20V^p=O;s?ov}7^e&3j{QQcg_4L=M?8Nj`hF$z$?)<(Z^WALGyGvqj{_g_Vc8Nh$6ekyD7L*h- zJTMI|P2h`Xz2Tl8de-h`pVR@bJrETosl`C~Ee9FT%-^~92ZMu|){AeI+?|s5Gytx1 FQ8CipX6yg} literal 0 HcmV?d00001 diff --git a/.git.broken/objects/54/f0bbe5235362ca33c07f1df8c5f3db4ab1bff6 b/.git.broken/objects/54/f0bbe5235362ca33c07f1df8c5f3db4ab1bff6 new file mode 100644 index 0000000000000000000000000000000000000000..2f20b407bc628b9f9de48462f711db7b0e2a5b53 GIT binary patch literal 3714 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 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/55/b7816fffab77cebfc3a02be077a729ccfb4f03 b/.git.broken/objects/55/b7816fffab77cebfc3a02be077a729ccfb4f03 new file mode 100644 index 0000000000000000000000000000000000000000..3bce528ce38c765494fc35351e4ae6344bf377d6 GIT binary patch literal 72 zcmV-O0Jr~m0V^p=O;s>6U@$QN0)^C)WQJMIbDJHQ;vSz3Fx32G!F6(PM{6TQwzRm2 e!Fk7HDE9?00M=K#JrUJv^0h&kvjqEPEm#{t{5;MsCo8mcH}V= zLjwad6BC8p^xP8NlG41q)EwR7;tajq6oymhkC#<`DGm;ZUeVr*x3*Oq=`QH@b6B) literal 0 HcmV?d00001 diff --git a/.git.broken/objects/57/bed49f32b4b9a2ca642b4165810384f8af7c3a b/.git.broken/objects/57/bed49f32b4b9a2ca642b4165810384f8af7c3a new file mode 100644 index 0000000000000000000000000000000000000000..52b751989cda64af9d489736c8dbb007ae7f5f90 GIT binary patch literal 84 zcmV-a0IUCa0V^p=O;s?nWH2-^Ff%bxFfuSQ(={;DH8#*K$jr}6O)b(*DlOJ6$}cSe qF%xqV^O94G^m0=eN|(NK;dlKjn96^4o$}g$^~IZKivs|L8XE>Aj3QD1 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/58/08a8ecf07ba2fd6f867e6e95aa938e7bce3621 b/.git.broken/objects/58/08a8ecf07ba2fd6f867e6e95aa938e7bce3621 new file mode 100644 index 0000000000000000000000000000000000000000..c620553a3856298ede12e5ab387e733c9bcbe54d GIT binary patch literal 46 zcmV+}0MY+=0V^p=O;s>9U@$QN0)?E+BnAbc>!u%GhOgVF!j_&*Z@00EB> Efrk4MuK)l5 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/59/2b0e91e8424a2baf425c8bad52dad7aec6348b b/.git.broken/objects/59/2b0e91e8424a2baf425c8bad52dad7aec6348b new file mode 100644 index 0000000000000000000000000000000000000000..108d91defa6367d5c984c0966ef1ec6eddf8d6fd GIT binary patch literal 51 zcmba(V{<>CS6f#Q}3VGqI;%Jtx78)zp%I<;p-l@{~`>j HmV$o)2m%#T literal 0 HcmV?d00001 diff --git a/.git.broken/objects/59/6184f3f8aa307edaabb68f5176e64b53040184 b/.git.broken/objects/59/6184f3f8aa307edaabb68f5176e64b53040184 new file mode 100644 index 0000000000000000000000000000000000000000..b3a2587b0c2c9cff37e3cc003a2987e9ab6d93a9 GIT binary patch literal 55 zcmV-70LcG%0V^p=O;s>4U@$QN0)_0%65XWI;-dW0lGGxGgjf4r*@bNStNG{u$<-`g N{$lR;G5~?c5~9k69Q*(P literal 0 HcmV?d00001 diff --git a/.git.broken/objects/59/7c0d246335e3c8eb42a8132beb287a3cec1894 b/.git.broken/objects/59/7c0d246335e3c8eb42a8132beb287a3cec1894 new file mode 100644 index 0000000000000000000000000000000000000000..84c6e70810032fe0fd02d49d743ce9e320617778 GIT binary patch literal 2565 zcmV+g3i|bU0j*g3bKAHP?yu5cvBxN9`7DZ(GnZ!Mljq{tY0}BV7dxGH;v9z}A(>~2 z;1Q%9kK_Nn-vZ!652tCTo|(Kx54$@{?##i^$*yN{?4iCBsv zza6Sea_MiUXOxQ|q9Bc$Z>Uwu5PnDciMX_U!0En0jpiz1tN-gq>8_G~yB zjwjDX&qiL5#a_+ZNZfFJ{qFqa!#|$C0c#~fnMR6cqPP(v#XG;Q=AmYFvzRW8dyt+UzQhHMDV|d* z`I9zWtrb6%Ng~36`G_S}{{8IzyV`LINven-n^A!(f zh$jHaN>H$?Q?gC0*OXHuN{5BnRq0iGGSAw3O@BM~gfAjvu zbRPy#nM^V39&UFSfCRmi`7%JHS9BBlr7Xh3!7uPI{*@_yFC&@Z5hOeXzd9TYhfIv& zg!ZTV#{+sYeR53wF~R?X84Oy`)H>mA*Jnr0Sit@+-E}*`%@yr*J00)$i+Wp+KXf{( zob}t&^y&A(=e>b9AjjF|1u6Kd4F2BljRq88eqcUuL`*68H2!>`BZJ5L7(+%q|MTa) z5i>w=^m*=ZO8bz8vK;U-C+D#u{uf=O&VaxSKQbLKIe5r2jizH8U?aK*BmRH#?id`H z;}3etZWV#}xYNC7yL@1%X3T~^$3@JJ%m`!f_Bsw$OvXArL1e1!_99TLG7N=6c-dIT zR4QFQ5HxSNiaeLN04#bKl_Oe$ggpYV-tCy@wAU}QZA zAje8Rp^5%LL9LGi@#v2AQA$=mtkx&~=cMz)cuKv+K_Sz*G_dG5L}NzRnWi{#i>bNWg&Z3FE!dLNx<;I8lBnN0v$cfHWG&>XYfa((HNx6%3msq5-Jn= zgLRfeNlHSpXtXRO@iy@53!(M9wdh>u%M`g2t|_k+CNAS+2i#9j;f#VR{gXtYZkHJ z>Jd9{x1)!eNu`w4TyDclTc&|Rx1D!0hE@)4#Q5)J-PFwHM(Zj<+*l3qh!w<7=!YLr z4?nDS^a3cS+u_lF)Cd-}9p&4q;KeIC(3^daG!Gt{S+1W}CHjbX;Dq=^$m@p=_wBaA zb6IBE zdEvqRz=6GZiB4nm#lmme%Pa{{G7WEW&zScJg)3m&yp-)18(zp$p_gsA7y^?;V))4!6j}MMc5m z3jON|YhQe|lopvME~jsXNKeUheG0azrz~*;hV=#&TGdM-g`SI&jj3{T${1^7B^zyH zl5JN{T8S7awDoF%EOgWhArDWjio-Lj((uftFq&Cg7Q1a_-1aU857uT@w>6kki^{JW zd-ROSOm*ucFc~D5;Dq9wlTTF9LsS%|t{!nY@ap{hl=i=T8KBI@YmnYng)$P$CNDvm z?sGxiPE43F>g6%=Vsl@I=mFub!!N^5nJ46`Il2GToeXkck%N8`0n?*YE&~dUM{wko zdfQpMNWuVxtLPS#ZXsFL`uvLy=Y8e^0> z3LK=FbC#{Gk`|%&(~#AFfXx96I@y5MEkCYT;uHx{hwHK}E&;A{r>@UBIl6$ThA{_< zt##E#xz@OuKIw#eY6bOB`e1;BRCC*9ej-sU$X2$_1{>}fl_`3i;bnlTX@C+-W*Les zEm~d6b#w(7$y68vzpyPNllUl<@Va3oQR|r|-M~0BJUnMXZO4j>x%a90WKE2d1lK}U zE7;Fn$TNhouU#cxGl*WA+v;$fC^<=Kmmz*NPg?|ZB#(1d=rwJ zKyuxJ0O;4e4BWa4!86VK6ZO0)>K{#Jpk#E|-Ubu@7H}?AvQn>H2SJi;+NF5=6eZ iAT_y|L9*%Y`JZZsz0ZkhA84rj#5Ct-UpN4nh8#J>tRj{G literal 0 HcmV?d00001 diff --git a/.git.broken/objects/5f/7d5c42eedd47e6f6b21396ce2f5325339ef2a4 b/.git.broken/objects/5f/7d5c42eedd47e6f6b21396ce2f5325339ef2a4 new file mode 100644 index 0000000000000000000000000000000000000000..0e90deae1640a9492e83942faac1481f331a7a5b GIT binary patch literal 51 zcmV-30L=e*0V^p=O;s>9V=yrQ0)?c~;-dW0lGGxGkG_rDF10l>hSu|}`evVfH}=4y JOaN9o5w|$V7wP~2 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/65/17851f53d51d63e1630a8c6f33cd9146ea06f9 b/.git.broken/objects/65/17851f53d51d63e1630a8c6f33cd9146ea06f9 new file mode 100644 index 0000000000000000000000000000000000000000..e30f9036d7464240aac10ae589fa823726589e36 GIT binary patch literal 190 zcmV;v073tF0V^p=O;s?ov}7;M1& literal 0 HcmV?d00001 diff --git a/.git.broken/objects/65/eeeccc0bec89628f60b447c1adf1b2ef60cc9d b/.git.broken/objects/65/eeeccc0bec89628f60b447c1adf1b2ef60cc9d new file mode 100644 index 0000000000000000000000000000000000000000..6aebab235c10fa27537444b7f964568ef82f7191 GIT binary patch literal 3841 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 D6NFd~ literal 0 HcmV?d00001 diff --git a/.git.broken/objects/67/feeb644c93b050697d799c53501f809e734331 b/.git.broken/objects/67/feeb644c93b050697d799c53501f809e734331 new file mode 100644 index 0000000000000000000000000000000000000000..563b02a1ad9aac236bc298ccb3a35cde6260ad90 GIT binary patch literal 76 zcmV-S0JHyi0V^p=O;s>6VK6ZO0)>K{#JpmL@O@Y28*SOS=v0cfV`?LF%a8RnRuK8( ig4E<<2Fa$o=YOgl_C6=3eW0Q86VsfVec=GjN*z`oEF}W~ literal 0 HcmV?d00001 diff --git a/.git.broken/objects/69/9bf817fc38eaaa2843acd9fee4c43f9f922b59 b/.git.broken/objects/69/9bf817fc38eaaa2843acd9fee4c43f9f922b59 new file mode 100644 index 0000000..ba8efb0 --- /dev/null +++ b/.git.broken/objects/69/9bf817fc38eaaa2843acd9fee4c43f9f922b59 @@ -0,0 +1,2 @@ +xŽ1nÃ0 E;ëÜ"-™TQé”)[/@K4bØ–Wzû:WÈßÞðó¶®S +øÖv3é)Œè‰¤0& ÔG/(,™Ùó f£{ènµÁ$ŸGdê8ø.Ç1JR)øØù®p­$§¿í¾íðµ,Vá–¯w­ð¡OºÌö·LužÚ9oë' ¥Ð§@pòÇÜaÍ^«ÝcÑú«î3|ëÏ |F([5÷¬éI¬ \ No newline at end of file diff --git a/.git.broken/objects/6a/02bfb3d16c190e8091f9eb3f3230f641a6a30a b/.git.broken/objects/6a/02bfb3d16c190e8091f9eb3f3230f641a6a30a new file mode 100644 index 0000000..3c919f2 --- /dev/null +++ b/.git.broken/objects/6a/02bfb3d16c190e8091f9eb3f3230f641a6a30a @@ -0,0 +1,2 @@ +xŽ;nÃ0D]óÛ0(rù3ŒÀ©R¥óVË%,H¢…)|{3WÈtóðÞÖuj`p8µC’uEbò)S±â9C]ô±ƒµAµÓ!µA.˜\²Áø<æ"zt–K×3 +f¶FLzPôÛžÛŸË"¾ùëInô×î³¼–©ÎS»ð¶~À¢I¼pÖ=ªÓþ±ÉÿÖj_¨^a¥c†ýÌ/ä­ŠzÑ#LŠ \ No newline at end of file diff --git a/.git.broken/objects/6a/fe8eee847ebc5ef80f9e6d427b95c39abcb0c7 b/.git.broken/objects/6a/fe8eee847ebc5ef80f9e6d427b95c39abcb0c7 new file mode 100644 index 0000000..b117811 --- /dev/null +++ b/.git.broken/objects/6a/fe8eee847ebc5ef80f9e6d427b95c39abcb0c7 @@ -0,0 +1,3 @@ +x};‚0…ù¤³1ª$nº¸øJ`7 +4bÛ´÷ÆÃ·a±CÓœóûhÞª<¤kºøaHJa›#‡ %»Ð‹NV¹ƒ%½59Ϋ ëëá¥ËE«hÙGP 1\Bûžk-ï‘n I©^²ò‘5FaÝh„ƒöÆZõ_+}²>1à²xŸça…Àj>îäch½@.×{ºÏR2ŽlÈÄ“»ÇS_|!'›˜ÒdMg +”h˜ÿÒhØÊÝ]Ð_ùc \ No newline at end of file diff --git a/.git.broken/objects/6e/aa7cd492b486d6555344cc6f3ae37ec0a4de2e b/.git.broken/objects/6e/aa7cd492b486d6555344cc6f3ae37ec0a4de2e new file mode 100644 index 0000000000000000000000000000000000000000..74e8d695472a096b5fcee0adc868d3c769699b2f GIT binary patch literal 45 zcmb4SnoXJJq)a7{OSOk C0}@^U literal 0 HcmV?d00001 diff --git a/.git.broken/objects/7d/2bbc6211ccc4b23b1ce8e84eb4481a8ebe181b b/.git.broken/objects/7d/2bbc6211ccc4b23b1ce8e84eb4481a8ebe181b new file mode 100644 index 0000000000000000000000000000000000000000..bc0d6ee8784a37141125747bb7497f0383ed8999 GIT binary patch literal 202 zcmV;*05$)30V^p=O;s?ov}7^e&3j{QQcg_tVc)eu%L1aJIJqdZprn}L zfoX7Q0$)7q4fp)evvx20qz-uPfv6}+Ee6W}N}VCr#FHZOxwD|mz%%L|!?hk&03gLq Ea_PosW&i*H literal 0 HcmV?d00001 diff --git a/.git.broken/objects/7d/8540c089dc603cdda9cf3d9edf5196db24273e b/.git.broken/objects/7d/8540c089dc603cdda9cf3d9edf5196db24273e new file mode 100644 index 0000000000000000000000000000000000000000..533b6dc2b02cd2002d512b7dfd474a430a3af2f5 GIT binary patch literal 52 zcmV-40L%Y)0V^p=O;s>9V=yrQ0)?c~;-dW0lGGxG855b?ZtU!5es|7aNACN@o2y@k K?*{-^QxdR9(HJuT literal 0 HcmV?d00001 diff --git a/.git.broken/objects/7d/d98cd6951950d475e738459dd292acdf86a0aa b/.git.broken/objects/7d/d98cd6951950d475e738459dd292acdf86a0aa new file mode 100644 index 0000000000000000000000000000000000000000..b1ae8ab1cfa49a5a0be79e7300f7b48fa09acb32 GIT binary patch literal 88 zcmV-e0H^lgsVKm-IE8W9wO}wbFfcbYRY*xp&CSo#E6!keed6%!qM&&nd1WLN=Ld#X z`Ksq%``p3$5-mxB6hpNj>Eh)-OF4oOUEdiNm^I@m_xA&!gSa~~7>Pj}c zv0k3}6Q(jhB{f&KI5QWdZbO~IrrfBV!rqp=pIcu!Fo`P9RE4T5E=WyHDM>8`n|JbR z?env;#Sf;3MSQ&yHND`n`u$Xxx{}1AoXoszka7Rpf?wqb?dE256_IAYulUyGNXks8 zvXa!CRFESpLFyuFcvX^3AD?*bv_e?>wMLcA8;L1Eb)euYPt4QJ1ri`--?mM%@wZ}d Vj56u0Te8+?n7HDE9?00M=K#JrUJv^0h&kvjqEPEm#{t{5;MsCo8mcH}V= zLjwad6BC8p^xP8NlG41q)EwR7;tajq6oymhkC#<`DGm;ZUeVØFŽ]×R'{Ó´µPÝa¬{­MOµäP­*RH{a„´¶¤ÑÒÊúAìûZ7µmmßÚºé›ao*•Ó´DÜyOÍŸIܨwu{¤“wáèÒ¥YæßûC3´~Õ%ªR-Œ‰¾ç®tæ¸äb¿B"O3¥xºä Æ“ +yeìÀÊ8©D;ëG‚ÎÖRd”[£ãã¬ÏeÃHÞ•*ŒÛÓ%-§¬ aÊ1Toq§n \ No newline at end of file diff --git a/.git.broken/objects/86/b441b20c44ede8901546c2150cb99c8d9ec897 b/.git.broken/objects/86/b441b20c44ede8901546c2150cb99c8d9ec897 new file mode 100644 index 0000000000000000000000000000000000000000..54b50c1eee1c1f127f7c3f697e4047aecdbc2950 GIT binary patch literal 439 zcmV;o0Z9IM0iBW0ZqzUkhdJjd=Gdw<8zJJ=VRCPNHrLOuYC2U#%qvkLrFw2cK|zeL2vZHSS=z zRQ~uGMAz4YZ1%E-n<}3oSF()iwt6@OVReFsH#%j4Ruuk zI=$r^e&3j{QQcg_Mqze+0vlG)(84^Mb*wPNMph%h-2eap literal 0 HcmV?d00001 diff --git a/.git.broken/objects/88/7fef30440bb0feb896f7697fcf6495dd6b89fd b/.git.broken/objects/88/7fef30440bb0feb896f7697fcf6495dd6b89fd new file mode 100644 index 0000000000000000000000000000000000000000..4833e86a2f9795ab3d11b1817f8eb1b94d082b09 GIT binary patch literal 302 zcmV+}0nz?=0V^p=O;s>9HDWL{FfcPQQAp0uEyypQbr2VW?Gwa>b-Y;+Jj_5*F<)xND)EG+5z5n_)8{=cP_)qa)?>w*Q=q`k+DNfEW zg4%bd&-K;5+>L+RU$1*C?*E=$ z3sY5)nwkQ!QNyM4Pv%xGZr&@)*F|pAX0I`j?uMx6Cw!4i;`!&U@W_rnpV8Xw90vwSGvw=ExWQpCUY{1 z30*R>O6Xd2tS(i_O4a3B*1G1p%#dovnZjCdS`#tH-cPWx79AYr*IqdIC@#~N0bi|g zgNaM&&z~XV_pB~*#&Wo$>5-(SjuHRQO}aTueopo^oJ1HPUor?IqFO`@5zsvwhj8=V z4_3e($a%7$Q?pLU;g*mq+FsDsXd!V8Z{+r{hjBuU(}e27zc%QMQvntW51@6bPrFyeRW{oqrhtTkB_~ZMtx3r$(Pr!V+NH91iWVIW>>X?o&p> zV8#Fvt(_Bk4Z?J%02FAV|LUz~glCaf0Po=GN7L-u{kIhJb8~>3oKgrxp%$}^xA0<8 z#}E?@<`4XI+MJqpw|`8r59nmS28=xg#;X-)aO}qLo=j(lu|4-D>2&p`CcY?FMG2iq Oy+#qjlKcjS2E{tZlhBj^ literal 0 HcmV?d00001 diff --git a/.git.broken/objects/8d/beace1d4d631af6d9f5e32a594a8c318664e98 b/.git.broken/objects/8d/beace1d4d631af6d9f5e32a594a8c318664e98 new file mode 100644 index 0000000000000000000000000000000000000000..4c3b27fc563c7fe87119dde02bf80a7486b98f10 GIT binary patch literal 76 zcmV-S0JHyi0V^p=O;s>6VK6ZO0)>K{#JpmLy$uba#ec8N4l9(LY+luV!Talv1rYh- ig4E<<2Fa$o=YOgl_C6=3eW0Q86VsfVec=G{=pJqS?Il@h)*SQJHBGJ+rpVDwTQiuNw>XH_w#NJUGz$=i2r z^a;Y-4tBmBj!pCIGpK6+Ew6~6Y9rBU*=V6E=Y%VTl%jEHT3L3LQ&<}zg)A1mV$9IB zqE)UQ_tsdeRb4vMn9g;zv9%j3VcVwBs%s0qu{xN`3{aoH66q+=ba_O&i+}kTKwldHsB#30}qSwc7P^*DDzP2U1bo zvv`2vjZz#auQ#`VWc7jsM%xnwP1Buw-%>{K5geYq#lbt!(ZLy4@+n>z6*GPxe;oVa z*YPLVw8cw!cI0^(eL#qMMp#xnbA<%N(>^e&3j{QQcg_P>l9ySzX!8Zw}fyF>cW+ppnYxv08OV6R1vA0M3)qEk+OF$%wsADe zWrS?15Zr{H5G?0l-4&E%96HY0+Nq-#?sL(5b+qo_x#(UUtq>|SB|b$(iLkOSD!XK6 zV^{iwaxLX;s4q)h1A0$slY8$pj;l^Of*^`;A%Q7Cn-Oinn2QjmNqK>Q=YUhf!8$*) zAjl+sF+CSYy7*8Q=Wq3_W7nPI_) zhAdPAXib;Og59?465rqEilWSnW|C@nv-&N*CTCT?*;PNi8vaG!`+Wbp+R%2?QH~Nv WlT2!UUak_SQ6=ieu8m)J`Y^;K`8gc` literal 0 HcmV?d00001 diff --git a/.git.broken/objects/94.old/c11fb8f23d554e536c2401a58d06bbc6e01939 b/.git.broken/objects/94.old/c11fb8f23d554e536c2401a58d06bbc6e01939 new file mode 100644 index 0000000000000000000000000000000000000000..656222bd18e4bba29744131680d5bd7de5e92720 GIT binary patch literal 203 zcmV;+05t!20V^p=O;s?ov}7^e&3j{QQcg_ïÃÏÛºN0غ‹€%õCÌ:8ÙEQç]VßöQضˆÒ%ÅÁYs§]J…¾sž¬Ud ˜;M]ÆÞIdå³$Ñ3lèYÇm‡ë²Hþ©ÀýÑe–×2•yª oëÚØcòÁa€“=bŽõøXå¶¹/T>a¥}†_zÌM TòÑ·­ˆy_TN† \ No newline at end of file diff --git a/.git.broken/objects/98/48e364f34d5896bafb7e2ff97a83ac263ef7dc b/.git.broken/objects/98/48e364f34d5896bafb7e2ff97a83ac263ef7dc new file mode 100644 index 0000000000000000000000000000000000000000..79cb056f246cbd62a57a1bebfac025b843c795f4 GIT binary patch literal 161 zcmV;S0ABxi0V^p=O;s>7HDE9?00M=K#JrUJv^0h&kvjqEPEm#{t{5;MsCo8mcH}V= zLjwad6BC8p^xP8NlG41q)EwR7;tajq6oymhkC#<`DGm;ZUeV5cE*F literal 0 HcmV?d00001 diff --git a/.git.broken/objects/98/910386d8b98f03eece4f2c1ef7d1d9abeb57bf b/.git.broken/objects/98/910386d8b98f03eece4f2c1ef7d1d9abeb57bf new file mode 100644 index 0000000000000000000000000000000000000000..e25ab333e363ceafb4e5210f7c151a9537a489bf GIT binary patch literal 258 zcmV+d0sa1X0V^p=O;s>5w_q?dFfcbYRY*xp&CSo#E6!jLx#!kk`}I*&xaEzvGWmUx zZ``K302P^;m?-3ACh4Z6CTFIkf)t+ez3-GAi_@% literal 0 HcmV?d00001 diff --git a/.git.broken/objects/9b/075f061c958b82596566de287ee8858cfa6bd8 b/.git.broken/objects/9b/075f061c958b82596566de287ee8858cfa6bd8 new file mode 100644 index 0000000000000000000000000000000000000000..712bd210c239333825d91a91379f06f61f559745 GIT binary patch literal 78 zcmV-U0I~mg0V^p=O;s>6V=yrQ0)?c+l46GSIlUXUSFW3V_Jv=}XZzjd(`}26K%~<$ kD@sa>Qi~ac_FIa~ZMS;V)bu?lEbrXnkS?|k05xeIb6_ka!vFvP literal 0 HcmV?d00001 diff --git a/.git.broken/objects/9c/13ffc09bdb43e3e9a3c6fc878f6a4a434cf2b7 b/.git.broken/objects/9c/13ffc09bdb43e3e9a3c6fc878f6a4a434cf2b7 new file mode 100644 index 0000000000000000000000000000000000000000..21d7b7cf3577668b8c16a10e886a012651605860 GIT binary patch literal 302 zcmV+}0nz?=0V^p=O;s>9HDWL{FfcPQQAp0uEyypQbr2VW?Gwa>b-Y;+Jj_5*F<)xND)EG+5z5n_)8{=cP_)qa)?>w*Q=q`k+DNfEW zg4%bd&-K;5+>L+RU$1*C?*E=$ z3sY5)nwkQ!QNyM4Pv%xGZr&@)*F|pAX0I`j?uMxuE+O`y AdH?_b literal 0 HcmV?d00001 diff --git a/.git.broken/objects/9c/63562825a417f0f5040d6dc67b84cf3be770ac b/.git.broken/objects/9c/63562825a417f0f5040d6dc67b84cf3be770ac new file mode 100644 index 0000000000000000000000000000000000000000..3068e784a64b9b8909af5cc848184e5718e9e1c5 GIT binary patch literal 161 zcmV;S0ABxi0V^p=O;s>7HDE9?00M=K#JrUJv^0h&kvjqEPEm#{t{5;MsCo8mcH}V= zLjwad6BC8p^xP8NlG41q)EwR7;tajq6oymhkC#<`DGm;ZUeV9V=yrQ0)?c~;-dW0lGGvw^9@-UTs10@byBUH6sDgQ=evL8 JJ^(i(5AXB<6qf)1 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/a1/bfc00593834f869f1117cf37b985fd1dbea77b b/.git.broken/objects/a1/bfc00593834f869f1117cf37b985fd1dbea77b new file mode 100644 index 0000000000000000000000000000000000000000..52c341adb4946b377df8c1710d0bf6c05438a6fd GIT binary patch literal 56 zcmV-80LTA$0V^p=O;s>4U@$QN0)_0%65XWI;-dW0lGGxGPm#_(JX>vQ)jqzMyK42j O4VzaS*#-cR2NYqXgcyDR literal 0 HcmV?d00001 diff --git a/.git.broken/objects/a2/74571742218cf06741fd37136f9309cb56e2c3 b/.git.broken/objects/a2/74571742218cf06741fd37136f9309cb56e2c3 new file mode 100644 index 0000000000000000000000000000000000000000..c0ac013e1664bdf21e990b8e07e4c6221493bf60 GIT binary patch literal 203 zcmV;+05t!20V^p=O;s?ov}7^e&3j{QQcg_IZGw=aIrbwFuN--ZWgBy`=a_c1|K6ekyD7L*h- zJTMI|P2h`Xz2Tl8de-h`pVR@bJrETosl`BfZ>yD#W9BfsUC#`vR oMeu`(0T3vFq>C9gI;U$_EZ8^wxvhm{?m`jC>ZMva01$p0iFnW>6aWAK literal 0 HcmV?d00001 diff --git a/.git.broken/objects/a5/813167b33e5489ef1958edbe88649d39fe00e7 b/.git.broken/objects/a5/813167b33e5489ef1958edbe88649d39fe00e7 new file mode 100644 index 0000000000000000000000000000000000000000..67d3d518d7105f1a24d3291c97cd3faf5522d4bc GIT binary patch literal 72 zcmV-O0Jr~m0V^p=O;s>6U@$QN0)^C)WQJMIbDJHQ;vSz3Fx32G!F6(PM{6TQwzRm2 eVYfBMYffj4MAOF^L1j#<=9-Fs@dp4NuNYhw?;f52 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/a8/9ca3dca965bf15f0db04e9149881efc0410fa3 b/.git.broken/objects/a8/9ca3dca965bf15f0db04e9149881efc0410fa3 new file mode 100644 index 0000000..e5277a0 --- /dev/null +++ b/.git.broken/objects/a8/9ca3dca965bf15f0db04e9149881efc0410fa3 @@ -0,0 +1,4 @@ +xŽAjÃ0E»Ö)fÒXòH!” +]e× ŒFcblËÁQ¹}Ý+äo>ïÃ/벌 0ض©BJ¢¡d‹ÒGÒeè˜óà|Áœ V +±ÅÜyÓÚ€„<†0ÆÜÇΫƂ=e$0u„ÒÙèÊ`øÙnë—yÖ +Wù¹q…3ÿÓפ¯y¬ÓØŽ².Ÿà(bò¾' »Çìëþ±é{¶¹Ï\O°ð6Á/?¦ø£®eo„ﵪùVNa \ No newline at end of file diff --git a/.git.broken/objects/a9/60909e404cac67b49e956b5a97ab43444be753 b/.git.broken/objects/a9/60909e404cac67b49e956b5a97ab43444be753 new file mode 100644 index 0000000000000000000000000000000000000000..5b9e3b1af00125c3e648e5c802f0c4eb479de619 GIT binary patch literal 202 zcmV;*05$)30V^p=O;s?ov}7^e&3j{QQcg_@mvNzKEivYpxkO@|+zzO*(mT6Q|QolH*V$Wb;fB zEJ4QcIQs8>764!L;xwJ9ClSFVcCpxfcCm|jD(Ce0FMpo?>A_FlJjpzD)qg;xNX1f= z#qCI4kxPF)e@}%7V+yml{YH6sn@UjURg%V{81)~3^_k2T$tCTB=fKB1(d)OTXRm{k z5AQK<{w~vCDPyrD_k_X%^JB3HtF-iK;!Z}>gAV8MMeywPX~TJZL6KZ8SrzCT7PlSV zS}NE(sx-Ty^SAFWtX3Ciug+edUA+5O@Z!TsEu6oT$l_ckS=o_$RhGH$d6V(z$&=A| zH1VH|pNzdQPrOF9(YTfR^3BEByMG+Nf@mconZ=6cqP!6z!#ls-Twz!#5!0fOONv9W zlv!uZU&oswPd+?~<-tHZe_?nb7p=3ds zc4_vNnx7W z?PJ##hw2a@Evq6^MxU!{4)FqXDi3S3@=jsZst|{ii7znp zJeAS4q6mwNqThe@@`Qaca|U;I=(`?l?WM`QHTufw`-CY?6!=?2n@wSJmCFoN_h>gp zkQeB=ES4dHyXN!hX;nr?!>0fh|H=%%SFz0T2va5jN=L)dh?z0;X*!#p4(XTKFQ>FW zAwWKy!-pl!Ebb2a0b@631@{l=uHOr9u4%8|>v_L_YL@l*L$9Z*`F@v7AAcWyel+xk zlh21b7bDE}W;nP2f%o!bw$KwfD zSyZr86sJ_B^am?kKtrXdP(|)QO(M&86K3sN_wpGQ70E)ZuS5tI!5$pDlkr#!HnY~` z?wVDGMVe&ST{E=H2lHH!oU5{^q7nxOFd1G7t3|R5R4UhPH*py6&eZ8|ooHRaXYz&s z(5>u5k-UCHAGZaFx-@|uALCmMyqlXIEZ6<>pA)|PrjM^iEArDzDWUb-<8(ram z%EG09hleHdrr}wm{j@2=;5YXQcn{D(u|NPIz#}#TKVb!a zzzF=XHqaAbf_{%j|8?J()b;+_hP9|4S?hZ{+*n|1Ybw?I!2{dDFM?J-bij7a|J{i@ zH9*$wq=@g?SJ{-%@71Gwuu`XvjxY`p8_1ZM~+vdkU-VLWt9jGD2H zzIrA?!tw7ohvBmtIw%*+0EaOTRznBIFQ0B6XYh7`+!Vp?Rsg zF9t2mM9%F&9@&*SaDsTgTwnG7z0L|7s?BXQtQ}^}u(_3HCv9Rkd^WqYjaHwsJ^F<6 z9ff$~i77!c3(rZ8gVRZ2Q~`X=x!!LA11A2F?@wa(1YSlw7qS_n*2MC-((8 zxDr7CmhQ!EE_@1e^c6VtQ5krDC`7Zymg}NC2wi)l@tZT?bxha|X=rpnRg~&j+??rZF8JQu{jLSE0hFZZPg` zyID??&rmO!t00uDlB+GgFDOuw+FqJ{5`K{=ZLY%QQlKlkq)<2L+D)B0OZWW7@~HFU zwVkz1E2@4zJZ#C0I^8&Bfr6c{MOe44Nji+)&m%VfAr?nsz!K=r1`8{X>+d8((b3~R zV+SPk+@{~?6}ZSU{NUKxCv3GJEzI;zeZCedX|O+si@3(qD;xl3J&`I_WT#kXOAKFo zR2i=8qN{M8iXrYmWS+y$EUN8Idb*>DWhRV+pV?awQ-Ub8r25W9qIWU(OhW@`AiQ8j z?WGGhCvP+J$+{Rj3BL$c&tQ+Ym~0)uoNv1KD!T8{cPoq<-Ui>>FtSD+Sn$P7Hy*7X zIBm^sB!aLtiM`t4!?-1yjdjlIPW7?8juZ5a`F)_N@r7d1CW57HD@q1FfcPQQAp0uEyyp6U@$QN0)^C)WQJMIbDJHQ;vSz3Fx32G!F6(PM{6TQwzRm2 eVaY=AR<)zH9}e%)e3g7a@!dM1cMbqOBpWFz_#V{& literal 0 HcmV?d00001 diff --git a/.git.broken/objects/ad/d06a8777a63026c2f8091cbd08c849ae63b35d b/.git.broken/objects/ad/d06a8777a63026c2f8091cbd08c849ae63b35d new file mode 100644 index 0000000000000000000000000000000000000000..711a4fd588766db666413a45a1f372a2d91c164a GIT binary patch literal 485 zcmV>Dk;-+qZp@2h6PKjL=3TY9uCH!g=hJx6&4=ERDC$% z*=T#xaVcH52gbLXBF(lugS$0-33W+h#Q#Gl)eyWJ2)={wBAg&!GN=b*Ksp<}Ghm$S zL0eD)J7<@nO_BxtLzVI@4ZeB11B(%Q?<$1F9zu_(=7V$|OVZf8pyNCvQZm$(;%Ae< zbY~Q{98ouIoT_dr1I8DvW-Kqv3WZuUBghuzX{Og5gi%M?UZ|Qrl(qgfjUpQCF#0o* zS#=MTCX8P6JqfFYHVfCIB`YM3a+b7D*vZG}NoRlws%81mRele`DhRWaOC6#hFSRxp zCWgzX)gd}sH}s086V=rz96x^f_E;Vd&tIP&k8r&QJw4fv!)GFRnj&rn;T37C&LBlV zxOx41eS7^RbYM+Q9wVa~~4)9CtHy9?z^ literal 0 HcmV?d00001 diff --git a/.git.broken/objects/af/6c8db0b779ae9bcde84e5cf33fbb77973d72c4 b/.git.broken/objects/af/6c8db0b779ae9bcde84e5cf33fbb77973d72c4 new file mode 100644 index 0000000000000000000000000000000000000000..1265464dc09f6e215086d2d3a623d5779a110ecd GIT binary patch literal 332 zcmV-S0ki&i0V^p=O;s?qG-NO|FfcPQQAp0uEyypqHYRegQUJ9qzP>AJ3m_h**Bi`j7h_v~7js)E$i6o`!)E}efew{mgwURk~_ za+@}Lje&GGOjSu@QBG!FHbkM#f+^PXa?Wj^vP+&}jWkR8-JX+5P=zI_IjOm+B}J7G el?J6141ec2eSQ>T+!_H>WcgIjnU6 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/af/ba9e750c21520a954bd96bed8866b1a1b7bebf b/.git.broken/objects/af/ba9e750c21520a954bd96bed8866b1a1b7bebf new file mode 100644 index 0000000..f3330e2 --- /dev/null +++ b/.git.broken/objects/af/ba9e750c21520a954bd96bed8866b1a1b7bebf @@ -0,0 +1,2 @@ +xŽM +Â0F]ç³JÚL~FDWî¼À$ii›–ÞÞz¿Ý{ðàKó4õ¬we&§I“ ÆÄÉùˆ$d]´Lž#DŒâ­Q ¯’ pÛjÇÁ{ÏÎèÆ¥æ4Õ)¶:¤€ÄâL4¶Uü.ݼÂe%Ã=Ý:ÎpäùŒ}úR¥y:AíCChC@Øëmj³ÛÇ"ÿÕj9`âu€¿pU ×9‹úùiK5 \ No newline at end of file diff --git a/.git.broken/objects/b1/43672b78a0be97e73d38196da114197ba52a6c b/.git.broken/objects/b1/43672b78a0be97e73d38196da114197ba52a6c new file mode 100644 index 0000000000000000000000000000000000000000..554aa2615b55c3774046f67172a7dba3c51eebc3 GIT binary patch literal 72 zcmV-O0Jr~m0V^p=O;s>6U@$QN0)^C)WQJMIbDJHQ;vSz3Fx32G!F6(PM{6TQwzRm2 eVP!UN7&DL1uYbmzSM6K7Jwp#v3j+Wh(HL3-KpfWq literal 0 HcmV?d00001 diff --git a/.git.broken/objects/b1/b91431e1691556c670273aba47943efe27e065 b/.git.broken/objects/b1/b91431e1691556c670273aba47943efe27e065 new file mode 100644 index 0000000000000000000000000000000000000000..c03c6751811b1e03b06385c3c778bc974718a095 GIT binary patch literal 55 zcmV-70LcG%0V^p=O;s>4U@$QN0)_0%65XWI;-dW0lGGxG1Tl`pW5SEM@=wR-|2wcd NG3$Y+4*+;R5zm}G8O;Cy literal 0 HcmV?d00001 diff --git a/.git.broken/objects/b7/e1e1532ef3654aa6e314a78a6f8ce460bbe336 b/.git.broken/objects/b7/e1e1532ef3654aa6e314a78a6f8ce460bbe336 new file mode 100644 index 0000000000000000000000000000000000000000..98bbb85ae6afa2f68acda10419c86d2e4d28dec5 GIT binary patch literal 323 zcmV-J0lfZr0V^p=O;s>9wO}wbFfcbYRY*xp&CSo#E6!jLx#!kk`}I*&xaEzvGWmUx zZ``K302P^;m?-3ACh4Z6CTFIkf)t+ez3-GA_**eJ VMwxWhEm`ZcO_N6@9sq+BjWdMrq{09I literal 0 HcmV?d00001 diff --git a/.git.broken/objects/b8/d98c91d2440c70b7b87f016480e6fd01491c5a b/.git.broken/objects/b8/d98c91d2440c70b7b87f016480e6fd01491c5a new file mode 100644 index 0000000000000000000000000000000000000000..7fbc53ae5227bea2a37c96bb7831e679d902418c GIT binary patch literal 162 zcmV;T0A2rh0V^p=O;s>7HDE9?00M=K#JrUJv^0h&kvjqEPEm#{t{5;MsCo8mcH}V= zLjwad6BC8p^xP8NlG41q)EwR7;tajq6oymhkC#<`DGm;ZUeV4U@$QN0)_0%65XWI;-dW0lGGxGD21cT= literal 0 HcmV?d00001 diff --git a/.git.broken/objects/bd/80805573fdd49b56711993377a87d04bf5f8a0 b/.git.broken/objects/bd/80805573fdd49b56711993377a87d04bf5f8a0 new file mode 100644 index 0000000000000000000000000000000000000000..32f8ebc672760f0060d374f97ce9f6895a3e8570 GIT binary patch literal 84 zcmV-a0IUCa0V^p=O;s?nWH2-^Ff%bxFfuSQ(={;DH8#*K$jr}6O)b(*DlOJ6$}cSe qF%xqV^O94G^m0=eJiA{y?%6aoY@ZmXhVtoC+jRvl2><|vW*RQ{Q6F;v literal 0 HcmV?d00001 diff --git a/.git.broken/objects/bd/b623b99c13a025a639918a459da0cbdb4caf96 b/.git.broken/objects/bd/b623b99c13a025a639918a459da0cbdb4caf96 new file mode 100644 index 0000000000000000000000000000000000000000..04ea768bf54bcfffc6b95dc28af679e9277537ff GIT binary patch literal 203 zcmV;+05t!20V^p=O;s?ov}7^e&3j{QQcg_< literal 0 HcmV?d00001 diff --git a/.git.broken/objects/c0/0c764b640d95c73bbc414370f28e82a11774c5 b/.git.broken/objects/c0/0c764b640d95c73bbc414370f28e82a11774c5 new file mode 100644 index 0000000..9bd9a22 --- /dev/null +++ b/.git.broken/objects/c0/0c764b640d95c73bbc414370f28e82a11774c5 @@ -0,0 +1 @@ +x+)JMU0³`040031QðMÌNMËÌIeЉ¾?ç>뎣WlU•'­ywEðƒ‰(€¤‹Öøž¿,`Óõ¦]ïB@cÒÚœW>'“!)À \ No newline at end of file diff --git a/.git.broken/objects/c1/625b23ef80d821ddce42e603229d1bba45a80f b/.git.broken/objects/c1/625b23ef80d821ddce42e603229d1bba45a80f new file mode 100644 index 0000000000000000000000000000000000000000..efe4ccfba695a6fc011658f5d3070420f7f2de2d GIT binary patch literal 46 zcmV+}0MY+=0V^p=O;s>9U@$QN0)?E+B!(ZkHhk}TTAkl4{&(!euAkekB;2|J011;3 E){?vvsQ>@~ literal 0 HcmV?d00001 diff --git a/.git.broken/objects/c1/67101d497a806b573de0be9d2b4f46911b76f4 b/.git.broken/objects/c1/67101d497a806b573de0be9d2b4f46911b76f4 new file mode 100644 index 0000000000000000000000000000000000000000..ed56ec26ba1d808f71c1a5564efb1df7289a25aa GIT binary patch literal 203 zcmV;+05t!20V^p=O;s?ov}7^e&3j{QQcg_4L=M?8Nj`hK)N#3?F8Sh8-(Vx7y`C#qOW_gH(u$;^d;tf|6o} z2d2TL34HOaH{A0>&)U80lRDtF2cn`RwHPQrn?0UQW@>j+WNO+yjk*`DJ-@PV000B) FPdNsLXD0vv literal 0 HcmV?d00001 diff --git a/.git.broken/objects/c1/bcff3230e787c045e52b6044960bf008a627dc b/.git.broken/objects/c1/bcff3230e787c045e52b6044960bf008a627dc new file mode 100644 index 0000000000000000000000000000000000000000..4566d78dd9738aedd6dc61d2f78778ac4698c26c GIT binary patch literal 225 zcmV<703QE%0V^p=O;s>5GGs6@00M=K#JrUJv^0h&kvjqEPEm#{t{5;MsCo8mcH}V= zLjwad6BC8p^xP8NlG41q)EwR7;tajq6oymhkC#<`DGm;ZUeVXz2dnXymQ< zdO}uiQQ>5WvZB=F{5%FjEtg}_QB?sZ+Zb6_zx@>7b8N*^huZfALc;-%1T>XQ`>Fx literal 0 HcmV?d00001 diff --git a/.git.broken/objects/c5/2ffb5bf94e33810d3c8a12a3390090adb43d99 b/.git.broken/objects/c5/2ffb5bf94e33810d3c8a12a3390090adb43d99 new file mode 100644 index 0000000000000000000000000000000000000000..321e055348b1426871b1bef03b8b13427b4d2956 GIT binary patch literal 84 zcmV-a0IUCa0V^p=O;s?nWH2-^Ff%bxFfuSQ(={;DH8#*K$jr}6O)b(*DlOJ6$}cSe qF%xqV^O94G^m0=e_+=k-O?WgTQql6D@ynVsrB8RI?g0RXeH-xt_94yy literal 0 HcmV?d00001 diff --git a/.git.broken/objects/c6/a3d232349bfc966e79bd4ec16a3bc507ba9ff7 b/.git.broken/objects/c6/a3d232349bfc966e79bd4ec16a3bc507ba9ff7 new file mode 100644 index 0000000000000000000000000000000000000000..b86f0bf47ec18abaa83b3e15aa0aaab3bf4c680e GIT binary patch literal 203 zcmV;+05t!20V^p=O;s?ov}7^e&3j{QQcg_DKva~Z76awC9ArE*f9KvG3=U>mFTPcBcS_#V008Md FPUEIOWSIZ} literal 0 HcmV?d00001 diff --git a/.git.broken/objects/c7/5536f0e9089215b7bd4c40ed7f222ccd76d847 b/.git.broken/objects/c7/5536f0e9089215b7bd4c40ed7f222ccd76d847 new file mode 100644 index 0000000000000000000000000000000000000000..06f20dd043a3d7ffaee596f62e0cc40717752276 GIT binary patch literal 45 zcmbXo8HB@lGEvIN=Yhwk*2~sphcca^0|~QU)&Cir|@(dM}DxRUVI0ez!P*A za5%XO(l`o5lu?|L$3+-Nv?xsbHckB--3AHqJd2BX6zPLP z%3Si4dY9S$mZcHsC-?X zPbO#c>05;K=gF+)D-0r10?~VlT#?-i5w!zsf_h=?xVpSLxth$+rWcJbmGMlFA4ox7 zkcveXrypA(4YM#Ay17c@JQFEWM3U#ZD}x1{oKH*Oiqg$>t>$G~zZI8bd?d{gsIDyO z*GD84tC&nr&OQY1jmlcD-%KYCmoYXgf_&widf(u^oWC`>KZ7c6RZD8FFoi z+(1KaoJT+@rXT{)njK&>z00#C&(!CTX%eb@u@FifA^$8-BUJ*T8zhhT9S{=8bbE_93^~GMcTJzt_;~1vyJ3_| z*{4sRswik=bhOh-+LKOqydixvUgzb_G(NN}>j1Q@{@m;v8(pwdhzxVN(llP76P7C!r9}1dvYo~E zk&L-#lP|KxibfW_c}0F2hjc3A-18wF;)wF3G&+BGc}0iXB=)HQHBXUg9DbDo?YaX} zUEe$fYpM!sWqiEA$Q3yn9gS445KyN4FVu^L`~%AZ$kf=>d!VOE!5`z8jOw zRhA|8a9F$;Eb43r;LvbB*OtG#AHhgxWWD_5@aLZ_vt91K(YYoTfia#m>4u&?qifx) zp4=NehkLfvN^sLYvdcYP@t)^F8k{zggQ4B9PaukC&~8$@fQ^}W6a|jXP`TW zYW~5#j8IwXZ{w3E58)`ZDwm}~bxHvRIMmGnP|5!N_2ZoGj%rSK#}7Dt0cGYbZPtR) zG^}oR5khr8(`rr0OAJKS3>)Q_wb)mE z8cz$mW;(#;2$CQml#tP{Mr4y-BN9OL88U#c(nq){3#<{sO)2bT867`Btff+?LSf-B z@KRsF_O_%W#46ghJl7zWXLM?XVDCC8q+oj*!O4q`eZtroRN?5({i}FNb-t*kU$Z6b@Orx~6tByb0jr3X@_KWSA2qArE55{< z*&;M z?z@<0*b%T$RIG^Nd!rNHVuvG^pkxmY!wwc&8uhyOfa!d;u>N Z8rx;qX2sUk>c9UJYt6%r@gEI~=AwqEzheLZ literal 0 HcmV?d00001 diff --git a/.git.broken/objects/cd/2206874129f08f05dcae26ab661a3c10797a8e b/.git.broken/objects/cd/2206874129f08f05dcae26ab661a3c10797a8e new file mode 100644 index 0000000000000000000000000000000000000000..9e8b68407abd124c83f6fb2205a668360fad6742 GIT binary patch literal 154 zcmV;L0A>Gp0V^p=O;s>7HD@q1FfcbYRY*xp&CSo#E6!jLx#!kk`}I*&xaEzvGWmUx zZ``K302P^;m?-3ACh4Z6CTFIkf)t+ez3-GAgf0V^p=O;s>6V=yrQ0)?c+l41t)@Lvk=zl$s=YTmixn+4yO`*UM1L8Q|% lD@sa>Qi~aQ7^e&3j{QQcg_Ea7KjPNnTGz!Fd(9y#ij#{n3rdO^ z9+(D~Ch*0x-f+(kJ!|)}PwIfz9*ByP)MB9gIfs?uNl$e?ZaE(4b96J$w+){~x&St& FQ^e&3j{QQcg_4L=M?8Nj`22O#i$Jw_$yC428<-viC({AuaO#cQ^QJh?qSx{2U z@W3>Gp0V^p=O;s>7HD@q1FfcbYRY*xp&CSo#E6!jLx#!kk`}I*&xaEzvGWmUx zZ``K302P^;m?-3ACh4Z6CTFIkf)v`w{S#skf6fpxOY25-SZDs9wO}wbFfcbYRY*xp&CSo#E6!kGoW=KhzisN*i~inkk25?z z@X2Pq6Ht+viHSl^W|D47YI0^uDoEie-}_G4LC*iWC8}=nTxED}(|?@_Nnvqvei2w* z+U%eDwtsuAbD0vi)IV0f^N#hnI#gY5YDrOMamADXF=-#hJMvbsOpwHswa`6!x~{{oMM>fk{+(rYcljaY1ToN=a%l*u0Zh zYoDK$Eq*XPEaK~xsObfl)$gam)RiO_btB5rFeZ{vfM^a`& zm6fFCq=Fn-2~rnX!>f{P`uN0arxn85uQjS{-bhRVssjaId19V!E|35z`?hV8jlUIx VW0Xl}-IBFF+cbGp;sIODjLPBDqv!wt literal 0 HcmV?d00001 diff --git a/.git.broken/objects/d4/6bfcddb06173de12b59e92419aec994864036c b/.git.broken/objects/d4/6bfcddb06173de12b59e92419aec994864036c new file mode 100644 index 0000000000000000000000000000000000000000..f19e5a224137b62d543de90ff5cfccd108059c12 GIT binary patch literal 1223 zcmV;&1UUP60ku|bQ{qSvzOUq0^p0EwPC`I$uj+!hCCYl-DJrm^T#p*U04ei=lZmdS z{`c#i2?DFD-j!!rVKSNS>3+KV=^lm22)1k6zx}lF!5sy$o6f8ah?230oHU54=?on6 z3TZHnc?eSQF>FG=a|~&iD2RB>ry>%us#+T;yPw39VCvxt;P~XAeLQS^>Ejyzrr}U) z2B!sFPN6gw6P|_2gSu0%Zk1PL_6EcK;{%l08-Slgc*z*hJT7lnq!#*65JgY3Q5g8J zciJ(R>#K&j)%t#X2!EDE5KMAk`6xw)v^@(o(NMc<6lpcw zSHZPdA`xfNNJuEvA(4=Kvm$*HD1QcBRFImbN|v%+AP=SRlQvaF*{Yk1JaeLCJ|_~x?SU4-O5CA( z-({5@GHkc9L#OeF&hG-0&N8fR5kl|y<5sN;-QLH;@_HU~wajAYvt6;*ayhwd)^yss zU(Jo~BEgGWo3)1auvy%uC0*Gp{z^-fs%xn==#tBKfUHN&Ag}mHC>i)EXj;&`M+lwD zAVSvm4AH#E6AhRkjf}W|=^^cF2T4Oa3Xm+m=WJ{Ptq5Egw*bQ~rb4D=B8fEfeUYY* zl#W{y9)y`h##oRs^)Ul;n4m=zYUCQLV1Ap$(i=FX^rHe~-DnvbmLS-ocBZK@{~p9u_c;0s#^U&6Bp)Zd1d~gVZ4MdZQ|%lEw#|uCzX5 ztW|h5P;4bo&D_QHyq`)j2j>dd-zR@Da+~_l8x4D+T+@;mH!wLB__w~Ed5Fs7g!=-4 lUM4B^s9-WqZelZI4QsVpeKnIBIJsu?AAH1o_y=R}nK5CYP`LmA literal 0 HcmV?d00001 diff --git a/.git.broken/objects/d4/80f057dcba4ab3b14b4ef6bcf856ab7ecc452c b/.git.broken/objects/d4/80f057dcba4ab3b14b4ef6bcf856ab7ecc452c new file mode 100644 index 0000000000000000000000000000000000000000..e4b7a95bb54d1d1259fad3dfd34f5e1e41ae5c4a GIT binary patch literal 11221 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 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/d4/a49b5f60fea575d5368b40318b34a81aaaa284 b/.git.broken/objects/d4/a49b5f60fea575d5368b40318b34a81aaaa284 new file mode 100644 index 0000000000000000000000000000000000000000..fe81bbe39370bc35b9ecc3587a7c076a418c1205 GIT binary patch literal 61 zcmbK$n)1O%_+%|Q_^!7H<=~x~S09gf zvE+`F3+=}bP_N1#^CczBV`Qf@g}$;BL=dV zmT>SXJ2m1%{=J0AVq7(lS7u}hrL~`2PH;Dod0&FEq|*HocDt{i!8_6W%np<@EOZ>t z%*{|zy~QQWtA=f)%p_S;dpFR22~QMpJE>^+jJXX;qwpbf<6I>~I;o7n*jXOVdu@r$ zS8Q|YAx!=4ARrS@sOM*FhXTaOB7-3x8PiHi7&y_V?ZefE_V`Rpz-e|C!!PcA&g?`A z(k1C^3j-$lup%cGj3fs;vDfX7-R=eO3fGoZIG7Btmk=%|0v;PBUbmo>B zL{JoAj}D`nIb0b<+;gM1oqv-u4;7D%Ml;2~;VhoEFM+SLni9f5&)o6r03A4@Gyh1! e@%*q$4w)5@od)YKb1R?^sE?M*72*$(%s#z)G9pp{ literal 0 HcmV?d00001 diff --git a/.git.broken/objects/e2/98ff3e5e58f246e7970a253eee02c6aad578ec b/.git.broken/objects/e2/98ff3e5e58f246e7970a253eee02c6aad578ec new file mode 100644 index 0000000000000000000000000000000000000000..5eaa5ab051dfeaf9f82c021d5864b7e43394cdfa GIT binary patch literal 11238 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 QC{P}3ajo)y0PJ%w)29%3_y7O^ literal 0 HcmV?d00001 diff --git a/.git.broken/objects/e2/bb9294c5658ac86b98c01d5644ee949fbe237f b/.git.broken/objects/e2/bb9294c5658ac86b98c01d5644ee949fbe237f new file mode 100644 index 0000000000000000000000000000000000000000..70d3fdab4fbb5672c56fd5961e366b9f699ec8e7 GIT binary patch literal 1051 zcmV+$1myd80j*ZuZ`(Ey-?RRT8yi>k7DcuP^ud`248>4v58FfYRu_aUQ8rtO(nP9W z;P`*v9Vt<=+hPUQAhD14@w?;kKC)Bw4puK;uD*NreY%r6HHYXK>^jrdofU0jY-T&N zhF7nD2ce6mmfC_nWENVH6$VHypp;4&$aH~R+qK%jA8-Ep^DcVx@aw~Go77fK8X%*n zX%VD^_*Jc~&^CE^Y{VL}rcpA_tgLnV-qd>AZrxuTMVx$ba`IvhCqN}&H%kVqU(!N+ zOm(LeJi!5#Aknadrza5kp+=?CYMq?fJ)99F-%D<6>mY^@W+wJfPhdm=u}QaE{Kb#` zJ(!ds&C-4B0V-iznR5z`Kq9~&Rp*&<_usgX4w>PtX&XGPnA3O*Nr^rvdIs+(wv&%8 zrnnK>r;J<>AYB!b78G8xP|zuOFD*MC;ML|vUv(^QddAtOPe`lN~=meClt` zW(B*2naHuNUYy9{+Wt@*tFubXqbL_jag*1r zxQrj)*G++Q>V&+i3sLdKVu5vuo{yRS8Y@(D>dwni$o;{hn=Y4-{0)0yp+b$H?ndxC zuXG)-8w*r5-t(7{5bnPrjI6j(HH9*HvB`~lIRo!9+Bb${5zzw8UjG7P~;wodS?czv)NvJCKMd>t&;i!ntu|H z2PGh!SRT%OIjoDQu23#Q+jS++>rPWTONqN=Or#Y`(DZ#wP>JCn!OTo?>PY}bhYD0{{pAaLV?+#{UZPX literal 0 HcmV?d00001 diff --git a/.git.broken/objects/e3/17b7599440d44a01a12f58daa37d45a3d18d37 b/.git.broken/objects/e3/17b7599440d44a01a12f58daa37d45a3d18d37 new file mode 100644 index 0000000000000000000000000000000000000000..ccee8ed33939c4df4b5f0d6274b94eef2dddc19f GIT binary patch literal 56 zcmV-80LTA$0V^p=O;s>4U@$QN0)_0%65XWI;-dW0lGGvwnUATj*44U@$QN0)_0%65XWI;-dW0lGGxGdmFy6o^V}|d#5ws+Ai(i N^2TjOD*&5=6SJUl8esqc literal 0 HcmV?d00001 diff --git a/.git.broken/objects/e4/e2e456a16be615ca50bd738353517b9e804f64 b/.git.broken/objects/e4/e2e456a16be615ca50bd738353517b9e804f64 new file mode 100644 index 0000000000000000000000000000000000000000..c29a1af58153eeb0900f642456396a7766ac8f72 GIT binary patch literal 323 zcmV-J0lfZr0V^p=O;s>9wO}wbFfcbYRY*xp&CSo#E6!jLx#!kk`}I*&xaEzvGWmUx zZ``K302P^;m?-3ACh4Z6CTFIkf)t+ez3-GA{#a+P5$Lwv_|`Y83CneW>OjF)o|vbb3nW0wzHOUi<8Q^_ V7-iB~w`8r)HccLtcmRZ*jXIrGrj!5x literal 0 HcmV?d00001 diff --git a/.git.broken/objects/e8/0650ef433c17a4faf20ec7e6cbf58ae035725d b/.git.broken/objects/e8/0650ef433c17a4faf20ec7e6cbf58ae035725d new file mode 100644 index 0000000000000000000000000000000000000000..956cb3396c231138c7e7f4e595964412b34ea52c GIT binary patch literal 78 zcmV-U0I~mg0V^p=O;s>6V=yrQ0)?c+l46EZ?bbDOR#q`LE(^b literal 0 HcmV?d00001 diff --git a/.git.broken/objects/eb/c8c39b72529ef10d1c18219f51557a4d25be71 b/.git.broken/objects/eb/c8c39b72529ef10d1c18219f51557a4d25be71 new file mode 100644 index 0000000000000000000000000000000000000000..146a86f2c342a62182faef34088967e1473b6215 GIT binary patch literal 2308 zcmV+f3H$bV0mWF|ZrfH8-dpi0rnFp3Yg3XP1Sn)Hh2uJ@0mlhqx4B3If+CM3))Xo5 zkX8&uz&^x2;XcWJGlze&lqSVqENnoVH zu@`x<&#O#DYOb>Mk^DzLQq1C46)nJdlE;1)CZP0EMS+@xu?i@RX$tYYh0>yj1*Wc!)yjQNoQV~;dLT}h)Q=5hgX!u(W8;@A@u5-xpOa!JKdgT zUA(<{b@h7GSDD|hE?%#CP{G9dNX~@pwmEClC;IV6>eUY{>-y@Y`^(k)k=v&1`L37L%1{*1YWm$`1nt)!REZS*N@9SgWD0omgc%DD^_AfHk*cZ=M8d?&xs7 zV~;f%h4KB4t)&+`bA0UBs;n$~){t*_b#r(5{`d3i;po`_*Oq4&m)F^%f?OCoE z-Yq0?a}lr8rIpo+5+4q7uO5N6W1C{NG>7r?#4fj)&}BbiNLD&o_cz(LS6~AL6g-*8 zYVqf&-SNE)hOGG5bn>DfsE2->!}-5_A?42!vY!t~{_Sqbgyk`e$`zQI!@`Z)mBcoE zA#Zt4&I83F=Z0wwRq>Q9C^1!)MIqXR`4JX#5fLCDsS{D2^ZO>p$WHXra7`jn_AI zVzr8kRR^p!qv-;sRDK5AWQXF5fRFg=2BbK6F4K@Z{yowU7-364^nRsF3ApFNe66Z)#ojJazRRd$0%aI>U3JyYUwK%9?1Bm05yvnEy zW)l%NVBBRKmn8Op26Q|aus3+jp)#$oEU|j95^zxa7)Uu~+_YCXKOAwyYMJYNoA{(A zHY5c-E8*MJ&uVHW7>*!zq2XJO{6=rS=g*K+AG|16l*hmpk}Zb|$*F`q8sw_<+90AF zS(m9Qi|?tD%L*q*9xNg`ql1V={|@G z)wS~PB5i0suSjcur_$wv2w|a}pKGD%SpAWHa1Fp)%uovEM)HB$`DaS%YoR0D-sGD!Fv z(WGQ;x8X&s@>=nB+xP}QWt{W3Vb@4S21mkl0Bvnp62`3lO(6dp?|5qVB969Kh;L1M z|1bCXyZ89+OMFXs*taF2OUzJsP?7j|mL5<&?#&hu3PvUj4Ldff7Bcz$>81GGbJ(Ub zO<=CE!p6{fj>xs`Vgim*)eN%f6vda5)fGJ1MN0i>0{bUPDI*ESYorqnB=BdlSO zV^PNDm09p16K+@hwca=Rs=Z=}4V|0*`P!sEkjtId3~l_tr`TWWANgr+VN(BF)Qiow ziQqS=_R#9|=<@R-Nm2Nb$C0>ffutrFtJt4OU`7epv#L(SmBy*ewA)&67G>)esBu0e zTh5yzXh`jjRJDiux@!{fg^Hp)@>0^_G)5KK%(Z-PCVbSS=8NpH%C)E5mN@)~1)7(pg3d>xmi}IJ!II-@QTsD?Zp%~^{@GNWyyR!ufMQ>Z6 zLC%4We+uKL%qj*=z8hX5^=L`Wyq?~26Jhm>H-uuB$x<%vw#h3PnXX3U+)d12`bBwx zGevW<^f1GjDgPc`RmKpWt(?|)n|m=@1{eXYZ?cRjU+^dannx-515KAt%JHV(G;~lE z3V-SIl?FD)X^VK^2Jv+tyWnFUA-YM&k{#t=H$<; zR#Dstl1xb=Ga*b>T+xz?-p)0LzZwWCE3u+qzq>7i&vc=Us}>8Oh*y*Fb5roI`e;G5 z?WDZX^iM&EL=4?xbI}09pE_}y2_uKm`8`e(#IV~{TaF-U<~V4ytrk9@Qf?QX z%ptKM(eBA@O=~*no%Ezf*mY~$L{?J?K;X_pdj)Q5WWv^RhDierPbo;?AGOG$7(CGt zhFp-gp5i$&#cQ$7jLKefR2`b}D#vd0;;cW>*p`xxh?OLJg{GwD;SN!%9q#S6U@$QN0)^C)WQJMIbDJHQ;vSz3Fx32G!F6(PM{6TQwzRm2 e;b2m<^81Dxig(XBJ!4jyE4|Bg1wQ~e)EVt5fFE=K literal 0 HcmV?d00001 diff --git a/.git.broken/objects/f1/4d81b6d2868101557f0caaf63f6bdd5dc0a269 b/.git.broken/objects/f1/4d81b6d2868101557f0caaf63f6bdd5dc0a269 new file mode 100644 index 0000000000000000000000000000000000000000..2f59ee9a356e7542393bcb000ff2ddaa6093a9bb GIT binary patch literal 291 zcmV+;0o?w00V^p=O;s>9v|unaFfcbYRY*xp&CSo#E6!jLx#!kk`}I*&xaEzvGWmUx zZ``K302P^;m?-3ACh4Z6CTFIkf)t+ez3-GA>yD#W9BfsUC#`vR oMeu`(0T3vFq>C8@ey5)7zPvrjMm~Fu*DH_Bzsq}U03r+?yNRtM>Hq)$ literal 0 HcmV?d00001 diff --git a/.git.broken/objects/f6/9af7f4f757f0b0e5e5ad8cb90a6b7ec85a1eab b/.git.broken/objects/f6/9af7f4f757f0b0e5e5ad8cb90a6b7ec85a1eab new file mode 100644 index 0000000000000000000000000000000000000000..0f89aa2059a17255dfa594d6de5bd93d2df42892 GIT binary patch literal 215 zcmV;|04V=>0gaGBYQr!PMZ5MX{-%&XZA)(CmVnnKo6sxBwrWHy+to}%d;2&|9HLDt z1Y-E3$D2{zk2O?TKD_VtZ;;vV!RlJ9w{s7zW{vuX4JGB~QsBdnZh5{1na@gqxv!K0 zTW2aMG6DA|AOoQIA1DGK!tfjb5r$0wL>T66@0N}*lmQT7cnN^Tkfdq4d_N{TbRgDj ziETredx;d7baOCFV6O*qmf5sVc)i8mG{zp!Ss@;;Df*Ep@#ELfrtIwmXNO!LyWHt- RR5*{DOEq8194Cxgr8b#%W*q~&SKU1v(w3b49TA{rn%&h^uc}^E%`-ixC!^Cp|LMVZ{kbao zX4QH?8&SkLzItXw|NZx`#Lp*`=whLkWM#h2gq8G&%Brv`m$Z>;xw5>$mO7(_E@@tw zQdd@%z19OryeROv5Q#L@S(G}bQerp#=eJ>ZjGu`TnPpWbN{Xl9I>p;5%5^I9*EA`#Zb0?N*PPEnEIIPGzD}i2!T2 zfbjmAl|uK&N98CW2yiL){Ef4DoBwgjK;dm~Uubh;NbwR}gUcM3m1_YX>4Yj7z- z0dXygM5Ykz0;@7|R^Pa1(O18Hp-m=?oq-p0iNHzaLR6V;BB88M9qQ#7zcqHGAQKni zgP!~JVS1fitjryXhTJ<0^j+4rT$1Nk_hk52c~Adz2bdW?f2Lc?^l}MSkL?}>wjD!^ zYYOwF<>j-BAOH5EeFoyORawyRjJE!6IOJrHhey-L@0@t&@SK zxE3mqQKxp?q^a4D$$4x7)gW-oT>rDLVj>i&gKG8|#xo&zJUghOu41B)q8u)F)pZJG&i(b%F*S+Aq#lJp!;Zr< zW8(B;PmKn>-cuA@kk*=&UU2cL3%4rhpvrL#{sGm)9F}Hp>V`|Us0%ubTN7+cbe=0~ z0W7y*;z}#n56IDDft_iQRp`!i0m1T0mN#S)?d#o5g0Oco=i08gr7?bLWyeN z*%hcvqrQdi0wsM|2LP{n5U@JhUrnmAM2+;Jp9qxK_OajD228v7j-t=sfBbF`|K-#7 z-TUKw&tnWSXkVo@CeiV&m%EMj0-w&#+#S-0B0hA z-*w$##MwuR{{_v1HEsHI#&Oo@e{T*Ps9Y771(&9p#&-8b9x~4KI%VC>3+0uD2410= z5B79lmmQ#A=*0HHhxZx>SJj?)_;8PF_?(Zd5QzuBI=;DsLjDj-g(?!d)IcXZ3+#~C z^Ic6^Ecsr1PsYvJIuwp?gP*qXbQcvKVF2nF=51AQLyLBvTUz{cO|9!@4YzNia7pau z5xk_nuS0{3JW5q!sWXc8B0dRy@IJNN-9$%Us5CWN<+ zz|A;x*wk??c9*GdIvM%)+t6AV^EmX~)ZxavOUP?kZj?bbKX9gkFAB7yyL;m~8Z1!b z^UB;j*Vj~-OzTT@N*FmVF>>gtOk|9K55nRYGo7(mWn$&g%;*eIIC46}1r9~V$>GRU z!ptlxbkykEg&Vxqvc$v`hPqhM3^1BL91=1o2p+bM97gd)V@90Nh~f|U3a#>8=lK+C0Rf2WjAFBZI~p8!pu};| zEw20IQ*6w|wR@+h6l-eKi`cqxpXZGG?ddONAxjLDv(ey51e2Qcu&l;s2z>6$&)O9q zk8d6N+fQSLV{&}!LD@R6@fvL0I+1t}k}(w?K}MZ&?PGte4Ftmpehizrb@&~yz+@Uz C+Lk5& literal 0 HcmV?d00001 diff --git a/.git.broken/objects/f9/741e9f7b2f8531e5012cc83ade8aaf01354142 b/.git.broken/objects/f9/741e9f7b2f8531e5012cc83ade8aaf01354142 new file mode 100644 index 0000000000000000000000000000000000000000..e2a8f57dc3f2a859363090c200682923123ba246 GIT binary patch literal 203 zcmV;+05t!20V^p=O;s?ov}7^e&3j{QQcg_4L=M?8Nj`hRDR0&p%cf)ZJRWtv|5rnRhS?V+%w@adJ^+K}j*g z1JmHr1ipCI8}9j`XYF40NgeRo15r_uS`3u8e!OI3h4Z@0OFO$JukjR~C>EB^003k! FPu$7;Xzc(1 literal 0 HcmV?d00001 diff --git a/.git.broken/objects/fa/659816820c6414f389707630495ade00d68c25 b/.git.broken/objects/fa/659816820c6414f389707630495ade00d68c25 new file mode 100644 index 0000000000000000000000000000000000000000..91672c9b0cdde43e8c99e42efc507a50d3c963ce GIT binary patch literal 78 zcmV-U0I~mg0V^p=O;s>6V=yrQ0)?c+l46FA`u7Gd+#CMwnD#xh{(Q>RyV;$8A<}7? k6(yxbsl^OJ`z=N0wp%@FYWf}&mUnJ(NEcfN05$L3X#-(ny=5yI7=5X2I_5Xw|m?Dc7FpuxBBbm<6G0~ws&^g z-F9zH9{cA5<{9%5XUCJ&x>$whG~$EeUpX7GD~vfugueN7_aP^l_$bj z@!O4t=Xs6BvuCE)hUD`!z75A_5{!!66u~ft{3l^J&P@!#XJ!!x39jciIZorVd4v1R zXY+j!FGKUW@fl;`kNx4{f;kN1co_$oi6%)f$7ml9PJ3n^&WB;PhDTd1Kbt3EaXp_! zT^}23es^+g7Fk-P#{X$F_ty>fU1Vu&670kHopE^E!OhpWuZwR#93Err0E*&sqw{NM zQV-V;&QFa$3G$*{c=L1^#bJAt&V9^@Rb3WA7DvgA!D{L&>)R!T#Y`7d8~rXwFsxnK zcs5%2Yi)CSc6GF8M$0SsVb)Qlr&Lr@gKXa)&m zd#bHV=x*Eim=P+w4;?%;O@Ekq5Hu&?YUh}G12cy?Ci$ZX?eq+yqJsOKuo!hjHKrZ8 z(Ko@6H?Bh24_myd4--ZJvsRY=Rf!I^mOyBn?tS4Cz0Sz0XO z<+QC=*Ua54g7MykCdfj{)hzQUnW_XXqiGVv(CJ_db(qhCWGrGh&%#Lv*^5ckOhGiE zo$FImXqWz)o7G=difA6L?Dc+K#mPVf|8aQ+MfoMmv&B08^V2$J&DQfcE!LrycWHKW zUED9i^}N6lPm9?)$Nm-4fcvYuL*YHwC_Lo1+Bi}^16$A~DwvmUSIi4@#XcQDtn&ehN zE{{)49>yVzv69XOgthlOi~4YUa{2!3>W}5h?1eqk!x}E{qGB}r7oOjz^D14Fq2Roq zmSJ{pD7*Y?lgmiu!l;Ddr!X5uxtc+6n?_^tuM3>FDQ2OGqg(zbxv~3udw%)&?0;L> zxcU9rA(ut_7%t)bPcJW3uZN)t6ABY9F3R!(`{ViGk$rCZu(D%&8PeG|eivJW`O1T9 z>n4Y5;xm}0=4YQDo*bE@i;J_1J+s-}#3L~JN%YC?VVW)ACSnuZ22sqB9viYdIq%lk zdpY;X@#W?5>041%HPH>zbna`-?rNEg;iv-x(=MVB3~0VJz{%^3z8OYIfb)ppxglIJ zZR--$y52-tc*h9xbDH4$34_omj^IPAXB9VnH`QxBdTEN*d4X{_ranTZ@;u%A*!b1$ z5QG|1{o*>7v%uNBzBoIFglO+Ry+hkvVU2+VW)IRc*%DiWA^12jS!MehUix#t|D$gt zr1%GMoZfjK-+J@uyzmft>3Q;Ow7*&|V%1){ju!i?F6?$Y{Q3QD%z2g)7GbYhcxwi75B=J2ULLuY>pn1Q z^;NVODAa~*d7Y}*JctoyEasCawoI0Ym>m~~5W4OZPWd?#rm_7nUBa8esoe%yl)`BN zwB17Lixi;YUc71E26h*3Qa298iZb`!kN!N1@w(;jnh=OivW{FaEQ&x62V98XA~@uwjh2WSmkg+u(P#2 zS%(9WGH7L)#!Qi{AsgIm_jkMPjqP54)7u_xgp<+8>owd{HCU?8R!?p2wl{hkn_X`w z=m(pltw&EW0w{Wn)2W+m(B9~7w0nboci;{BgWfRQ#$yibE=Ey^oP(i5|5!i#9LwzE zh<9uE3TPGx{OI0tfg9aHySv@n?s~)FV7og)$Y@ZW_Wp-IFay5tdHufE4SKu7&EdAU zp@$04qG!C0M4&+dw^YaTqnoaw=ZCm$ZUFrp9aVH9N0pNs?c9z62l{K3aB zd{Bq3X=o!09|Z^ciUVwnIO)GQmPDb#}=m!ugCt#E3 zt*~?vig!$2JuB-epXyb+JrSd{frETPF5h)r1bOxD*qHLu>*IsB^^YH*rRA6J&(6+Y z9UOjJyF^B!AvYAoJwPLlyY>mkRr`eFseP(UR4$IjBkyiJZ)pmno&*pWn1cYm)jD~1 z+&MoyW=dFOL6S41(~b*5P4Dpap*7X36tsy=IHEWz?q#!T|rcD-{NFqx(qd!9zS)1asvV0M{>>E5A6n zx;{L4{ZhtZzy*&n<`*_M`dVN(QFt+fJV>1&MH2K~ow4N#=p%$^Xd;LzNgyCkU~;FU z-wAIf^8IIIfgo$kA^>;(Ss*O)c6{ho`2G2C-ybm-e(afYQ}ucHJ9uxh5}=fjE7b_Zvo~)5 zT7H8^QqEz&-+06|JRTgQEB9cUb^>8tl=;w9M?$&d5rhVn1em0Y>`sHUM&=h4o4Nk# z;_Tq{;lbtA`pJj)SI6?(hx3=!nUrKg(}f&i1)e|7>2(=pQeOqNeW4K=Prqq1+o|XD zU%W@DhJSXOkPrK-WFJWuWr*?N1}(rhV%U;q)qcGm0JYWWl#0~fXg}Z!jrz_|c>G2Klz*!wpwLl` zCD=1fq53CrFr5O9i@yy}DoKIKL0+x3Nq9cZA2^QE&xWZHfu>C?prcAEV-RJs+a>4R zsfg&`q@PU_oIo@Ijm4}TnFwg;1li4MZdjn;&Kj7*e?$oQ<{R^nLHHV^7Gvc)5v&AM zh#bB*m>Ww$=mR<|V$D$LwWvTb1~WWi!9j8}_v$#_n>5_$2AsId2P%wD7yE^j1eY1A zWc`n6amF!5eIWFaiPO=I;D8d!BS{2hPKqI+j|Pi(Z^o&mjYE}>tgmf824HlZoS2Rx zBP=>8#2N<+R3nPJFjRyA+PmWRl^!b5N6sqFF#V(zD>An806g!yu?vTg8lbRRtp{nJ^YP;B^ey$Nyn0!L3)3@9Wl0iSE)Q%5^c-w5$|w{SNg^sl z2M75VRxNO@&W)__grTLvCf4Xo$HIx8j*6wo3kxEb*=n(-A*-#im#x-1C!;nOGf;O> z@H_tGnULY81WKL~89LHgzw{&Kk#FGVr;dPio`d9`(@d63e+8;{kSmA8(f8!4m7pc_ znJek56qqg-6r|fY*;$2xN~bm&Z~^$fEGUGN3DR&xIVcJ#1ya%C78KkF&z_5QOOol0 zE67WHYdjAK!qb~U224^P!_R_bD(c%Lq5wIvW;tT9PjOmMlLX)|gPz2|Arv3R1G3ZN z-Uve=F+qs~0*yn@^3UI$eE0#<`GC?CpMdQ-Lt)Vt)((^~{{nV{qKv>cCQ{y!6xV`& z&ZnlbW}tf<=jj&30>n>C=m-3+@g0~( z4KSN7=h!IDp(&euFd%WD0~uI3iXH8C+c)VP&K3WovfpvNqLQdrSVJNSE=h<3-}qUh zziDl_A}$=27BE#KdKXymBFsEN>&-=w;VdUvIv3e?;9Xc0MVx`!j&)=_X}YLr zx@Iz*H1r16mzWvIH*bVPAEOKtu{{9G9f@ei5i}dL#3)0IlH5Ql_o@%*K zoTe*Zp&Sf6?21;nZ;r1yg&Z5(6lh=H*?Ndus+C7`9FAagF{C)n!Vq=LMq^9$+7+!V zig*e`1bVnqm@Qy$SfzVZ2y3;p6xNi&27D6N_pj8&L{&<3JiRz)M!n4io~9L>4h5gN zq`WHT)8bgpN71mt%`hOe8uaU>JH~9tT0$ZZD$odk*z2(?VHm(-N7PVqso=U2VtAO< zZ4gIeDYrROtmcNuJ*cbjV+2Kkb{*hGT@lm-hJ^7b2w9MZQ#hDmUPJ|2Pz+K)Bmo*Z zN3MH=D{9s|HP)yMbS!BCMUjH7K4`LNIx7%5vUwJ3exk2^Vq4b5CBotDH*&Mz{O z_wE!~p`~bCSs%q-sB;dq30Eo+K_iAbQ+F4%n6U$kMDq)CV*?*8n%PHd1rI|pcE>2u z%UCxJ=^9N_`cvpMe(Qh;wot?h_lV%2=?PVEC6k5>b*Ej|1NOE!CiTV5AdSC1(foUBJEJOU0 zgd`iW(`TM0J~%fqvPzfVUg@f~)B8T?Kh4Lg%%A_B~HiS2xbDl~>9Hg%qt zip5rf85&SpEjZB(JSvTI9E6yOHcu9nR~P{W>Ws;vVipUG?P7A`RmLu$9PzlQsX5kF zh*(8$0b{09Je(sdvM>Xlz>yr0^}L95wvR&2iAv3*;)0wONC?4tsXuv$atbz%3KIxO zwhq-#hu%W)AWVQ11xn~3FxVvnI{*6h@#Vp*_eZaR!P8{5;Nnp-r=~L4d~v+INEb3z zHC{RU_ln-d0X=Q`PvH1U28vlP^fD}qUgk2< zRyj+`yIjy;n?L-)X23eUIt69t0HSmeC>6AOn_l1NEPCzQUAu;dYe$P4p9zV~1Q5qc z`!#-CFW9O0jk%R%x4i+Yc%^M0Y&Q_1R|s912Dro1>1{(-fKB48khMBh)Duw%X8X#x zBn>>QW1(S-nOIreX6$Fm(II1j+y%-;wh&@}e!GR$AatIc9XXft8xR(w(P{?JQWS%Yd?-XLUclwEj+CjWRn2^!z=06P}pJ#cnK_i2W$=h%cdCH zmtj`Y2{K}kaT>KitdAtQgFVxtR@SivoV%q6rJjo7rQ{a&8Y~gvgeh99)mHgJZ*=mk z5Qiidj@lqxqVN^!KIlzy@h{^PK%Nn;NS6=~ow+*^dDJwuW~I(ioK0X`GYfQOGEmaH zUj~z~U}j9@EBjHuW%IN zmmvrEet=I16L&OUE%WQO9S!YkpD~D*V{Num=PY|)*lqYzd0jK_}cu11+R?mw|`D3XnhGNzUed@~xpj`ue!WfOB;7 zc#0zo&KG4!3(=eGMzCC~dHzUwEovA31`{m625je0J3JE@TL8}&=1hNa z9Kf9Ff`LnZznhq?R9Zh&Wu;UJb%+9+zWc7KEpDMW3V+vsQeC8I%Mzki!K6$|{siSp z*fG|^BvM37B~PG9WKbT$NS~)`FS*G!vA+Z;3)zRmmqr?sj4l=qMXaG@R8ZQ~{%%%P zQNvnL)2?b*jGJZTS9Yf9b737!Tt0^kD!o~P($dys?S9|~#4nff z73LYEUxoev5f9AJP-?aK9_OcM4Xhw!;gVquZv-ior?M8tJy9P8stb7nm2yA?6VW-= zpa@L94)<%=7Rj;2wms&>(83ULgR4=R+9nXDd2n@Q-bCp0rvG3F_3nML|%R8N3wgfV1aftJjQcIO&WO`43z!KWW%eS z;pm`Xn(eW*y-zs;E`w5}uf@)!&zu-_ZkcIh8)AC!qH-b)v6T#w0-cM9P26+yG2FMg z5>(l$;$FWGc3>EeNXNEXH6cMYO3To94Y2F=2ErW?V7i=YSg9mn#|8x&#_)gyy|XZg zi`hNH*a4P9>(ZXM5_LAYXSEx^>#B)BtrlUiyk@``!sO&LVk3Wj5RTV)nDE798d@#o za;WiiJ4*oBHoQ9ginQcWN$FDa#(XJGK+{xxU11oa4O9%OBxtd7X3i!>M|=i{91LNq zqC9rfBB@fU=)iB@O}j3NUcEaq-yZ$R9GqT$Jh~9wtEXSEu{&hDNd82-YYM+6YEwy= zJzv-xirI@48e<&|kz{#Nr7KcDhb48}pZFJWg|s{r>hFK+cmDpj0bLsL8UP;%{PhN5 zu|C9(9Ha@P6t$TiXGue;)K#Cs8zy@VsXje3kkB4jbHPOT*#+*_Mdpp}56O1$HopJ# z?z_$pyUTPZ&d&v$GF;zq^ZWMKneAL3eKV_6CEU zonGUafD^zDq+`J`Ds5cenJGI{uu$6o%_C#XB!} zapryx&k}&r%UMq&+${70kzW??h84Ho5kI0G)TL7+AOx!s#YBUiFiK;P#*+6662vP` z?7>EhE2iOeZm!z0sIPEpR4F$U`t}K>==}j)9ol1`B^5D%;4XMKbs&&>DrEaBMn(Wf9jJO)JbBk4mz~$aM0lLLjXWhoDXXLZ3 z6(OB~?D7zBSaKK%eiMmr>Xs@KWrB7`r&cO}6^%BF3ce5xBE?XVgsw01P;(fOk!ORS zwC_OdY|d)3Dl11(Mka2Pc_;aK=c^~sAN0j97uFr2soxe`SlR{b0Hj3SPxKjZAxb>! z6cPK}8z!{O3BaXAfXE<9&;>&XGh|maPXc<;siY3I*Km=6QNWbZOF04WW$g+)y!am? zJa->E-1NmbEFG`;j6gHUOCsKAqr9oFgYmyIVE5kvw@?9SO2pgT@`m?_8H?baoh@ke zPDaMN{kisdzZwApkVBXLUejbtx+Q4o6mY&wPUvD+*5KI&aAR;tFc$HktMpQ z7Gw}2vw)AM=PpkNZ62fSenC`>lrAZJ$ZN@QKz$(B1yGPv1`UGOI=E_-w%`_Lut|)h zHo|(k(*VW$@?xau+414YdFSfzoH{ei(wi`8n-ioUK$AD5Pw5i0!`O3RSc;|KO<^(( zt5L611F?iWiIEjY;0Bi3Z_ZQj%{o^ zfUhNSSQ#e)UO7fb#1T~d#+{s=O z8J4ZUbD?O+yqK>ZhN!?}9pafls{uZfy(fggOM3#Xq>0kuAHLnGZ=jWJ*?3B-jU^xx zxJm^YvNr*=7orJWTZersuirssG`Es4f+_>(D#XPpVB8&$dIwIcn3K3zR}5uadX0KG z=W87L1J+`^c*Az_5?}i60POp!LQ7c~3McSMGbA0pJaIa2dwk-u%9FNt41~9rv?xnK z)q*JEYj+SHN`E{O2b0i-!$hBNdLh$U7egc9(CCWiC}s%Mdyr1KAfz}1czvwRwh zyi`d^QwjBeuge=C_XQZeHkz(AO_YXdh?;dkhR^uEHk$Qo?fO(Q-z{8+!LLlw< z%i1IjxEH8`wEe(M!Rp~9_zoS&Q&(h13QY^c`+LgocRy`Rx?THrA29)Rt>N$D{jfcu zH$;Bi_2iD@nr^522@fE{ROV!k8KIkW=dx_^!E|N+`Jo>e2kPd-EerM+cRVEc17BN4eF~pe2EaR>OkNLnQ7$rS6GG$gUX+y zr9fT?=f4}UfLIiu5gkeNhg?6t6)kuJ88roQ;jUUW5IWH~K!Y0GsFfFA97L~5nxT;! z*_LTq_m9G{o|+RLg$u2-tdu*Unod$J8bUEhuEeca7*|fk*0@TEMUU!p*9a{|E$6mc zg#}aH$ktnJm9wU1;d3+@WB((FfNV5!0Ww1p-B?4iYgmpVY0axY-{3{4wj0#G1nTvE zZ0l0&f&9*W)X+!oe*VtgZnOKVySuA$AE^(l*se-{0u7NEfv#Gg>M&k>!mz{C?k73j^>gTr881L=@uRyy%%i>?P(6iz~= zTNnEq=9AfEf`Q@Czw$^Wl|w+FMRH5G2dsqSWEYBr9cVjrOP zMN3l?OFRV3=C3`>+Z2vk!Rfhf75|XM1a<-+$D$>+gV4MNm0to&kO)UCx_|K8qf=~x zxuJfE07?4ZQ)#v61H+t(vXoRreE|skt|&K6Q5y;*`v1m;S&x&NAejq`s6@ZNL+_+u z5NipnNu00=mPpBmpCyG;l}TBAjwVQOs!LKEfiqTg0isvxL4WOck>Wi(dkk$8LW;}j z2$J3)X>LMnwL#@GSkzMBa6M{xyD&w(s=>`_GFAyk$sC)aVci16v}=J}y~E~cP}3$# zFvH|_z|IR2rMW*a>dFZ#Vss5MTh2=eu_X2?%{JIozRYfUc(QZb$OMN!O!Ic*{{ek5 FYQZm4| literal 0 HcmV?d00001 diff --git a/.git.broken/objects/fd/6ecefd72451b9233c707a54f1dbc53673883e6 b/.git.broken/objects/fd/6ecefd72451b9233c707a54f1dbc53673883e6 new file mode 100644 index 0000000000000000000000000000000000000000..12b11e64307cb5822a43767d5924a403bc5281bc GIT binary patch literal 272 zcmV+r0q_2J0d0^`YlAQl$M@`~5T7@>S{-GNV^9Vg8|&EXhpZ0!sf{Z&wYV1K#63H_DY!@k5Fx%`P z%5a}j!panu8G&RvIk$~HG&mPL&JrJ20JHnk>G>l^EnK}z3iX<%x=tndr z6)S!4jt*__%P+R)y0+&Z9lGv7Uvh=V|D2AMdHu@?IxPhxG7l@s0AnTcb?2sn5*enn zfXV6oHC}?(OsaroA)HQb>d2b3=C~-ULS0P5R6viBa=s`aV)Gy`Kmj`1J+9Za(4{ z`1~1GHMrZqj}eBlk{sM)SfkZu=NX+iGdiJIEEG7_vI!dwPn?J@9bPd8Z*PsYXRK9< z6C#T?L-=iWcdM$ES0z{{A6FD<3)kq5Az?zYpzNIBZE;3f1RVFOWGYtVK=8WlfJCua z(wNb(%mhcU+VbZro*FOm^%;7Y;MwKX%`M`9^&Vl)5mQfOmwstxsa3}3HO@*E)JSc(i}ji+yKstQ-Q2pr{m+^{J^M z&ixRk{C>mw?Q8Wm341IkPJI{8#!F%s!T?W(Me_SUE|i|^7aA~&Sl2S7|c%*e6rmb)H{0Q=1^5_h$I=R zs1C5QbvSjUdNt{%6<0l{l~<{>Qn8R=d#KK#3+(I7ShejsdZsjeFlb-I3<9}snWL}$%YG*iXsf_$Gqy=7ttH7!4Fh z^~U`4glZhW!8d|~k$n$SD~E{C1u9fTgDTl#ycvBybZZBu(b+g?_F7yo+X<%F)^Onc z6q7U;vP6LbF1YnCm7*DJI|QkR;x0ju/dev/null || echo /usr/local/bin/tailscale)}" - : "${TAILSCALED_BIN:=$(command -v tailscaled 2>/dev/null || echo /usr/local/bin/tailscaled)}" + : "${TAILSCALE_BIN:=$(which tailscale 2>/dev/null || echo /usr/local/bin/tailscale)}" + : "${TAILSCALED_BIN:=$(which tailscaled 2>/dev/null || echo /usr/local/bin/tailscaled)}" # watchdog interval (seconds between forward health checks) : "${WATCHDOG_INTERVAL:=60}" diff --git a/kit-connect/kit-connect-0.1-0001.spk b/kit-connect/kit-connect-0.1-0001.spk index f2a7e533d14f1be48c8c4cd796d4963d07e49073..0ee3bd09fa5dd74e80e75c0d4fa9153932c0e513 100644 GIT binary patch delta 33209 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%0D)#P5@TLS`ezqA!E#XXDkIZBB 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 F{|5*|C~E)! diff --git a/kit-connect/wizard.sh b/kit-connect/wizard.sh index 60c189a..6dcc863 100755 --- a/kit-connect/wizard.sh +++ b/kit-connect/wizard.sh @@ -44,7 +44,7 @@ ok "Device ID: ${DEVICE_ID}" # ── Step 2: Check prerequisites ──────────────────────────────── step "Checking prerequisites..." for cmd in curl ssh ssh-keygen; do - command -v "$cmd" >/dev/null 2>&1 || { echo " ✗ Missing: $cmd"; exit 1; } + which "$cmd" >/dev/null 2>&1 || { echo " ✗ Missing: $cmd"; exit 1; } done ok "All prerequisites found (curl, ssh)" diff --git a/tests/bats/composite.bats b/tests/bats/composite.bats new file mode 100644 index 0000000..d9b686f --- /dev/null +++ b/tests/bats/composite.bats @@ -0,0 +1,23 @@ +setup() { load '../../package/kit-busrouter/files/usr/lib/busrouter/lib-score.sh'; } + +@test "composite weights sum to a 0-100 score" { + # latency35 dl25 up10 jit10 loss10 sig10 ; all metrics perfect -> 100 + run score_composite 5 25 12.5 1 0 -65 + [ "$output" -eq 100 ] +} +@test "composite all-worst -> 0" { + run score_composite 200 0.5 0.5 50 40 -95 + [ "$output" -eq 0 ] +} +@test "rolling average of 3 samples" { + run rolling_avg 90 60 30 # -> 60 + [ "$output" -eq 60 ] +} +@test "rolling average rounds half-up" { + run rolling_avg 100 100 99 # 299/3 = 99.67 -> 100 + [ "$output" -eq 100 ] +} +@test "signal weight redistributes when no modem (signal='')" { + run score_composite 5 25 12.5 1 0 "" # still 100, sig weight moved to latency/throughput + [ "$output" -eq 100 ] +} diff --git a/tests/bats/daemon.bats b/tests/bats/daemon.bats new file mode 100644 index 0000000..020c04a --- /dev/null +++ b/tests/bats/daemon.bats @@ -0,0 +1,71 @@ +LIBDIR="$(cd "$BATS_TEST_DIRNAME/../.."/package/kit-busrouter/files/usr/lib/busrouter && pwd)" + +setup() { + export LIB_DIR="$LIBDIR" + export STATE_DIR="$BATS_TMPDIR/daemon_state" + rm -rf "$STATE_DIR" + mkdir -p "$STATE_DIR" + export SCORE_SAMPLES=3 + export CELL_IFACE=rmnet_mhi0 CELL_MBR=modem_0001 + export ETH_IFACE=eth0 ETH_MBR=wan + export INTERVAL=30 + # Load all libs (daemon.sh's while loop is guarded by case "${0##*/}" so safe to load) + load '../../package/kit-busrouter/files/usr/lib/busrouter/lib-decide.sh' + load '../../package/kit-busrouter/files/usr/lib/busrouter/lib-score.sh' + load '../../package/kit-busrouter/files/usr/lib/busrouter/metrics-net.sh' + load '../../package/kit-busrouter/files/usr/lib/busrouter/speedtest.sh' + load '../../package/kit-busrouter/files/usr/lib/busrouter/modem-sim.sh' + load '../../package/kit-busrouter/files/usr/lib/busrouter/starlink.sh' + load '../../package/kit-busrouter/files/usr/lib/busrouter/wan-mwan.sh' + load '../../package/kit-busrouter/files/usr/lib/busrouter/telemetry.sh' + load '../../package/kit-busrouter/files/usr/lib/busrouter/daemon.sh' +} + +@test "daemon.sh loads without error and does not start loop" { + run true + [ "$status" -eq 0 ] + # If we reach here, the load in setup() did not hang -> loop guard works +} + +@test "_score_history_update: primes from default 50 50 50 and appends new score" { + run _score_history_update "modem_0001" 70 + [ "$status" -eq 0 ] + echo "$output" | grep -qE '^50 50 70$' +} + +@test "_score_history_update: keeps last SCORE_SAMPLES scores only" { + export SCORE_SAMPLES=3 + _score_history_update "modem_0001" 60 >/dev/null + _score_history_update "modem_0001" 70 >/dev/null + _score_history_update "modem_0001" 80 >/dev/null + run _score_history_update "modem_0001" 90 + [ "$status" -eq 0 ] + # Should be "70 80 90" (last 3 of: 50 50 50 60 70 80 90) + echo "$output" | grep -qE '^70 80 90$' +} + +@test "_collect_wan: writes metric and score files" { + net_probe_iface() { echo "20 5 0"; } + speed_test_due() { return 0; } + speed_test_iface() { echo "50.0 10.0"; } + score_composite() { echo "75"; } + rolling_avg() { echo "72"; } + + run _collect_wan "eth0" "wan" + [ "$status" -eq 0 ] + [ -f "${STATE_DIR}/metric_wan" ] + [ -f "${STATE_DIR}/score_wan" ] + score=$(cat "${STATE_DIR}/score_wan") + [ "$score" -eq 72 ] +} + +@test "_collect_wan: fail-open when net_probe_iface returns error" { + net_probe_iface() { return 1; } + speed_test_due() { return 1; } + score_composite() { echo "0"; } + rolling_avg() { echo "0"; } + + run _collect_wan "rmnet_mhi0" "modem_0001" "-99" + [ "$status" -eq 0 ] + [ -f "${STATE_DIR}/metric_modem_0001" ] +} diff --git a/tests/bats/decide.bats b/tests/bats/decide.bats new file mode 100644 index 0000000..0548cf0 --- /dev/null +++ b/tests/bats/decide.bats @@ -0,0 +1,21 @@ +setup(){ load '../../package/kit-busrouter/files/usr/lib/busrouter/lib-decide.sh'; } + +@test "equal scores -> 50/50" { run wan_weight 70 70; [ "$output" -eq 50 ]; } +# 50 + 2*(80-60) = 90 -> clamp to 80 (max). So 80 is the true formula result. +@test "weight = 50 + 2*diff, rounded to 10" { run wan_weight 80 60; [ "$output" -eq 80 ]; } +@test "clamped to 20..80 (high)" { run wan_weight 100 0; [ "$output" -eq 80 ]; } +@test "clamped to 20..80 (low)" { run wan_weight 0 100; [ "$output" -eq 20 ]; } +# 50 + 2*(58-55) = 56 -> round to nearest 10 -> 60 +@test "rounds to nearest 10" { run wan_weight 58 55; [ "$output" -eq 60 ]; } +@test "no change if within hysteresis band" { run weight_changed 50 54; [ "$status" -eq 1 ]; } +@test "change if crosses a 10% step" { run weight_changed 50 65; [ "$status" -eq 0 ]; } +@test "change is symmetric (decrease)" { run weight_changed 60 50; [ "$status" -eq 0 ]; } +@test "sim switch only after N bad cycles" { run sim_should_switch 3 3; [ "$status" -eq 0 ]; } +@test "sim no switch before threshold" { run sim_should_switch 2 3; [ "$status" -eq 1 ]; } + +@test "gw_verdict: 3/3 -> alive" { run gw_verdict 1 1 1; [ "$status" -eq 0 ]; } +@test "gw_verdict: 2/3 no http -> alive" { run gw_verdict 1 1 0; [ "$status" -eq 0 ]; } +@test "gw_verdict: 2/3 no ping -> alive" { run gw_verdict 1 0 1; [ "$status" -eq 0 ]; } +@test "gw_verdict: 2/3 no dns -> alive" { run gw_verdict 0 1 1; [ "$status" -eq 0 ]; } +@test "gw_verdict: 1/3 -> dead" { run gw_verdict 1 0 0; [ "$status" -eq 1 ]; } +@test "gw_verdict: 0/3 -> dead" { run gw_verdict 0 0 0; [ "$status" -eq 1 ]; } diff --git a/tests/bats/modem.bats b/tests/bats/modem.bats new file mode 100644 index 0000000..40eacc0 --- /dev/null +++ b/tests/bats/modem.bats @@ -0,0 +1,125 @@ +FIXTURES="$BATS_TEST_DIRNAME/../fixtures" + +LIBDIR="$(cd "$BATS_TEST_DIRNAME/../.."/package/kit-busrouter/files/usr/lib/busrouter && pwd)" + +setup() { + export LIB_DIR="$LIBDIR" + load '../../package/kit-busrouter/files/usr/lib/busrouter/lib-decide.sh' + load '../../package/kit-busrouter/files/usr/lib/busrouter/modem-sim.sh' +} + +@test "modem_signal ubus parse: rsrp=-96 rsrq=-10 sinr=13" { + run _modem_parse_ubus < "$FIXTURES/modem-signal-ubus.json" + [ "$status" -eq 0 ] + rsrp=$(echo "$output" | awk '{print $1}') + rsrq=$(echo "$output" | awk '{print $2}') + sinr=$(echo "$output" | awk '{print $3}') + [ "$rsrp" -eq -96 ] + [ "$rsrq" -eq -10 ] + [ "$sinr" -eq 13 ] +} + +@test "modem_signal AT parse: rsrp=-97 rsrq=-10 sinr=14 (rsrp rsrq sinr order)" { + run _modem_parse_at < "$FIXTURES/modem-signal-at.txt" + [ "$status" -eq 0 ] + rsrp=$(echo "$output" | awk '{print $1}') + rsrq=$(echo "$output" | awk '{print $2}') + sinr=$(echo "$output" | awk '{print $3}') + [ "$rsrp" -eq -97 ] + [ "$rsrq" -eq -10 ] + [ "$sinr" -eq 14 ] +} + +@test "modem_signal ubus parse: empty input exits 1" { + run _modem_parse_ubus < /dev/null + [ "$status" -ne 0 ] + [ -z "$output" ] +} + +@test "modem_signal AT parse: empty input exits 1" { + run _modem_parse_at < /dev/null + [ "$status" -ne 0 ] + [ -z "$output" ] +} + +@test "modem_sim_switch: rejects invalid slot" { + export MODEM_AT_CMD=/bin/true MODEM_BUS=1-1.2 + run modem_sim_switch 3 + [ "$status" -eq 1 ] +} + +@test "modem_sim_switch: accepts slot 1" { + # Stub gl_modem to emit 'OK' and stub ifdown/ifup + mkdir -p "$BATS_TMPDIR/stub" + printf '#!/bin/sh +echo OK +' > "$BATS_TMPDIR/stub/gl_modem" + printf '#!/bin/sh +exit 0 +' > "$BATS_TMPDIR/stub/ifdown" + printf '#!/bin/sh +exit 0 +' > "$BATS_TMPDIR/stub/ifup" + chmod +x "$BATS_TMPDIR/stub/gl_modem" "$BATS_TMPDIR/stub/ifdown" "$BATS_TMPDIR/stub/ifup" + export PATH="$BATS_TMPDIR/stub:$PATH" + export MODEM_AT_CMD=gl_modem MODEM_BUS=1-1.2 + run modem_sim_switch 1 + [ "$status" -eq 0 ] +} + +# --- Task 4.2: SIM auto-switch --- + +_sim_make_stub() { + mkdir -p "$BATS_TMPDIR/sim_stub" + printf '#!/bin/sh +case "$*" in *QUIMSLOT\?*) echo "+QUIMSLOT: 1"; echo "OK" ;; *QUIMSLOT=*) echo "OK" ;; *) echo "OK" ;; esac +' > "$BATS_TMPDIR/sim_stub/gl_modem" + printf '#!/bin/sh +exit 0 +' > "$BATS_TMPDIR/sim_stub/ifdown" + printf '#!/bin/sh +exit 0 +' > "$BATS_TMPDIR/sim_stub/ifup" + chmod +x "$BATS_TMPDIR/sim_stub/gl_modem" "$BATS_TMPDIR/sim_stub/ifdown" "$BATS_TMPDIR/sim_stub/ifup" + export PATH="$BATS_TMPDIR/sim_stub:$PATH" + export MODEM_AT_CMD=gl_modem MODEM_BUS=1-1.2 + export SIM_STATE_DIR="$BATS_TMPDIR/simstate" + export SIM_SWITCH_RSRP=-80 # threshold above actual -99 bench value -> easy to trigger + export SIM_SWITCH_CYCLES=3 + export SIM_SWITCH_COOLDOWN=3600 + rm -rf "$BATS_TMPDIR/simstate" + mkdir -p "$BATS_TMPDIR/simstate" +} + +@test "sim_check: good signal resets counter and does not switch" { + _sim_make_stub + # First call with bad signal to set counter to 1 + sim_check_and_switch -90 || true + bad=$(cat "$SIM_STATE_DIR/sim_bad_cycles" 2>/dev/null || echo 0) + [ "$bad" -eq 1 ] + # Now good signal resets + sim_check_and_switch -70 || true + bad=$(cat "$SIM_STATE_DIR/sim_bad_cycles" 2>/dev/null || echo 0) + [ "$bad" -eq 0 ] +} + +@test "sim_check: triggers switch after SIM_SWITCH_CYCLES bad cycles" { + _sim_make_stub + # 2 bad cycles -> no switch yet + sim_check_and_switch -90 || true + sim_check_and_switch -90 || true + [ ! -f "$SIM_STATE_DIR/sim_last_switch" ] + # 3rd bad cycle -> switch triggered + run sim_check_and_switch -90 + [ "$status" -eq 0 ] + [ -f "$SIM_STATE_DIR/sim_last_switch" ] +} + +@test "sim_check: cooldown prevents switch within SIM_SWITCH_COOLDOWN" { + _sim_make_stub + export SIM_SWITCH_COOLDOWN=3600 + # Pre-seed a recent switch time + date +%s > "$SIM_STATE_DIR/sim_last_switch" + run sim_check_and_switch -90 + [ "$status" -eq 1 ] # blocked by cooldown +} diff --git a/tests/bats/net.bats b/tests/bats/net.bats new file mode 100644 index 0000000..311a9dd --- /dev/null +++ b/tests/bats/net.bats @@ -0,0 +1,20 @@ +FIXTURES="$BATS_TEST_DIRNAME/../../tests/fixtures" +setup() { load '../../package/kit-busrouter/files/usr/lib/busrouter/metrics-net.sh'; } + +@test "net: zero-jitter no-loss" { + run _net_parse_ping < "$FIXTURES/ping-ok.txt" + [ "$status" -eq 0 ] + [ "$output" = "15.0 0.0 0" ] +} +@test "net: jitter and packet loss" { + run _net_parse_ping < "$FIXTURES/ping-loss.txt" + [ "$output" = "15.0 5.0 20" ] +} +@test "net: 100pct loss gives 0 0 100" { + run _net_parse_ping < "$FIXTURES/ping-timeout.txt" + [ "$output" = "0 0 100" ] +} +@test "net: partial output defaults loss to 100" { + run _net_parse_ping < "$FIXTURES/ping-partial.txt" + [ "$output" = "20.0 0.0 100" ] +} diff --git a/tests/bats/score.bats b/tests/bats/score.bats new file mode 100644 index 0000000..dc8e45e --- /dev/null +++ b/tests/bats/score.bats @@ -0,0 +1,16 @@ +setup() { load '../../package/kit-busrouter/files/usr/lib/busrouter/lib-score.sh'; } + +@test "latency: 5ms scores 100" { run score_latency 5; [ "$output" -eq 100 ]; } +@test "latency: 200ms scores 0" { run score_latency 200; [ "$output" -eq 0 ]; } +@test "latency clamps below 0" { run score_latency 500; [ "$output" -eq 0 ]; } +@test "download: 25MB/s scores 100" { run score_download 25; [ "$output" -eq 100 ]; } +@test "download: 0.5MB/s scores 0" { run score_download 0.5; [ "$output" -eq 0 ]; } +@test "upload: 12.5MB/s scores 100" { run score_upload 12.5; [ "$output" -eq 100 ]; } +@test "upload: 0.5MB/s scores 0" { run score_upload 0.5; [ "$output" -eq 0 ]; } +@test "jitter: 1ms scores 100" { run score_jitter 1; [ "$output" -eq 100 ]; } +@test "jitter: 50ms scores 0" { run score_jitter 50; [ "$output" -eq 0 ]; } +@test "loss: 0% scores 100" { run score_loss 0; [ "$output" -eq 100 ]; } +@test "loss: 40% scores 0" { run score_loss 40; [ "$output" -eq 0 ]; } +@test "signal: -65dBm scores 100" { run score_signal -65; [ "$output" -eq 100 ]; } +@test "signal: -95dBm scores 0" { run score_signal -95; [ "$output" -eq 0 ]; } +@test "signal clamps above 100" { run score_signal -50; [ "$output" -eq 100 ]; } diff --git a/tests/bats/smoke.bats b/tests/bats/smoke.bats new file mode 100644 index 0000000..f5eb0d9 --- /dev/null +++ b/tests/bats/smoke.bats @@ -0,0 +1 @@ +@test "bats runs" { run true; [ "$status" -eq 0 ]; } diff --git a/tests/bats/speed.bats b/tests/bats/speed.bats new file mode 100644 index 0000000..284489f --- /dev/null +++ b/tests/bats/speed.bats @@ -0,0 +1,39 @@ +SPEED_STATE_DIR="$BATS_TMPDIR/busrouter" +setup() { + load '../../package/kit-busrouter/files/usr/lib/busrouter/speedtest.sh' + mkdir -p "$SPEED_STATE_DIR" + export SPEED_STATE_DIR +} +teardown() { rm -rf "$SPEED_STATE_DIR"; } + +@test "speed: CELL_METERED=1 skips cellular, emits 0 0" { + export CELL_METERED=1 CELLULAR_IFACE=rmnet_mhi0 + run speed_test_iface rmnet_mhi0 + [ "$status" -eq 0 ] + [ "$output" = "0 0" ] +} + +@test "speed: CELL_METERED=0 does not skip cellular (returns non 0 0)" { + export CELL_METERED=0 CELLULAR_IFACE=rmnet_mhi0 + run speed_test_iface rmnet_mhi0 + [ "$output" != "0 0" ] || [ "$status" -ne 0 ] +} + +@test "speed_test_due: no state file -> due (exit 0)" { + run speed_test_due eth0 + [ "$status" -eq 0 ] +} + +@test "speed_test_due: fresh state file -> not due (exit 1)" { + date +%s > "$SPEED_STATE_DIR/speed_last_eth0" + export SPEED_INTERVAL=3600 + run speed_test_due eth0 + [ "$status" -eq 1 ] +} + +@test "speed_test_due: old state file -> due (exit 0)" { + echo "0" > "$SPEED_STATE_DIR/speed_last_eth0" + export SPEED_INTERVAL=300 + run speed_test_due eth0 + [ "$status" -eq 0 ] +} diff --git a/tests/bats/starlink.bats b/tests/bats/starlink.bats new file mode 100644 index 0000000..3ca0943 --- /dev/null +++ b/tests/bats/starlink.bats @@ -0,0 +1,59 @@ +FIXTURES="$BATS_TEST_DIRNAME/../fixtures" + +setup() { + load '../../package/kit-busrouter/files/usr/lib/busrouter/starlink.sh' +} + +# Helper: run _starlink_parse on a fixture file +_parse_fixture() { + _starlink_parse < "$FIXTURES/$1" +} + +@test "starlink: online dish: lat=28 dl=200000000 obstructed=0 outage=0" { + run _parse_fixture starlink-online.json + [ "$status" -eq 0 ] + lat=$(echo "$output" | awk '{print $1}') + dl=$(echo "$output" | awk '{print $2}') + obs=$(echo "$output" | awk '{print $3}') + outage=$(echo "$output" | awk '{print $4}') + [ "$lat" -eq 28 ] + [ "$dl" -gt 100000000 ] + [ "$obs" -eq 0 ] + [ "$outage" -eq 0 ] +} + +@test "starlink: obstructed dish: obstructed=1" { + run _parse_fixture starlink-obstructed.json + [ "$status" -eq 0 ] + obs=$(echo "$output" | awk '{print $3}') + [ "$obs" -eq 1 ] +} + +@test "starlink: obstructed dish: fractionObstructed>0.01 sets obstructed=1" { + run _parse_fixture starlink-obstructed.json + [ "$status" -eq 0 ] + obs=$(echo "$output" | awk '{print $3}') + [ "$obs" -eq 1 ] +} + +@test "starlink: outage dish: outage=1" { + run _parse_fixture starlink-outage.json + [ "$status" -eq 0 ] + outage=$(echo "$output" | awk '{print $4}') + [ "$outage" -eq 1 ] +} + +@test "starlink: outage dish: dl=0 lat=0" { + run _parse_fixture starlink-outage.json + [ "$status" -eq 0 ] + lat=$(echo "$output" | awk '{print $1}') + dl=$(echo "$output" | awk '{print $2}') + [ "$lat" -eq 0 ] + [ "$dl" -eq 0 ] +} + +@test "starlink: grpcurl absent returns exit 1" { + export GRPCURL=/nonexistent/grpcurl + run starlink_status + [ "$status" -eq 1 ] +} diff --git a/tests/bats/telemetry-synology.bats b/tests/bats/telemetry-synology.bats new file mode 100644 index 0000000..9c2d92f --- /dev/null +++ b/tests/bats/telemetry-synology.bats @@ -0,0 +1,225 @@ +# telemetry-synology.bats — Tests for Synology telemetry agent + +LIBDIR="$(cd "$BATS_TEST_DIRNAME/../.."/package/kit-busrouter/files/usr/lib/busrouter && pwd)" + +setup() { + export LIB_DIR="$LIBDIR" + export AIWANBAL_STATE_DIR="$BATS_TMPDIR/aiwanbal" + export TELEMETRY_BUFFER_DIR="$BATS_TMPDIR/telemetry-buf" + export TELEMETRY_HUB="http://10.88.0.1:8080/api/telemetry" + rm -rf "$AIWANBAL_STATE_DIR" "$TELEMETRY_BUFFER_DIR" + mkdir -p "$AIWANBAL_STATE_DIR" + + # Seed minimal aiwanbal state for collection tests + printf '85\n' > "$AIWANBAL_STATE_DIR/wan1_score_avg" + printf '15\n' > "$AIWANBAL_STATE_DIR/wan1_latency" + printf '50000000\n' > "$AIWANBAL_STATE_DIR/wan1_throughput" # 50 Mbps + printf '10000000\n' > "$AIWANBAL_STATE_DIR/wan1_upload" + printf '2\n' > "$AIWANBAL_STATE_DIR/wan1_jitter" + printf '0\n' > "$AIWANBAL_STATE_DIR/wan1_packet_loss" + printf -- '-80\n' > "$AIWANBAL_STATE_DIR/wan1_rsrp" + printf -- '-12\n' > "$AIWANBAL_STATE_DIR/wan1_rsrq" + printf '8\n' > "$AIWANBAL_STATE_DIR/wan1_sinr" + printf '5G-NR\n' > "$AIWANBAL_STATE_DIR/wan1_technology" + printf 'eyeride\n' > "$AIWANBAL_STATE_DIR/wan1_modem_type" + + printf '70\n' > "$AIWANBAL_STATE_DIR/wan2_score_avg" + printf '25\n' > "$AIWANBAL_STATE_DIR/wan2_latency" + printf '30000000\n' > "$AIWANBAL_STATE_DIR/wan2_throughput" + printf '5000000\n' > "$AIWANBAL_STATE_DIR/wan2_upload" + printf '5\n' > "$AIWANBAL_STATE_DIR/wan2_jitter" + printf '1\n' > "$AIWANBAL_STATE_DIR/wan2_packet_loss" + printf -- '-90\n' > "$AIWANBAL_STATE_DIR/wan2_rsrp" + printf 'generic\n' > "$AIWANBAL_STATE_DIR/wan2_modem_type" + + printf 'active\n' > "$AIWANBAL_STATE_DIR/wan0_mode" + + # Fake device identity + mkdir -p /etc/busrouter + printf 'B0042\n' > /etc/busrouter/device-id + printf '1.0\n' > /etc/busrouter/version + + # Load the library under test + load '../../package/kit-busrouter/files/usr/lib/busrouter/telemetry-synology.sh' +} + +teardown() { + rm -rf "$AIWANBAL_STATE_DIR" "$TELEMETRY_BUFFER_DIR" + rm -f /etc/busrouter/device-id /etc/busrouter/version +} + +# ── Data collection ────────────────────────────────────────────────────────────── + +@test "telemetry_synology_collect: output contains required JSON keys" { + run telemetry_synology_collect + [ "$status" -eq 0 ] + echo "$output" | grep -q '"device_id"' + echo "$output" | grep -q '"timestamp"' + echo "$output" | grep -q '"uptime"' + echo "$output" | grep -q '"version"' + echo "$output" | grep -q '"platform":"synology"' + echo "$output" | grep -q '"gps"' + echo "$output" | grep -q '"wan"' + echo "$output" | grep -q '"wan1"' + echo "$output" | grep -q '"wan2"' + echo "$output" | grep -q '"starlink"' + echo "$output" | grep -q '"sel_primary"' +} + +@test "telemetry_synology_collect: device_id from identity file" { + run telemetry_synology_collect + [ "$status" -eq 0 ] + echo "$output" | grep -q '"device_id":"B0042"' +} + +@test "telemetry_synology_collect: falls back to hostname when identity file missing" { + rm -f /etc/busrouter/device-id + run telemetry_synology_collect + [ "$status" -eq 0 ] + # Should contain a device_id (whatever hostname returns) + echo "$output" | grep -q '"device_id"' +} + +@test "telemetry_synology_collect: handles missing state files gracefully" { + rm -rf "$AIWANBAL_STATE_DIR" + mkdir -p "$AIWANBAL_STATE_DIR" + # No state files at all — should still produce valid JSON + run telemetry_synology_collect + [ "$status" -eq 0 ] + echo "$output" | grep -q '"wan1"' + echo "$output" | grep -q '"wan2"' +} + +@test "telemetry_synology_collect: sel_primary is wan1 in active mode" { + printf 'active\n' > "$AIWANBAL_STATE_DIR/wan0_mode" + run telemetry_synology_collect + [ "$status" -eq 0 ] + echo "$output" | grep -q '"sel_primary":"wan1"' +} + +@test "telemetry_synology_collect: sel_primary is wan2 in failover when wan2 up" { + printf 'failover\n' > "$AIWANBAL_STATE_DIR/wan0_mode" + printf 'up\n' > "$AIWANBAL_STATE_DIR/wan2_state" + run telemetry_synology_collect + [ "$status" -eq 0 ] + echo "$output" | grep -q '"sel_primary":"wan2"' +} + +@test "telemetry_synology_collect: wan JSON includes cellular metadata" { + run telemetry_synology_collect + [ "$status" -eq 0 ] + echo "$output" | grep -q '"rsrp_dbm"' + echo "$output" | grep -q '"technology"' + echo "$output" | grep -q '"carrier"' + echo "$output" | grep -q '"5G-NR"' +} + +@test "telemetry_synology_collect: throughput converted from B/s to Mbps" { + run telemetry_synology_collect + [ "$status" -eq 0 ] + # 50000000 B/s = ~400 Mbps → should appear as "dl_mbps":400.0 or similar + echo "$output" | grep -q '"dl_mbps"' +} + +@test "telemetry_synology_collect: gps is null when Eyeride unavailable" { + # Without EYERIDE_PASSWORD, eyeride_gps returns 1 → gps fields are null + unset EYERIDE_PASSWORD + run telemetry_synology_collect + [ "$status" -eq 0 ] + echo "$output" | grep -q '"lat":null' + echo "$output" | grep -q '"lon":null' + echo "$output" | grep -q '"fix":null' +} + +# ── Buffering + POST ───────────────────────────────────────────────────────────── + +@test "telemetry_synology_send: buffers payload when curl fails" { + mkdir -p "$BATS_TMPDIR/tel_stub" + printf '#!/bin/sh\nexit 7\n' > "$BATS_TMPDIR/tel_stub/curl" + chmod +x "$BATS_TMPDIR/tel_stub/curl" + export PATH="$BATS_TMPDIR/tel_stub:$PATH" + export TELEMETRY_BUFFER_DIR="$BATS_TMPDIR/buf_test" + rm -rf "$TELEMETRY_BUFFER_DIR" + + run telemetry_synology_send + [ -d "$TELEMETRY_BUFFER_DIR" ] + buf_count=$(ls "$TELEMETRY_BUFFER_DIR"/*.json 2>/dev/null | wc -l) + [ "$buf_count" -ge 1 ] +} + +@test "telemetry_synology_flush: posts and removes buffered file on success" { + mkdir -p "$BATS_TMPDIR/tel_stub2" + printf '#!/bin/sh\necho 200\n' > "$BATS_TMPDIR/tel_stub2/curl" + chmod +x "$BATS_TMPDIR/tel_stub2/curl" + export PATH="$BATS_TMPDIR/tel_stub2:$PATH" + export TELEMETRY_BUFFER_DIR="$BATS_TMPDIR/flush_test" + mkdir -p "$TELEMETRY_BUFFER_DIR" + echo '{"test":1}' > "$TELEMETRY_BUFFER_DIR/1234567890_test.json" + + run telemetry_synology_flush + [ "$status" -eq 0 ] + [ ! -f "$TELEMETRY_BUFFER_DIR/1234567890_test.json" ] +} + +@test "telemetry_synology_flush: stops on first failure" { + mkdir -p "$BATS_TMPDIR/tel_stub3" + # curl that fails on second call + printf '#!/bin/sh\nif [ -f /tmp/first_done ]; then exit 7; fi\ntouch /tmp/first_done; echo 200\n' > "$BATS_TMPDIR/tel_stub3/curl" + chmod +x "$BATS_TMPDIR/tel_stub3/curl" + export PATH="$BATS_TMPDIR/tel_stub3:$PATH" + export TELEMETRY_BUFFER_DIR="$BATS_TMPDIR/flush_fail" + rm -f /tmp/first_done + mkdir -p "$TELEMETRY_BUFFER_DIR" + echo '{"test":1}' > "$TELEMETRY_BUFFER_DIR/1111111111_a.json" + echo '{"test":2}' > "$TELEMETRY_BUFFER_DIR/2222222222_b.json" + + run telemetry_synology_flush + [ "$status" -ne 0 ] + # First file should be deleted, second should remain + [ ! -f "$TELEMETRY_BUFFER_DIR/1111111111_a.json" ] + [ -f "$TELEMETRY_BUFFER_DIR/2222222222_b.json" ] + rm -f /tmp/first_done +} + +# ── WAN JSON fragment ──────────────────────────────────────────────────────────── + +@test "_synology_wan_json: produces valid JSON fragment" { + run _synology_wan_json 1 + [ "$status" -eq 0 ] + # Should be a valid JSON object (starts with {, ends with }) + echo "$output" | grep -q '^{' + echo "$output" | grep -q '}$' + echo "$output" | grep -q '"score"' + echo "$output" | grep -q '"latency_ms"' + echo "$output" | grep -q '"carrier"' +} + +@test "_synology_wan_json: defaults score to 0 when file missing" { + rm -f "$AIWANBAL_STATE_DIR/wan1_score_avg" + run _synology_wan_json 1 + [ "$status" -eq 0 ] + echo "$output" | grep -q '"score":0' +} + +@test "_synology_wan_json: modem type maps to carrier name" { + printf 'peplink\n' > "$AIWANBAL_STATE_DIR/wan1_modem_type" + run _synology_wan_json 1 + [ "$status" -eq 0 ] + echo "$output" | grep -q '"carrier":"Peplink"' +} + +# ── eyeride_gps ────────────────────────────────────────────────────────────────── + +@test "eyeride_gps: returns 1 when no password set" { + unset EYERIDE_PASSWORD + run eyeride_gps + [ "$status" -ne 0 ] +} + +@test "eyeride_gps: returns 1 when eyeride unreachable" { + export EYERIDE_PASSWORD="test" + export EYERIDE_IP="192.0.2.1" # TEST-NET-1 — guaranteed unreachable + export EYERIDE_PORT="9999" + run eyeride_gps + [ "$status" -ne 0 ] +} diff --git a/tests/bats/telemetry.bats b/tests/bats/telemetry.bats new file mode 100644 index 0000000..3075780 --- /dev/null +++ b/tests/bats/telemetry.bats @@ -0,0 +1,73 @@ +FIXTURES="$BATS_TEST_DIRNAME/../fixtures" + +LIBDIR="$(cd "$BATS_TEST_DIRNAME/../.."/package/kit-busrouter/files/usr/lib/busrouter && pwd)" + +setup() { + export LIB_DIR="$LIBDIR" + load '../../package/kit-busrouter/files/usr/lib/busrouter/telemetry.sh' +} + +@test "gps_fix parse: 3D fix returns lat lon fix_quality=3" { + run _gps_parse < "$FIXTURES/gps-fix.txt" + [ "$status" -eq 0 ] + lat=$(echo "$output" | awk '{print $1}') + lon=$(echo "$output" | awk '{print $2}') + fix=$(echo "$output" | awk '{print $3}') + [ "$lat" = "40.712776" ] + [ "$lon" = "-74.005974" ] + [ "$fix" -eq 3 ] +} + +@test "gps_fix parse: no-fix response exits 1" { + run _gps_parse < "$FIXTURES/gps-nofix.txt" + [ "$status" -ne 0 ] + [ -z "$output" ] +} + +@test "gps_fix parse: empty input exits 1" { + run _gps_parse < /dev/null + [ "$status" -ne 0 ] + [ -z "$output" ] +} + +# --- Task 5.2: telemetry collect + POST --- + +@test "telemetry_collect: output contains required JSON keys" { + run telemetry_collect + [ "$status" -eq 0 ] + echo "$output" | grep -q '"device_id"' + echo "$output" | grep -q '"timestamp"' + echo "$output" | grep -q '"gps"' + echo "$output" | grep -q '"wan"' + echo "$output" | grep -q '"starlink"' + echo "$output" | grep -q '"sim_slot"' + echo "$output" | grep -q '"uptime"' +} + +@test "telemetry_send: buffers payload when curl fails" { + mkdir -p "$BATS_TMPDIR/tel_stub" + printf '#!/bin/sh\nexit 7\n' > "$BATS_TMPDIR/tel_stub/curl" + chmod +x "$BATS_TMPDIR/tel_stub/curl" + export PATH="$BATS_TMPDIR/tel_stub:$PATH" + export TELEMETRY_HUB="http://10.88.0.1:8080/api/telemetry" + export TELEMETRY_BUFFER_DIR="$BATS_TMPDIR/tel_buf" + rm -rf "$TELEMETRY_BUFFER_DIR" + run telemetry_send + [ -d "$TELEMETRY_BUFFER_DIR" ] + buf_count=$(ls "$TELEMETRY_BUFFER_DIR"/*.json 2>/dev/null | wc -l) + [ "$buf_count" -ge 1 ] +} + +@test "telemetry_flush: posts and removes buffered file on success" { + mkdir -p "$BATS_TMPDIR/tel_stub2" + printf '#!/bin/sh\necho 200\n' > "$BATS_TMPDIR/tel_stub2/curl" + chmod +x "$BATS_TMPDIR/tel_stub2/curl" + export PATH="$BATS_TMPDIR/tel_stub2:$PATH" + export TELEMETRY_HUB="http://10.88.0.1:8080/api/telemetry" + export TELEMETRY_BUFFER_DIR="$BATS_TMPDIR/tel_flush_buf" + mkdir -p "$TELEMETRY_BUFFER_DIR" + echo '{"test":1}' > "$TELEMETRY_BUFFER_DIR/1234567890_test.json" + run telemetry_flush + [ "$status" -eq 0 ] + [ ! -f "$TELEMETRY_BUFFER_DIR/1234567890_test.json" ] +} diff --git a/tests/fixtures/gps-fix.txt b/tests/fixtures/gps-fix.txt new file mode 100644 index 0000000..7dd98cd --- /dev/null +++ b/tests/fixtures/gps-fix.txt @@ -0,0 +1,2 @@ ++QGPSLOC: 154321.000,40.712776,-74.005974,1.1,10.2,3,0.00,0.0,0.0,010124,08 +OK diff --git a/tests/fixtures/gps-nofix.txt b/tests/fixtures/gps-nofix.txt new file mode 100644 index 0000000..e3271d3 --- /dev/null +++ b/tests/fixtures/gps-nofix.txt @@ -0,0 +1 @@ ++CME ERROR: 516 diff --git a/tests/fixtures/modem-signal-at.txt b/tests/fixtures/modem-signal-at.txt new file mode 100644 index 0000000..12df374 --- /dev/null +++ b/tests/fixtures/modem-signal-at.txt @@ -0,0 +1,2 @@ ++QCSQ: "NR5G",-97,14,-10 +OK diff --git a/tests/fixtures/modem-signal-ubus.json b/tests/fixtures/modem-signal-ubus.json new file mode 100644 index 0000000..9765514 --- /dev/null +++ b/tests/fixtures/modem-signal-ubus.json @@ -0,0 +1,7 @@ +{ + "signals": [{ + "sinr": 13, "slot": 1, "network_type": "NR5G-SA", + "timestamp": 1782917019, "strength": 4, + "rsrp": -96, "rsrq": -10, "mode": 5 + }] +} diff --git a/tests/fixtures/ping-loss.txt b/tests/fixtures/ping-loss.txt new file mode 100644 index 0000000..f69af7f --- /dev/null +++ b/tests/fixtures/ping-loss.txt @@ -0,0 +1,13 @@ +PING 1.1.1.1 (1.1.1.1): 56 data bytes +64 bytes from 1.1.1.1: seq=0 ttl=55 time=10.0 ms +64 bytes from 1.1.1.1: seq=1 ttl=55 time=20.0 ms +64 bytes from 1.1.1.1: seq=2 ttl=55 time=10.0 ms +64 bytes from 1.1.1.1: seq=3 ttl=55 time=20.0 ms +64 bytes from 1.1.1.1: seq=4 ttl=55 time=10.0 ms +64 bytes from 1.1.1.1: seq=5 ttl=55 time=20.0 ms +64 bytes from 1.1.1.1: seq=6 ttl=55 time=10.0 ms +64 bytes from 1.1.1.1: seq=7 ttl=55 time=20.0 ms + +--- 1.1.1.1 ping statistics --- +10 packets transmitted, 8 packets received, 20% packet loss +round-trip min/avg/max = 10.0/15.0/20.0 ms diff --git a/tests/fixtures/ping-ok.txt b/tests/fixtures/ping-ok.txt new file mode 100644 index 0000000..215f59e --- /dev/null +++ b/tests/fixtures/ping-ok.txt @@ -0,0 +1,15 @@ +PING 1.1.1.1 (1.1.1.1): 56 data bytes +64 bytes from 1.1.1.1: seq=0 ttl=55 time=15.0 ms +64 bytes from 1.1.1.1: seq=1 ttl=55 time=15.0 ms +64 bytes from 1.1.1.1: seq=2 ttl=55 time=15.0 ms +64 bytes from 1.1.1.1: seq=3 ttl=55 time=15.0 ms +64 bytes from 1.1.1.1: seq=4 ttl=55 time=15.0 ms +64 bytes from 1.1.1.1: seq=5 ttl=55 time=15.0 ms +64 bytes from 1.1.1.1: seq=6 ttl=55 time=15.0 ms +64 bytes from 1.1.1.1: seq=7 ttl=55 time=15.0 ms +64 bytes from 1.1.1.1: seq=8 ttl=55 time=15.0 ms +64 bytes from 1.1.1.1: seq=9 ttl=55 time=15.0 ms + +--- 1.1.1.1 ping statistics --- +10 packets transmitted, 10 packets received, 0% packet loss +round-trip min/avg/max = 15.0/15.0/15.0 ms diff --git a/tests/fixtures/ping-partial.txt b/tests/fixtures/ping-partial.txt new file mode 100644 index 0000000..0803325 --- /dev/null +++ b/tests/fixtures/ping-partial.txt @@ -0,0 +1,6 @@ +PING 1.1.1.1 (1.1.1.1): 56 data bytes +64 bytes from 1.1.1.1: seq=0 ttl=55 time=20.0 ms +64 bytes from 1.1.1.1: seq=1 ttl=55 time=20.0 ms +64 bytes from 1.1.1.1: seq=2 ttl=55 time=20.0 ms +64 bytes from 1.1.1.1: seq=3 ttl=55 time=20.0 ms +64 bytes from 1.1.1.1: seq=4 ttl=55 time=20.0 ms diff --git a/tests/fixtures/ping-timeout.txt b/tests/fixtures/ping-timeout.txt new file mode 100644 index 0000000..d777b59 --- /dev/null +++ b/tests/fixtures/ping-timeout.txt @@ -0,0 +1,4 @@ +PING 1.1.1.1 (1.1.1.1): 56 data bytes + +--- 1.1.1.1 ping statistics --- +10 packets transmitted, 0 packets received, 100% packet loss diff --git a/tests/fixtures/starlink-obstructed.json b/tests/fixtures/starlink-obstructed.json new file mode 100644 index 0000000..43bb801 --- /dev/null +++ b/tests/fixtures/starlink-obstructed.json @@ -0,0 +1,13 @@ +{ + "dishGetStatus": { + "obstructionStats": { + "fractionObstructed": 0.35, + "currentlyObstructed": true, + "last24hObstructedS": 1200 + }, + "downlinkThroughputBps": 5000000.0, + "uplinkThroughputBps": 1000000.0, + "popPingLatencyMs": 95.0, + "popPingDropRate": 0.12 + } +} diff --git a/tests/fixtures/starlink-online.json b/tests/fixtures/starlink-online.json new file mode 100644 index 0000000..fd6ecef --- /dev/null +++ b/tests/fixtures/starlink-online.json @@ -0,0 +1,21 @@ +{ + "dishGetStatus": { + "deviceInfo": { + "id": "ut01000000-00000000-00000000", + "hardwareVersion": "rev3_proto3", + "softwareVersion": "2024.01.01.0" + }, + "deviceState": { + "uptimeS": "86400" + }, + "obstructionStats": { + "fractionObstructed": 0.002, + "currentlyObstructed": false, + "last24hObstructedS": 5 + }, + "downlinkThroughputBps": 200000000.0, + "uplinkThroughputBps": 10000000.0, + "popPingLatencyMs": 28.5, + "popPingDropRate": 0.0 + } +} diff --git a/tests/fixtures/starlink-outage.json b/tests/fixtures/starlink-outage.json new file mode 100644 index 0000000..6afe8ee --- /dev/null +++ b/tests/fixtures/starlink-outage.json @@ -0,0 +1,16 @@ +{ + "dishGetStatus": { + "obstructionStats": { + "fractionObstructed": 0.0, + "currentlyObstructed": false + }, + "downlinkThroughputBps": 0.0, + "uplinkThroughputBps": 0.0, + "popPingLatencyMs": 0.0, + "outage": { + "cause": "NO_SATS", + "startTimestampNs": "1751337600000000000", + "duration": 30 + } + } +}